DEV Community

loading...
Cover image for Customise Your Terminal Using Zsh & powerlevel10k

Customise Your Terminal Using Zsh & powerlevel10k

Pratik Kale
Computer Engineering Student 👨‍🎓, Linux Enthusiast 🐧, Tech Geek 💻, Learner 📔
・4 min read

Transform your terminal from this to this !!

Before

Before Terminal Image

After

After Terminal Image

What we will setup

1.Zsh

ZSH, also called the Z shell, is an extended version of the Bourne Shell (sh), with plenty of new features, and support for plugins and themes.

2.Powerlevel 10k

Powerlevel10k is a theme for Zsh. It emphasizes speed, flexibility and out-of-the-box experience.

3.Zsh-syntax-highlighting

This package provides syntax highlighting for the shell zsh. It enables highlighting of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors.
Some examples:
Before:
After:

4.Zsh-autosuggestions

As you type commands, you will see a completion offered after the cursor in a muted gray color.
If you press the → key (forward-char widget) or End (end-of-line widget) with the cursor at the end of the buffer, it will accept the suggestion, replacing the contents of the command line buffer with the suggestion.

1.Install Zsh

1)Installation

Ubuntu, Debian & derivatives
sudo apt install zsh
Enter fullscreen mode Exit fullscreen mode
Arch Linux or Manjaro
pacman -S zsh
Enter fullscreen mode Exit fullscreen mode
macOS
brew install zsh
Enter fullscreen mode Exit fullscreen mode

2)Verify your installation by running zsh --version. Expected result: zsh 5.0.8 or more recent.

3)Make it your default shell

chsh -s $(which zsh)
Enter fullscreen mode Exit fullscreen mode

Note that this will not work if Zsh is not in your authorized shells list (/etc/shells) or if you don't have permission to use chsh. If that's the case you'll need to use a different procedure.

4)Log out and log back in again to use your new default shell.

5)Test that it worked with echo $SHELL. Expected result: /bin/zsh or similar.


2.Install and Cofigure powerlevel10k

1)Font
Powerlevel10k doesn't require custom fonts but can take advantage of them if they are available. It works well with Nerd Fonts, Source Code Pro, Font Awesome, Powerline, and even the default system fonts. The full choice of style options is available only when using Nerd Fonts.
Recommended font: Meslo Nerd Font patched for Powerlevel10k.
Download these four ttf files:

Double-click on each file and click "Install". This will make MesloLGS NF font available to all
applications on your system. Configure your terminal to use this font:

  • GNOME Terminal (the default Ubuntu terminal): Open Terminal → Preferences and click on the selected profile under Profiles. Check Custom font under Text Appearance and select MesloLGS NF Regular.
  • Apple Terminal: Open Terminal → Preferences → Profiles → Text, click Change under Font and select MesloLGS NF family.
  • Microsoft Terminal: Open Settings (Ctrl+,), search for fontFace and set value to MesloLGS NF for every profile. If you are using any other terminal click here for the configuration.

2)Installation
Clone the powerlevel10k repo

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
Enter fullscreen mode Exit fullscreen mode

Source the powerlevel10k theme script in your .zshrc

echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
Enter fullscreen mode Exit fullscreen mode

After this exit and reopen your terminal.
Now you will see this message.

Alt Text

This is the Powerlevel10k cofiguration wizard select the options that you like and make your custom prompt !!
Alt Text
Choose the propmt style that you like.
Alt Text
Press Y and save your changes.

If you want to change your prompt again just run the follwing command.

p10k configure
Enter fullscreen mode Exit fullscreen mode

This will take you the Powerlevel10k cofiguration wizard.


3.Zsh-autosuggestions and Zsh-syntax-highlighting

1)Zsh-autosuggestions

Clone the Zsh-autosuggestions repo

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
Enter fullscreen mode Exit fullscreen mode

Source the script in your .zshrc

echo 'source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh'>>~/.zshrc
Enter fullscreen mode Exit fullscreen mode

Then exit and start a new terminal session.

2)Zsh-syntax-highlighting

Clone the Zsh-syntax-highlighting repo

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
Enter fullscreen mode Exit fullscreen mode

Source the script in your .zshrc

echo 'source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh'>>~/.zshrc 
Enter fullscreen mode Exit fullscreen mode

Note the source command must be at the end of ~/.zshrc.

Now exit and start a new terminal session.

And et voilà !
Your terminal is ready!
Thank you so much for reading this article and do let me know your thoughts in comments!


Reach me:
Twitter | Instagram | Mail

Repositeries Mentioned:

GitHub logo zsh-users / zsh-autosuggestions

Fish-like autosuggestions for zsh

GitHub logo zsh-users / zsh-syntax-highlighting

Fish shell like syntax highlighting for Zsh.

Discussion (6)

Collapse
rhamdeew profile image
Rail

Thank you for the Post. I also recommend looking at the Spaceship Prompt like a more minimalist alternative.

denysdovhan.com/spaceship-prompt/

Collapse
aahnik profile image
Aahnik Daw

wow! spaceship is exciting. my current terminal is lot similar to that. i had configured p10k to use something like this

~                                                                                                                              
➜ 
Enter fullscreen mode Exit fullscreen mode
Collapse
pratik_kale profile image
Pratik Kale Author

Thank you for the recommendation 😃

Collapse
pratik_kale profile image
Pratik Kale Author

Zsh has most of the feature of bash but some features of Zsh make it improved and better than bash, such as good spelling correction, cd automation, better theming options, plugin support and many more.