I decided to spring clean my Dotfiles repo external link , as it had been a while. Then I noticed that the last time I mentioned them on the blog was nearly ten years ago, so I wanted to give a quick update. The most significant change is that I have moved to using Zsh external link and Oh My Zsh external link since Zsh became the default Shell in macOS.

Warning

This is all VERY customised to my requirements, and there are a lot of hard-coded bits in there. You probably don’t want to blindly copy and paste any of the commands below as things will break!!!

Install everything needed for the dotfiles

The commands below assume you are starting from a clean installation, which I do at least once a year. The first thing is to install Oh MyZsh:

Installing Oh My ZSH
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Once installed, we can download and install the Fonts and Theme I use:

Installing the fonts and theme
brew tap homebrew/cask-fonts
brew install font-hack-nerd-font
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

There are some other tools called by the dot files, so lets install those too.

Installing other bits
brew install tree pygments ffmpeg yt-dlp visual-studio-code drawio thefuck

Pulling and setting up the dotfiles

First, we need to pull my dotfiles repo external link :

Some Command
git clone [email protected]:russmckendrick/dotfiles.git ~/.dotfiles

Then, create backups of all of the existing files:

Backup some files
mv ~/.zprofile ~/.dotfiles/backups/
mv ~/.zshrc ~/.dotfiles/backups/
mv ~/.gitconfig ~/.dotfiles/backups/

Now we can create symbolic links to load contents from our ~/.dotfiles folder:

Create the Symbolic Links
ln -s ~/.dotfiles/.zprofile ~/.zprofile
ln -s ~/.dotfiles/.zshrc ~/.zshrc
ln -s ~/.dotfiles/.gitconfig ~/.gitconfig
ln -s ~/.dotfiles/.hushlogin ~/.hushlogin
ln -s ~/.dotfiles/z.sh ~/.z.sh

What does it look like?

Below are some screens of what my current terminal looks like:

You can also click on the link below to see it in action:

Conclusion

In this blog post, we walked through updating my dotfiles repository and setting up your development environment on a fresh macOS installation. I created a highly personalised and efficient terminal setup by using tools like Oh My Zsh, custom fonts, and a custom theme. While these dotfiles are tailored to my specific needs and may not be suitable for everyone to copy directly, they provide a great example of how to customize and streamline your development workflow. Keeping your dotfiles up to date and versioned in a repository is a great way to maintain consistency across your machines and make setting up new environments a breeze.

If you have any questions, feel free to leave a comment.