How to install ZSH on Fedora🚀

February 12, 2021

Terminal Setup - Terminator + ZSH + Powerlevel10k

terminal is more than just a black screen to type in. It usually runs a shell, so called because it wraps around the kernel. The shell is a text-based interface that lets you run commands on the system. It’s also sometimes called a command line interpreter or CLI. Fedora, like most Linux distributions, comes with bash as the default shell.

This article focuses on the Z Shell, or zsh.

Bash is a rewrite of the old Bourne shell (sh) that shipped in UNIX. Zsh is intended to be friendlier than bash, through better interaction. Some of its useful features are:

Programmable command line completion Shared command history between running shell sessions Spelling correction Loadable modules Interactive selection of files and folders

What will be setup?

Terminator terminal to support splitting the terminal screen vertically and horizontally into multiple windows. Extremely useful when working with distributed systems like blockchain. ZSH framework to add productivity plugins and custom color themes. Powerlevel10k for "speed, flexibility and out-of-the-box experience.

Run System Update

dnf update

Installing Zsh in Fedora System

Zsh can be found in the Fedora repositories and can be installed using the following dnf command.

Zsh is available in the Fedora repositories. To install, run this command:

$ sudo dnf install zsh
zsh --version


Install oh-my-zsh on Fedora 33

Oh-my-Zsh framework can be installed by either using the curl or wget commands as shown below;

sudo dnf install wget curl
sh -c "$(curl -fsSL"


sh -c "$(wget -O -)"

Using zsh

To start using it, just type zsh and the new shell prompts you with a first run wizard. This wizard helps you configure initial features, like history behavior and auto-completion.

Making Zsh as Default Shell in Fedora

Zsh offers a lot of plugins, like zsh-syntax-highlighting, and the famous “Oh my zsh” (check out its page here). You might want to make it the default, so it runs whenever you start a session or open a terminal. To do this, use the chsh (“change shell”) command:

$ chsh -s $(which zsh)

This command tells the system that you want to set (-s) your default shell to the correct location of the shell ( zsh).

PowerLevel10k Theme

The great thing about ZSH is the level of personalization possible. I found this theme which looks pretty solid:

Install the theme

git clone --depth=1 ~/powerlevel10k

echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc

source ~/.zshrc

Adding emojies

When it comes to Chrome, you have basically two ways how to display color emojis. You can either install EmojiOne or Google Noto Color Emoji. Although I first tried to use the former, I was not able to make it work so I decided to stick with the latter.

You first need to install a package with this font by running the following command:

sudo dnf install google-noto-emoji-color-fonts

Then you need to create file : $ ~/.config/fontconfig/fonts.conf with the following content:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 
      <family>Noto Color Emoji</family> 
      <family>Noto Color Emoji</family>
      <family>Noto Color Emoji</family>

Finally, you need to apply the new configuration by running:

fc-cache -f

Now, you just need to restart Chrome Emojies Emojies Emojies Cairo Emojies

Installation Instructions

# yum update
# yum install yum-plugin-copr
# yum copr enable fujiwara/cairo
# yum install freetype cairo fontconfig google-noto-emoji-color-fonts

Fujiwara Cairo Emojies

Up next