Mainly it’s following this guide: Install and Setup ZSH on Ubuntu Linux (itsfoss.com). But I have some prereqs of my own as well. Let me compile them all into one.

# install packages
sudo apt update
sudo apt install zsh git fonts-font-awesome taskwarrior timewarrior python2
 
# enter zsh
zsh
 
# install ohmyzsh
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
 
# set up omz plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
 
# create ssh key and add it to agent
ssh-keygen -t ed25519 -C "[email protected]"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
 
# go add the key to github and finally run this to get the dotfiles
curl -Lks https://gist.githubusercontent.com/ROODAY/71d296647875b540cfccfaa25d5817ac/raw/a9492f1654acb77aa2a16c73c31fd343b06ef25d/install-dotfiles.sh | /bin/bash

During this process I think zsh should become the default, but just in case, do this:

chsh
/bin/zsh

TODO

  • turn everything above into a script that I can call from a curl on gist. Have it generate the SSH key and then spit out the pub part and wait so you can go add it on GitHub before moving on to the next part (pulling down the repo).