Powerlevel9K + Nerd Fonts + iTerm2 – ตกแต่ง terminal ด้วย theme ใหม่

powerlevel9k

หลังจากที่ใช้ oh-my-zsh กับ prezto มาสักพัก ก็เลยลองหา theme ใหม่ๆ มาปรับหน้าตาของ terminal ให้สดชื่นกันอีกสักหน่อย powerlevel9k กับ nerd fonts ทำให้แสดง icon อื่นๆ เช่น นินจา หรือ รูปแมวเหมียว ได้ ขั้นการลงลงไม่เยอะมาก ตามด้านล่างนี้เลย


1. iTerm2

iterm2

เริ่มด้วยลง iTerm2 กันก่อน

$brew cask install iterm2

2. Z shell (zsh -> ซี-เชล)

zsh

เผื่อใครใช้ shell ตัวอื่น ให้ลง zsh (อ่านว่า ซี-เชล) ต่อ

$brew install zsh

และเปลี่ยน default shell เป็น zsh

$chsh -s /bin/zsh

3. Nerd Fonts

nerd fonts

ลง Nerd Fonts สำหรับรูป icon พิเศษต่างๆเช่น git, json และอีกมากมาย ดูได้จาก https://nerdfonts.com/

$brew tap caskroom/fonts

เปลี่ยน iterm2 ไปใช้ Nerd Fonts

iTerm2 -> Preferences -> Profiles -> Text -> Font -> Change Font

ตั้งค่า font ให้กับ Powerlevel9k theme

$echo "POWERLEVEL9K_MODE='nerdfont-complete'" >> ~/.zshrc

4. Powerlevel9k Theme

powerlevel9k_logo

มีวิธีการลง Powerlevel9k theme หลายวิธี แต่ลองแนะนำวิธีง่ายๆ เบื้องต้นด้านล่างเพราะน่าจะกระชับสุด

$git clone https://github.com/bhilburn/powerlevel9k.git
$cd ~/powerlevel9k
$echo 'source ~/powerlevel9k/powerlevel9k.zsh-theme' >> ~/.zshrc

ตั้งค่า configuration เบื้องต้น โดยเพิ่มค่าด้านล่างนี้เข้าไปใน ./.zshrc

 POWERLEVEL9K_MODE='nerdfont-complete'

# Set name of the theme to load.
ZSH_THEME="powerlevel9k/powerlevel9k"
source  ~/github/powerlevel9k/powerlevel9k.zsh-theme

# Prompt settings
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_RPROMPT_ON_NEWLINE=true
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%K{white}%k"
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%K{green}%F{black} \uf155 %f%F{green}%k\ue0b0%f "
POWERLEVEL9K_DISABLE_RPROMPT=true

# Separators
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=$'\ue0b0'
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR=$'\ue0b1'
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=$'\ue0b2'
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=$'\ue0b7'

# Dir colours
POWERLEVEL9K_DIR_HOME_BACKGROUND='black'
POWERLEVEL9K_DIR_HOME_FOREGROUND='white'
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND='black'
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND='white'
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND='yellow'
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND='black'

# VCS icons
POWERLEVEL9K_VCS_GIT_ICON=$'\uf113 '
POWERLEVEL9K_VCS_GIT_GITHUB_ICON=$'\uf113 '
POWERLEVEL9K_VCS_GIT_GITLAB_ICON=$'\uf296 '
POWERLEVEL9K_VCS_BRANCH_ICON=$''
POWERLEVEL9K_VCS_STAGED_ICON=$'\uf055'
POWERLEVEL9K_VCS_UNSTAGED_ICON=$'\uf421'
POWERLEVEL9K_VCS_UNTRACKED_ICON=$'\uf00d'
POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=$'\uf0ab '
POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=$'\uf0aa '

# VCS colours
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='blue'
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='black'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='green'
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='black'
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='green'
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='black'

# VCS CONFIG
POWERLEVEL9K_SHOW_CHANGESET=false

# Status
POWERLEVEL9K_OK_ICON=$'\uf164'
POWERLEVEL9K_FAIL_ICON=$'\uf165'
POWERLEVEL9K_CARRIAGE_RETURN_ICON=$'\uf165'

# User with ninja
user_with_skull() {
    echo -n "\ufc72 $(whoami)"
}
POWERLEVEL9K_CUSTOM_USER="user_with_skull"

# Command auto-correction.
ENABLE_CORRECTION="true"

# Command execution time stamp shown in the history command output.
HIST_STAMPS="mm/dd/yyyy"

# Prompt elements
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_user dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(background_jobs battery)

หลังจากแก้ค่าใน config .zshrc แล้ว restart iterm2 จะได้ผลลัพธ์หน้าตา terminal ประมาณนี้

powerlevel9k

การตั้งค่า theme เพิ่มเติมเข้าไปดูต่อได้ที่ https://github.com/bhilburn/powerlevel9k/wiki/Show-Off-Your-Config


Photo by Osman Rana on Unsplash

Leave a Reply

Discover more from Novelty of Hatoriz

Subscribe now to keep reading and get access to the full archive.

Continue reading