This is an old revision of the document!
Zsh And Oh-my-zsh
General Information
Setting up great looking terminals with zsh, oh-my-zsh and theming.
Checklist
- Fedora 28, Ubuntu 16.04 or Enterprise Linux 7
Install ZSH
Install zsh.
- Fedora
sudo dnf install zsh
- Ubuntu
sudo apt install zsh
- EL 7
sudo yum install zsh
Set ZSH As Default Login Shell
Configure zsh as your default login shell.
- Fedora, Ubuntu, EL 7
- Change shell
chsh -s $(which zsh)
- Log out and back in
- Verify
echo $SHELL
Note: This only works for local accounts. If you are using LDAP, you will need to set your default login shell in your LDAP user profile.
Install oh-my-zsh
Oh-My-Zsh is a framework for managing zsh configuration. It adds tons of themes and plugins to zsh.
Official site: https://ohmyz.sh/
- Install pre-reqs (git and curl)
- Fedora
sudo dnf install git curl
- Ubuntu
sudo apt install git curl
- EL 7
sudo yum install git curl
- Install oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Configure Zsh
Configuring zsh.
Change Theme
Easily change your zsh theme.
- List of all theme names/screenshots here: https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
- Agnoster theme: https://github.com/agnoster/agnoster-zsh-theme
Example: Change to agnoster theme
- Edit zsh config
vim ~/.zshrc # Set theme name here ZSH_THEME="agnoster"
- Re-read config changes
source ~/.zshrc
- Note: The agnoster theme relies upon Powerline fonts for certain symbols. See next section in order to install the font.
Install Powerline Fonts
The powerline fonts are intended for use with the agnoster theme (they properly display certain symbols that it uses), but are a clean looking set of fonts that would be a great addition any in case.
Install Fonts: Linux
- Clone the repo
git clone https://github.com/powerline/fonts.git
- Install
cd fonts ./install
- Quit your terminal and re-open it
- Configure your terminal to use a PowerLine regular font
- GNOME Terminal
- Edit > Profile Preferences
- Check “Custom font”, then click the font name
- Browse to and select a Powerline font (such as “Meslo LG L for Powerline Regular”)
- Konsole (KDE Terminal)
- Settings > Manage Profiles
- Click either “Edit Profile” or “New Profile”
- Click the “Appearance” tab, at the bottom click “Select Font…”
- Browse to and select a Powerline font. (such as “Meslo LG L for Powerline”)
- Click “OK”
Note: If Symbols aren't displaying properly, close the terminal application and re-open it for the fonts to load. (And verify you are using a Powerline font)
Install Fonts: Windows
- Open a web browser to the git repo: https://github.com/powerline/fonts
- Click the “Clone or download” drop down, then click “Download ZIP”
- Extract somewhere temporary
- Copy and paste all of the .ttf files from “Meslo Slashed” into C:\Windows\Fonts\
- You will be prompted if you would like to install the fonts
- Configure Putty/Kitty to use the new font
- Open Putty/Kitty (optionally, load a saved session's settings)
- Settings > Window > Appearance
- Under Font settings
- Check the box “Allow selection of variable-pitch fonts”
- Click the “Change” button
- Browse to “Meslo LG L for Powerline” and click “OK”
- Save the session settings
- Configure colors (Solarized Dark)
- Open Putty/Kitty (optionally, load a saved session's settings)
- Settings > Window > Colours
- Select each color to adjust and change the RGB values
- Click Apply
- Save settings to session
- Alternative registry imports: https://github.com/altercation/solarized/tree/master/putty-colors-solarized
Install Plugin: Syntax Highlighter
The syntax highlighter plugin adds syntax highlighting to the commands you are typing.
- Clone the repo
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
- Copy or move it into your oh-my-zsh plugins directory
mv zsh-syntax-highlighting ~/.oh-my-zsh/plugins/
- Enable the plugin in your zshrc config
vim ~/.zshrc # Add plugins to enable space separated plugins=(git python vi-mode z zsh-syntax-highlighting)
- Re-read config file
source ~/.zshrc