Oh My Zsh + PowerLevel10k = 😎 terminal

abdfnx

abdfn

Posted on December 23, 2020

Oh My Zsh + PowerLevel10k = 😎 terminal

Hi there, The developers always use the terminal, but it is boring and has no colors or shapes.
Today we will transform our terminals into a wonderful, colorful, supportive terminal that offers suggestions and has a memory, we'll do it by OMZ and design it by PowerLevel10k...

Pre-requisites

if you're using Windows, you can install and configure WSL

and I recommended to use Ubuntu or Debian wsl plugin

Setup zsh

in the command line type



# homebrew
brew install zsh

# apt-get
sudo apt-get install zsh


Enter fullscreen mode Exit fullscreen mode

type zsh



zsh


Enter fullscreen mode Exit fullscreen mode

Install Oh My Zsh



sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


Enter fullscreen mode Exit fullscreen mode

PowerLevel10k

  • Install Powerlevel10k using the following command


# gh cli
gh repo clone romkatv/powerlevel10k $ZSH_CUSTOM/themes/powerlevel10k

# git
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k


Enter fullscreen mode Exit fullscreen mode

Then you need to enable it, change the value of ZSH_THEME to following in ~/.zshrc file :



ZSH_THEME="powerlevel10k/powerlevel10k"


Enter fullscreen mode Exit fullscreen mode

Configure Powerlevel10k Theme

  • Make sure your terminal font is FiraCode NF.

font link: url

for windows users: url

Alt Text

Cheat-sheet for Windows

if you've Windows terminal you can open your settings and in UNIX preferences and add fontFace prop,
assign it to FiraCode NF.



{
  "guid": "{YOUR_UNIX_GUID}",
  "hidden": false,
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl",
  "fontFace": "FiraCode NF",
  "snapOnInput": true,
  "useAcrylic": true
}


Enter fullscreen mode Exit fullscreen mode

Windows Terminal url in Microsoft Store: url

Windows Terminal repo: url

p10k configure

type



p10k configure


Enter fullscreen mode Exit fullscreen mode

x

you can choose your style...

Plugins (Optional, Good to have!)

Clone plugins

  • zsh-syntax-highlighting - 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.


# gh cli
gh repo clone zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# git
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting


Enter fullscreen mode Exit fullscreen mode
  • zsh-autosuggestions - It suggests commands as you type based on history and completions.


# gh cli
gh repo clone zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# git
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions


Enter fullscreen mode Exit fullscreen mode

ls tools

  • colorls: A Ruby script that colorizes the ls output with color and icons

  • exa: is a modern replacement for ls

colorls



sudo gem install colorls


Enter fullscreen mode Exit fullscreen mode

warn 🙃

maybe you'll get some gem errors, you should fix it

Linux



sudo apt install ruby-full


Enter fullscreen mode Exit fullscreen mode

exa



brew install exa


Enter fullscreen mode Exit fullscreen mode

secrets manager

  • secman: Human-friendly and amazing secrets manager.


# via npm
npm install -g secman

# via script
curl -fsSL https://cli.secman.dev | bash


Enter fullscreen mode Exit fullscreen mode

file transfer app

  • tran: Securely transfer and send anything between computers with TUI.


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


Enter fullscreen mode Exit fullscreen mode

special thanks

special thanks to

to showing me exa

Activate the plugins

In ~/.zshrc file replace the line starting with plugins=() to below line.



plugins=( git zsh-syntax-highlighting zsh-autosuggestions )


Enter fullscreen mode Exit fullscreen mode

colorls



if [ -x "$(command -v colorls)" ]; then
    alias ls="colorls"
    alias la="colorls -al"
fi


Enter fullscreen mode Exit fullscreen mode

or exa



if [ -x "$(command -v exa)" ]; then
    alias ls="exa"
    alias la="exa --long --all --group"
fi


Enter fullscreen mode Exit fullscreen mode

Some more official plugins - ohmyzsh plugins

after all these steps type



source ~/.zshrc

Enter fullscreen mode Exit fullscreen mode




Finally it should be like this 👇

Mac

Alt Text

Windows(WSL) or Linux

Alt Text

Alt Text

That's it, see you next time 👋

💖 💪 🙅 🚩
abdfnx
abdfn

Posted on December 23, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related