zsh主题之powerlevel9k

介绍

powerlevel9k是一个结束powerline字体以显示漂亮界面的一个工具
同时在git状态的显示上比zsh默认的主体要多一些,比如merge中可以显示当前的状态merge
官网:https://github.com/bhilburn/powerlevel9k

安装

本身的安装

此处为使用oh-my-zsh时的方法
放在oh-my-zsh的自定义主体路径下即可
oh-my-zsh会自动查找对应的theme文件

1
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

字体的安装(最为麻烦)

有许多中字体可以选择,但其中pwerline字体最为简单,awesome-powerline最为花哨

  1. powerline字体

    使用稳定版本可以使用apt安装 fonts-powerline
    使用最新文件可下载git文件后运行./install.h
    https://github.com/powerline/fonts

  2. awesome-powerline字体

    在github上有字体
    https://github.com/gabrielelana/awesome-terminal-fonts
    不过readme文件中的指导貌似已经很旧了

配置

建议使用独立的文件进行配置

.zshrc中

1
2
3
4
5
6
7
8
# before choose theme
if [ -f ~/.oh-my-zsh/custom/powerline.zsh ]; then
source ~/.oh-my-zsh/custom/powerline.zsh
fi

# choose theme
# not powerlevel9k
ZSH_THEME="powerlevel9k/powerlevel9k"

独立文件配置

这里需要提前声明TERM变量为256色
可以根据需要打开awesome-powerline字体的显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
export TERM="xterm-256color"
POWERLEVEL9K_MODE='awesome-fontconfig'

# LEFT_PROMPT
# ===========================================================
# POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon user dir dir_writable vcs newline)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(user dir dir_writable vcs newline)
# os_icon
POWERLEVEL9K_OS_ICON_BACKGROUND="254"
POWERLEVEL9K_OS_ICON_FOREGROUND="black"

# user
POWERLEVEL9K_ALWAYS_SHOW_USER=true
POWERLEVEL9K_USER_DEFAULT_BACKGROUND='237'
POWERLEVEL9K_USER_DEFAULT_FOREGROUND="172"

# dir
POWERLEVEL9K_DIR_HOME_BACKGROUND="025"
POWERLEVEL9K_DIR_HOME_FOREGROUND="252"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND="025"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND="252"
POWERLEVEL9K_DIR_ETC_BACKGROUND="025"
POWERLEVEL9K_DIR_ETC_FOREGROUND="252"
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND="025"
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="252"

POWERLEVEL9K_SHORTEN_DIR_LENGTH=7
POWERLEVEL9K_DIR_PATH_HIGHLIGHT_BOLD=true
POWERLEVEL9K_HOME_ICON=''
POWERLEVEL9K_HOME_SUB_ICON=''
POWERLEVEL9K_FOLDER_ICON=''
POWERLEVEL9K_ETC_ICON=''
# POWERLEVEL9K_SHORTEN_STRATEGY='truncate_to_first_and_last'


# vcs
POWERLEVEL9K_VCS_ACTIONFORMAT_FOREGROUND='red'
# POWERLEVEL9K_VCS_CLEAN_BACKGROUND='036'
# POWERLEVEL9K_VCS_CLEAN_FOREGROUND='236'
# POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='003'
# POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='236'
# POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='003'
# POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='236'

POWERLEVEL9K_VCS_CLEAN_BACKGROUND='none'
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='036'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='none'
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='003'
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='none'
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='003'


# POWERLEVEL9K_HIDE_BRANCH_ICON=false
# POWERLEVEL9K_SHOW_CHANGESET=false
# POWERLEVEL9K_CHANGESET_HASH_LENGTH=8
# POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
# POWERLEVEL9K_VCS_HIDE_TAGS=false

# RIGHT_PROMP
# ===========================================================
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time)

# status
POWERLEVEL9K_STATUS_OK=false

# command_execution_time
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=2
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='208'
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='015'


# LEARNING
# ===========================================================
# POWERLEVEL9K_PROMPT_ON_NEWLINE=true
# POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=''
# POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%K{white}%F{black} \UE12E %f%k%F{white}%f "

色彩

当terminal配色风格为暗淡时建议也使用暗色,
否则会吸引注意力.

一个色彩的参考地址:
https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg

其他注意:

  • 浏览器与实际terminal显示颜色有部分差异
  • 与emacs中使用的256色不同,emacs遗憾地不能作为参考
  • 256色其实不是很够,有可能找不到"比这个颜色稍暗一点"的颜色
  • 256色还有很多是重复的,正常现象