ohmyzsh/README-MY-SETUP.md
2025-08-23 13:10:33 -07:00

7.5 KiB

My Shell Setup

Much of my information comes from here and his YouTube video.

Note that this will backup and replace your existing ~/.zshrc file

You'll need zsh to install Oh My Zsh. Run zsh --version to check if you have it.

macOS

  • install HomeBrew (probably already installed)

  • install iTerm2

  • install/configure iTerm2 colour themes Grove Box contrib

  • install prereqs

    • need to install Nerd Fonts (may want other fonts but must be Nerd variety)

      brew tap homebrew/cask-fonts
      brew install --cask font-meslo-lg-nerd-font
      brew install --cask font-hack-nerd-font
      brew install --cask font-fira-nerd-font
      
    • Configure iTerm2 to use one of the nerd fonts (I like hack)

    • needed for oh-my-zsh module fasd

      brew install fasd
      brew install terminal-notifier
      brew install thefuck
      
    • install ls replacement exa

      brew install exa
      
    • and/or install ls replacement lsd

      brew install lsd
      
  • continue to Common Install Steps

Linux

  • install some terminal tools

    sudo apt install curl lsd fasd fzf ruby-full thefuck tmux vim-nox git
    
  • install Tilex

    sudo apt install tilix
    
  • install/configure Tilex colour themes Grove Box for Tilix

  • install prereqs

    • If which zsh not installed, then install with sudo apt install zsh. Next, change your login shell with chsh -s $(which zsh)

    • need to install Nerd Fonts (may want other fonts but must be Nerd variety)

      • I download, expand, open Nautilus and double-click on each non-Windows font
    • configure Tilix to use the Nerd font (I like Hack)

  • continue to Common Install Steps

Windows

  • Install Git Bash, if not already installed
  • Optionally install Windows Terminal
  • Install Zsh (not oh-my-zsh) using these instructions
    • you may need to download PeaZip to extract the file

    • once .zst is extracted and copied to /c/Program\ Files/Git/ open an admin Git Bash and do ...

      fklassen@FREDKLASSENA265 MINGW64 ~
      $ cd /
      fklassen@FREDKLASSENA265 MINGW64 /
      $ tar xvf zsh-5.9-2-x86_64.pkg.tar
      
    • for .bashrc I prefer to append this entry so I can start the bash shell from zsh

      /c/Windows/System32/chcp.com 65001 > /dev/null 2>&1
      if [ -t 1 ] && [ "$0" = "/usr/bin/bash" ]; then
        exec zsh
      fi
      
    • install fasd

      • git clone https://github.com/clvv/fasd.git
      • open and Git Bash terminal in Administrator mode, cd to above directy and
        • make install
    • continue with instructions to install Zsh

  • install Oh My Posh in a PowerShell with commands:
    • winget install oh-my-posh
    • winget install XP8K0HKJFRXGCK
    • winget upgrade oh-my-posh
  • need to install Nerd Fonts (may want other fonts but must be Nerd variety)
    • I download, expand, open with Explorer and double-click on each Windows font
  • Windows Terminal does not seem to accept Nerd Fonts so I updated fonts in Git Bash shortcut and mainly use that.
  • continue to Common Install Steps

Common Install Steps

  • install Oh My Zsh customized fork

    • fork fklassen fork of oh-my-zsh to your personal account, or simpler yet use fklassen/ohmyzsh if you don't plan to modify anything

      https://github.com/fklassen/ohmyzsh/fork
      
    • if you forked, optionally modify README.md and tools/install.sh to point to your repo so that you don't need REPO=fklassen/ohmyzsh during installation

    • optionally customize forked repo to match your preferences

    • run installer

      • if you are using fklassen/ohmyzsh ...

        `sh -c "$(curl -fsSL https://raw.githubusercontent.com/fklassen/ohmyzsh/master/tools/install.sh)"`
        
      • if you forked your own repo ...

        REPO=<your_github_id>/ohmyzsh sh -c "$(curl -fsSL <https://raw.githubusercontent.com/fklassen/ohmyzsh/master/tools/install.sh>)"
        
      • initialize submodules

        cd ~/.oh-my-zsh
        git submodules update --init
        
    • ... or if that doesn't work simply git clone --recurse-submodules https://github.com/fklassen/ohmyzsh.git

    • configure '~/.zshrc` (see Getting Started)

      • I personally like to make a symbolic link so I can commit my changes to my forked config

        cd
        ln -sf ~/.oh-my-zsh/templates/zshrc.zsh-template .zshrc
        
  • install Starship

    • copy or link Starship config file

      mkdir -p ~/.config
      cd ~/.config
      ln -s ~/.oh-my-zsh/templates/starship.toml
      
    • run installer

      curl -sS https://starship.rs/install.sh | sh
      
  • install fzf for zsh-interactive-cd support

  • Start a terminal session

Post install

There are a few things that can make things even better

  • set up GIT configuration

    • cd && ln -s ~/.oh-my-zsh/template/gitconfig .gitconfig

    • create a ~/.gitconfig.user for user-specific GIT settings

      [user]
        name = Fred Klassen
        email = fred.klassen@broadcom.com
        #email = fklassen@appneta.com
        signingkey = 84E4FA215C934A7D97DC76D5E9E2149793BDE17E
      
  • create ~/.inputrc

    • cd && ln -s ~/.oh-my-zsh/template/inputrc .inputrc
  • if tmux is installed install tmux config Oh My Tmux

  • install vim config SpaceVim

  • install Mosh replacement Eternal Terminal

  • optionally install lsd

  • optionally install file transer app

    • curl -sL https://cutt.ly/tran-cli | bash
  • on macOS