System Setup in 2025

My setup, tools, and tricks I have learnt over the years

Wezterm Screenshot

First Things First

I use a mac and the first thing I do is install Homebrew. Most of my CLI tools & programs are available on Homebrew. Makes it very easy to install a ton of packages in one go.

Over the years, I have learnt to store vital configurations in a dotfiles repository. You should read this old blog post and do it too!

When I setup my system, I download this repo and the first thing to run is

brew bundle install

This picks up the Brewfile and installs all the packages I have listed in it. Read more about how Homebrew Bundle works.

Terminal

I have gone through the phases of using iTerm, Alacritty, Kitty, and now WezTerm. I also tried Warp for a while but it always felt too bloated & slow. It now has AI built in which is already too much AI everywhere at this point.

I have settled on WezTerm because it is a modern terminal emulator that is easy to configure and has a lot of features. Most importantly, it's lean, clean and has low CPU & Memory footprint. It also uses Lua for configuration which is a very nice language to work with.

I store my WezTerm configuration in the same dotfiles repository. Simply copying this to ~/.config/wezterm/wezterm.lua does the job.

I have a few custom keybindings to split the terminal into multiple vertical / horizontal panes, navigate left and right around commands etc. You can find them in the config file itself.

Shell

I have been a long term fan of ZSH because of the Oh My ZSH framework. It supercharges my shell workflows.

macOS now comes with ZSH by default so you don't have to install it separately but in case you don't have it, you can install it via Homebrew.

My configuration is available here but you may not need all of it - things like the environment variables and path changes. Modify as needed.

I do wanna talk about some of the plugins I use because they make life easier.

zsh-autosuggestions

This plugin provides suggestions for commands as you type. It's a great way to speed up your workflow. zsh-autosuggestions

zsh-syntax-highlighting

This plugin provides syntax highlighting for your shell commands. If a command doesn't exist, it gets highlighted in red. zsh-syntax-highlighting

z

This plugin provides a way to navigate to frequently used directories. Example, if I need to go to ~/code/github, I simply type z github and it takes me there. The longer the path the quicker it feels.

git-extras

git-extras has a lot of useful tools & aliases that make git workflows super easy. For example -

You can take a look at the full list of commands here.

Prompt

I love Powerlevel10k. It's a no-nonsense, fast prompt with a lot of customizability. Make sure to enable transient prompt if you are using it.

My configuration is available in the same repository. If you are copying it, you'll need to place it in ~/.p10k.zsh.

Misc CLI Tools & Aliases

Some of my favorite CLI tools & aliases.

Tools

Aliases

# zshrc management
alias zc="micro ~/.zshrc"
alias zs="source ~/.zshrc"

# use eza when typing ls
alias ls="eza"
alias la="eza --icons -la"

# because this is needed a lof of times
alias nuke="rm -rf node_modules"
# recursively kills all node_modules. Helpful when freeing up space
# and also migrating to a new system without having to copy
# gazillion files
alias boom="find . -name "node_modules" -exec rm -rf '{}' +"

# kill process
alias k="fkill -v"

# git additional 
alias gdl="git delete-branch"

# yt-dlp alias for downloading videos from YouTube in the best possible quality
# along with all the subtitles
alias ytd='yt-dlp --output "./%(title)s/%(title)s-[%(id)s].%(ext)s" --all-subs -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4"'

Apps

AppCleaner Smart Delete