[[linux_wiki:zsh_and_oh-my-zsh]]

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

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.

Easily change your 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.

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.

  • 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)


  • 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
        "Colour0"="131,148,150"    (Default Foreground)
        "Colour1"="147,161,161"    (Default Bold Foreground)
        "Colour2"="0,43,54"        (Default Background)
        "Colour3"="7,54,66"        (Default Bold Background)
        "Colour4"="0,43,54"        (Cursor Text)
        "Colour5"="238,232,213"    (Cursor Colour)
        "Colour6"="7,54,66"        (ANSI Black)
        "Colour7"="0,43,56"        (ANSI Black Bold)
        "Colour8"="220,50,47"      (ANSI Red)
        "Colour9"="203,75,22"      (ANSI Red Bold)
        "Colour10"="133,153,0"     (ANSI Green)
        "Colour11"="88,110,117"    (ANSI Green Bold)
        "Colour12"="181,137,0"     (ANSI Yellow)
        "Colour13"="101,123,131"   (ANSI Yellow Bold)
        "Colour14"="38,139,210"    (ANSI Blue)
        "Colour15"="131,148,150"   (ANSI Blue Bold)
        "Colour16"="211,54,130"    (ANSI Magenta)
        "Colour17"="108,113,196"   (ANSI Magenta Bold)
        "Colour18"="42,161,152"    (ANSI Cyan)
        "Colour19"="147,161,161"   (ANSI Cyan Bold)
        "Colour20"="238,232,213"   (ANSI White)
        "Colour21"="253,246,227"   (ANSI White Bold)
      • Click Apply
      • Save settings to session

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

  • linux_wiki/zsh_and_oh-my-zsh.txt
  • Last modified: 2019/05/26 03:50
  • (external edit)