How to Make Linux Terminal look Awesome
In this article, we will install and configure some themes and plugins to tweak our Linux terminal for better productivity and a fancier look. These features include autocompletion, autosuggestion, command-line search, syntax highlighting, and better support for git and environment managers.
Zsh
The Z-shell or Zsh is a UNIX shell with support for various plugins and themes.
sudo apt install zsh [ Debian/Ubuntu ] sudo yum install zsh [ RedHat/CentOS ] sudo pacman -S zsh [ Arch/Manjaro ] sudo dnf install zsh [ Fedora ] sudo zypper install zsh [ OpenSUSE ]
Oh My Zsh
It is an open-source and community-driven framework for managing Zsh configuration. It comes bundled with thousands of helpful functions, plugins, themes, and much more.
sh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)” [Using curl]
sh -c “$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)” [Using wget]
Nerd Fonts
Nerd Fonts is a project to create patched fonts. Nerd Fonts takes popular programming fonts and patches them with a large number of glyphs (icons).
- Download hack font and install it by double-clicking on the .tff file. You can also use any other font but make sure it supports all the icons and glyphs required by powerlevel10k.
- Select Hack Font as the default font.
Powerlevel10k
Powerlevel10k is a theme for Zsh. It changes normal shell commands to colorful commands and emphasizes speed, flexibility, and out-of-the-box experience.
git clone –depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
- An installation prompt will begin by default, but if it doesn’t run.
$ p10k configure
- Change the default theme to ZSH_THEME=”powerlevel10k/powerlevel10k” inside ~/.zshrc.
- Commit the changes by running
$ source ~/.zshr
zsh-autosuggestions
Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- Add zsh-autocomplete to the list of plugins inside ~/.zshrc plugins=( [plugins…])
- Commit the changes by running source ~/.zshrc
zsh-syntaxhighlighting
zsh-syntax-highlighting provides syntax highlighting for the shell zsh. It enables highlighting commands whilst they are typed at a zsh prompt into an interactive terminal. This helps review commands before running them, particularly in catching syntax errors.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- Add zsh-syntax-highlighting to the list of plugins inside ~/.zshrc plugins=( [plugins…])
- Commit the changes by running source ~/.zshrc
diff-so-fancy
It is a tool that converts the output of diff utility into a more human-readable form. It improves the development speed by providing a simpler way to compare recent changes. With diff-so-fancy, one can focus on the code quality instead of figuring out what all the + and – mean?
$ npm i -g diff-so-fancy
To integrate diff-so-fancy with git.
$ git config –global core.pager “diff-so-fancy | less –tabs=4 -RFX”
$ git config –global interactive.diffFilter “diff-so-fancy –patch”
$ git config –global color.ui true
Now, we can simply use the git diff command to view recent changes.
$ git diff
bat
bat is a supercharged version of the native cat command. It includes features like syntax highlighting, git integration, automatic paging, and much more.
sudo apt install bat [ Debian/Ubuntu ] sudo yum install bat [ RedHat/CentOS ] sudo pacman -S bat [ Arch/Manjaro ] sudo dnf install bat [ Fedora ] sudo zypper install bat [Image Widget OpenSUSE ]
Viewing the content of a file with first cat and then with bat.
fzf
It’s an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.
$ git clone –depth 1 https://github.com/junegunn/fzf.git ~/.fzf
$ ~/.fzf/install
- ctrl + t to navigate through the file system.
- ctrl + r to navigate through older commands.