Hello humans!
Welcome back to issue #2 of Waves & Code! I had a few different ideas for this week’s edition but finally settled on sharing some practical knowledge for all you code monkeys out there. In this week’s feature, we will dive into making your terminal a more pleasant experience (on MacOS), both aesthetically & functionally. Thereafter, I share my experiences starting leathercrafting and end off with some of my favorites from this week. So let’s dive right in and supercharge your command-line experience!
Customizing Your Terminal: A Journey into Personalization
As a developer, your most foundational tool is the command-line/terminal. However, that doesn’t mean this tool has to be archaic and uninspired; in my experience giving my terminal some love has greatly aided my development experience. I’m going to walk through a few tools that I use to make my terminal easier to look at and improve my overall dev efficiency.
Let’s supercharge our terminal in steps, categorized in the following way:
Improve dev experience
iTerm2
Zsh
Oh My Zsh
Improve visuals and UI
Powerlevel10k
Zsh Plugins
Our aim is to go from a vanilla terminal (below left) to a kickass supercharged terminal (below right) that is not just pretty to look at but also functional under the hood.
iTerm2
The first step is upgrading from the MacOS standard Terminal to iTerm2. iTerm2 is a powerful & customizable replacement for Terminal on MacOS and opens a door to a host of features that make the command-line experience a tad more pleasurable. The feature I use the most is split panes (see below) which makes it a breeze to glance at server logs whilst simultaneously using a console. More features can be found on the iTerm2 features page.
iTerm2 can be downloaded on the iTerm2 downloads page or via brew using (requires homebrew):
brew install --cask iterm2
Z Shell (zsh)
The next step in charging up our terminal experience is embracing the Z Shell, commonly known as zsh. Zsh is a Unix shell1 that offers an array of features and improvements over traditional Unix shells like Bash. I have never used Bash again after making the move to Zsh.
# To install zsh:
brew install zsh
# Verify installation be running
zsh --version
Oh My Zsh
Oh My Zsh is a framework for managing our zsh
configuration. It comes with a bunch of features out of the box and improves the terminal experience.
# Install Oh My Zsh via curl:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Refresh your shell instance by running:
source ~/.zshrc
The default Oh My Zsh configuration is robust enough for now, further customization can be found on the Github repo.
Powerlevel10k
Now we start entering the more visually exciting part of our supercharged terminal journey. Powerlevel10k is a configurable theme for Zsh that adds beautiful UI elements to your terminal. It’s my personal favorite due to how easy it is to configure with minimal edits to your .zshrc
file.
# Install Powerlevel10k with brew
brew install powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
# Restart Zsh with:
exec zsh
# If the config wizard doesn't start then type:
p10k configure
After following the config wizard and selecting your UI style preferences, you should have something that looks like this:
Plugins
To further optimize my terminal efficiency I use 3 additional plugins. I try to keep my plugins minimal to not slow down my shell. My plugins of choice are:
git: Provides the shell with git shortcut aliases for all your git commands
zsh-autosuggestions: Suggests commands as you type based on history and completions.
zsh-syntax-highlighting: Provides syntax highlighting for the zsh shell.
In your .zshrc
file add your plugins of choice like so:
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
When all the steps above come together you will have a supercharged terminal experience that is both pretty to look at and increases your efficiency as a programmer. Notice the zsh-autosuggestions, zsh-syntax-highlighting, and git aliases in the gif below.
Leathercraft Corner - Being boring to be better
This past week I started my creative journey into leathercraft. I had wanted to start for a while now but got stuck in analysis paralysis over picking the most perfect and impressive project. After a bit of research, I realized picking a project was proving difficult because it was all too overwhelming. I lacked the foundational skills to start an impressive or exciting project. This led me to practice some fundamentals; cutting, burnishing2, punching, and sewing thanks to a YouTube video by Corter Leather. In the end, I was pretty proud of the results and actually felt progress in my understanding of the craft.
Here are the results of my learnings:
![](https://substackcdn.com/image/fetch/w_720,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96fb3043-441c-40f8-8231-880486baddee_3464x4618.jpeg)
![](https://substackcdn.com/image/fetch/w_720,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db729f4-d772-4dce-a8ba-7a223531d899_4618x3464.jpeg)
Favorites this week
Article: My solopreneur story: zero to $45K/mo in 2 years by Tony Dinh
This article inspired me to think differently as a developer and how I view personal projects.Website: motion.ed by Zajno
A fun and informative website using animation to teach Motion Design Principles.
Website/Service: lottielab.com
Easily create animations to ship to your apps & websites.Podcast: Huberman Lab Podcast
Clear practical advice on various aspects of everyday life by neuroscientist Dr. Andrew Huberman. I particularly enjoy the references to scientific research sources and the latest research papers in each episode to validate the various topics.
Thank you for joining me on Issue #2 of Waves & Code. I hope you've uncovered some magic in the world of terminal customization and plugins.
As we continue to explore the realms of software, surfing, leathercraft, and all that lies in between, remember that your feedback, questions, and experiences are what make this adventure truly extraordinary. Please share your thoughts, ideas, and even your favorite terminal spells with this ever-growing community.
Please consider voting on the poll below to impact the feature article for issue #3.
Until we meet again stay curious, keep coding, ride those waves, and craft your story.
Unix Shell: A text-based interface that lets you communicate with your computer by typing commands.
Burnishing: The process of buffing leather edges to a slick and glossy finish.
I'm excited too see the Leatherwork develop overtime, it seems like a really satisfying skill/hobby🤠
Thank you for the great share and tips!