How to get the most out of your Terminal

Reagan McFarland
5 min readMar 17, 2021

--

My Terminal Setup (zsh)

For years I rarely ever used the terminal, and anytime I did use it was for monitoring cloud servers over ssh. But, a properly configured Terminal can be a huge productivity boost for any developer or tech-savvy power user. While my configurations only scratches the surface of possibilities, a quick google search will yield more advanced configuration settings you can tinker with. But, I think my setup is a good foundation for anyone wanting something sleek that only takes 10 minutes to setup.

While there are more modern shells like https://fishshell.com that I recommend you check out, I am only going to focus on zsh and bash for this guide

Step 1 — Installing Alacritty

Alacritty is a cross-platform terminal emulator that is fast. Like really fast. This is because it uses OpenGL to offload some of the processing to your GPU, a feature very few terminal emulators have. For this reason, I highly recommend it over the default emulator that comes with your system.

Refer to the Alacritty installation guide for help if needed, but you can install it using any package manager for your system.

For MacOS, run brew install alacritty. From here you should now be able to open Alacritty just like any other application on your system. Assuming you have no other terminal configurations in your .zshrc, you should see something like this

It’s pretty bland, but Starship will fix that for us.

Step 2 — Installing Starship

Starship is a cross-shell prompt that not only looks great out of the box, but has a tremendous amount of features. After this guide, I highly recommend taking a look over their documentation because you can practically customize every single aspect of your shell with Starship.

You can install Starship with your favorite package manager just like alacritty. For MacOS, run brew install starship in your terminal.

After this, we need to create initialize starship whenever we launch our shell.

Step 3 — Shell Color Scripts

This is how I get the ascii art whenever my terminal opens up. On MacOS, I have heard there can be an issue with the executable not finding ls correctly, but this can be fixed by reading the output error and replacing it with the result of whatever whereis ls returns.

I use DistroTube’s Shell Color Scripts for both of my machines and install it with the following commands

git clone https://gitlab.com/dwt1/shell-color-scripts.git
cd shell-color-scripts
rm -rf /opt/shell-color-scripts || return 1
sudo mkdir -p /opt/shell-color-scripts/colorscripts || return 1
sudo cp -rf colorscripts/* /opt/shell-color-scripts/colorscripts
sudo cp colorscript.sh /usr/bin/colorscript

Now with everything installed, we have to create our configuration file.

Step 3 — Shell Configuration Files

This is where the steps change depending if your using bash or zsh. But, both instructions mention something called the $HOME directory (also denoted by the ~ symbol). By default this path is /Users/username for Mac, and /usr/username for Linux.

For bash

If you’re using bash, you’re going to want to open your bash config file, or .bashrc. Run touch ~/.bashrc to create this file, and open it in your favorite text editor (VSCode works great).

Note: You may not see any changes because you have a ~/.bash_profile that is conflicting being loaded instead. Combine them into one file named either ~/.bashrc or ~/.bash_profile, or delete the one that you don’t need.

Add the following to the bottom

### COLOR SCRIPT ###
colorscript -e crunch
### STARSHIP ###
eval "$(starship init bash)"

For zsh

If you’re using zsh, you’re going to want to open your zsh config file, or .zshrc. Run touch ~/.zshrc to create this file. Open it in your favorite text editor.

Add the following to the bottom

### COLOR SCRIPT ###
colorscript -e crunch
### STARSHIP ###
eval "$(starship init bash)"

Step 4— SpaceVim (Optional)

Not everyone likes vim, and I get that. I was the same way — until I tried SpaceVim. SpaceVim is has all the great plugins, styling, and features all in a nice little bundle you install with one line and it just works. Look at how this transforms vim into a productivity powerhouse

Front End Web Development with SpaceVim

Installing is fast and simple — just run the following in a terminal

curl -sLf https://spacevim.org/install.sh | bash

And thats it, your vim should now look like this: with directory tree functionality, multiple tabs, window splitting, terminals, and more. I could talk all day about SpaceVim, but I recommend you check out the documentation and some YouTube videos about it if you want to learn more 😃

Success!

After closing Alacritty and opening it up again, you should see a terminal exactly like mine. If not, please leave a comment and I can help figure out what isn’t working and update my guide accordingly.

If you’re wanting to add more features to your config, a good place to start is by googling bashrc dotfiles github or zshrc dotfiles github. You can see what everyone else is putting in their configs, and copy and paste the bits that you want!

--

--

Reagan McFarland

Software Engineer. Student at Rutgers. Passionate about Software. OSS and Linux Advocate