2017年11月10日

在 macOS 上設定炫酷的 終端機 操作環境 - 使用 oh-my-zsh w/ Powerlevel9k

2020/01/06 補充:呃,我把它升級 (?) 到 Powerlevel10k 了,Powerlevel10k 建議的字型也不錯看,只是大部份的 icon 都變小了... :(
2018/10/25 補充:更多的客製化:Powerlevel9k: personalise your terminal prompt for any programming language
2018/08/15 補充:如果喜歡 Fira Code 字體的話,可以套用 font-firacode-nerd-font
這兩天把個人在使用的終端機環境改造了一番,很能自嗨,所以留個記錄... XD
  1. 先裝 Homebrew
  2. 再安裝 caskroom
    
    brew update
    brew install cask
    
    
  3. 參考這裡完成 zsh / oh-my-zsh 的安裝
  4. 安裝 Powerlevel9k
  5. 安裝相關字型
    • 基本上就是 Powerline / Awesome / Nerd 三類字型選一個,個人建議 Nerd 類字型即可,因為它的 icon 最完整
    • 以下指令可以啟用 caskroom 的字型庫管理
      
      brew tab caskroom/fonts
      brew update
      
      
    • nerd 相關的字型很多,可以挑一個自己喜歡的來裝,這裡安裝 Source Code Pro 版本
      
      brew search nerd
      
      
  6. 編輯 ~/.zshrc ,設定 Powerlevel9k 運作模式
    
    # 找到 ZSH_THEME 字串位置,改成如下:
    
    POWERLEVEL9K_MODE=nerdfont-complete
    ZSH_THEME="powerlevel9k/powerlevel9k" 
    
    
  7. 參考作者的說明別人的設定,組合出自己最酷炫的終端機界面,重點可先放在以下幾項測試:
    • POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
    • POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
    • POWERLEVEL9K_PROMPT_ADD_NEWLINE
    • POWERLEVEL9K_PROMPT_ON_NEWLINE
  8. 個人的設定如下,加在 ~/.zshrc 檔案末端:
    
    POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
    
    POWERLEVEL9K_TIME_BACKGROUND="white"
    POWERLEVEL9K_TIME_FOREGROUND="black"
    # POWERLEVEL9K_TIME_FORMAT="%D{%H:%M:%S}"
    
    POWERLEVEL9K_VCS_GIT_ICON='\uf1d3'
    POWERLEVEL9K_VCS_GIT_GITHUB_ICON='\uf09b'
    # POWERLEVEL9K_VCS_CLEAN_FOREGROUND='blue'
    # POWERLEVEL9K_VCS_CLEAN_BACKGROUND='black'
    # POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='red'
    # POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='black'
    # POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='black'
    # POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='black'
    
    POWERLEVEL9K_STATUS_VERBOSE=true
    POWERLEVEL9K_STATUS_OK_IN_NON_VERBOSE=false
    
    POWERLEVEL9K_VPN_ICON='\uf023'
    
    POWERLEVEL9K_PROMPT_ON_NEWLINE=true
    POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
    POWERLEVEL9K_FOLDER_ICON='\uf114'
    
    # Bateria
    POWERLEVEL9K_BATTERY_CHARGING='yellow'
    POWERLEVEL9K_BATTERY_CHARGED='blue'
    POWERLEVEL9K_BATTERY_LOW_THRESHOLD='20'
    POWERLEVEL9K_BATTERY_LOW_COLOR='red'
    POWERLEVEL9K_BATTERY_CHARGED_BACKGROUND='46'
    POWERLEVEL9K_BATTERY_CHARGED_FOREGROUND='235'
    POWERLEVEL9K_BATTERY_CHARGING_BACKGROUND='178'
    POWERLEVEL9K_BATTERY_CHARGING_FOREGROUND='235'
    POWERLEVEL9K_BATTERY_LOW_BACKGROUND='88'
    POWERLEVEL9K_BATTERY_LOW_FOREGROUND='235'
    POWERLEVEL9K_BATTERY_CHARGED_ICON='\UF240'
    POWERLEVEL9K_BATTERY_LOW_ICON='\UF240'
    POWERLEVEL9K_BATTERY_CHARGING_ICON='\UF1E6'
    POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND='white'
    POWERLEVEL9K_BATTERY_DISCONNECTED_BACKGROUND='red'
    POWERLEVEL9K_BATTERY_ICON='\UF1E6'
    
    # Anaconda
    POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(anaconda battery)
    POWERLEVEL9K_ANACONDA_RIGHT_DELIMITER='>'
    POWERLEVEL9K_ANACONDA_LEFT_DELIMITER='<'
    POWERLEVEL9K_ANACONDA_BACKGROUND='24'
    POWERLEVEL9K_ANACONDA_FOREGROUND='111'
    # POWERLEVEL9K_ANACONDA_ICON=''
    
    POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir dir_writable vcs )
    POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs command_execution_time time battery anaconda)
    
    
  9. 記得在終端機中選定使用的字型為剛剛安裝的 Nerd 字型,不然只會看到亂碼 1/2 ... (這哏好冷)
  10. 效果如下,謝謝收看!