ubuntu安装zsh配置过程

会遇到的一些问题

  • 后续安装的那个主题必须下载Nerd字体,进去随便挑一个自己喜欢的双击安装,然后终端要设置为这个字体再配置主题
  • 同样ide里面的终端也要修改成为这个字体,比如vscode pycharm等,不然就会乱码
  • 可能会遇到一部分的环境PATH的问题,有些我也没解决。

查看当前shell的一些指令

# 查看已安装的shell
cat /etc/shells
# 临时切换shell直接使用
bash or shell
# 永久切换shell
sudo chsh -s /bin/zsh
# 查看当前shell
echo $SHELL

1.安装zsh

# 依赖的包也会安装
sudo apt install zsh

安装完进入zsh会有一个初始化提示创建.zshrc文件的提示,有四个选项,忘了选哪个了,好像还是比较重要的。

2.安装oh my zsh

使用git clone项目文件

# 首先cd到home用户文件夹下
# 克隆代码到~/oh-my-zsh文件夹
# 切换目录到oh-my-zsh文件夹下的tools文件夹
sh install.sh

一般来说到这里就没什么问题了,他好像会同步.bashrc里面的环境变量,但是有时候有些环境变量并不其作用,所以还需要手动将这一部分环境变量添加到.zshrc里面,比如conda的环境变量
同时这一部分已经将默认的shell改成了zsh,无需再设置

配置oh my zsh 插件

# 补全提示
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

然后在~/.zshrc里面找到plugins,空格分割添加zsh-autosuggestions zsh-syntax-highlighting pip
再使用source ~/.zshrc应用修改,重启终端即可。

配置主题(powerlevel10k)

# 将项目克隆到~/.oh-my-zsh/custom/themes/powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# 使用gitee可以更加快速
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

主题安装完将~/.zshrc里面的ZSH_THEME 修改为 powerlevel10k/powerlevel10k
重新进入终端会提示你定制主题,这时候我们不用管,继续修改.zshrc文件将以下代码粘贴到最后面

COLOR=(
	004 
#	005 
	006 
#	010
	007
	)
COLOR_ARRAY=(
	004 067 059 
#	005 062 059 
	006 073 109 
#	010 070 115
	007 249 240
	)
# THEME_COLOR=$(( $RANDOM % 3 ))
THEME_COLOR=1
DEFAULT_BACKGROUND=235
DEFAULT_FOREGROUND="${COLOR[$(( $THEME_COLOR + 1 ))]}"

POWERLEVEL9K_MODE="nerdfont-complete"

#####################################[ prompt ]######################################
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%F{$DEFAULT_FOREGROUND}╭─"
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\ue0b4'
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\ue0b4'
POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\ue0b0'
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%F{$DEFAULT_FOREGROUND}╰─%F{${COLOR_ARRAY[$(( $THEME_COLOR * 3 + 2 ))]}}\uf054%F{$DEFAULT_FOREGROUND}\uf054"
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION=$'\uf054'
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=124
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=70
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(user device virtualenv dir vcs newline prompt_char)
#POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(command_execution_time background_jobs status history time ssh)

#####################################[ vcs: git status ]######################################
POWERLEVEL9K_VCS_CLEAN_BACKGROUND="green"
POWERLEVEL9K_VCS_CLEAN_FOREGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND="yellow"
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=166
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="$DEFAULT_BACKGROUND"

##################################[ dir: current directory ]##################################
POWERLEVEL9K_DIR_HOME_BACKGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_DIR_HOME_FOREGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_SHORTEN_DIR_LENGTH=16
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_absolute"
POWERLEVEL9K_SHORTEN_DELIMITER='...'
POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=240

##################################[ status ]##################################
POWERLEVEL9K_STATUS_OK_FOREGROUND="green"
POWERLEVEL9K_STATUS_OK_BACKGROUND="$(( $DEFAULT_BACKGROUND + 4 ))"
POWERLEVEL9K_STATUS_ERROR_FOREGROUND="red"
POWERLEVEL9K_STATUS_ERROR_BACKGROUND="$(( $DEFAULT_BACKGROUND + 4 ))"

POWERLEVEL9K_HISTORY_FOREGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_HISTORY_BACKGROUND="$(( $DEFAULT_BACKGROUND + 2 ))"

POWERLEVEL9K_VIRTUALENV_BACKGROUND="$((  $DEFAULT_BACKGROUND - 2 ))"
POWERLEVEL9K_VIRTUALENV_FOREGROUND="$DEFAULT_FOREGROUND"

POWERLEVEL9K_OS_ICON_FOREGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_OS_ICON_BACKGROUND="$DEFAULT_BACKGROUND"

POWERLEVEL9K_TIME_FORMAT="%D{%T}" #  15:29:33
POWERLEVEL9K_TIME_FOREGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_TIME_BACKGROUND="$DEFAULT_BACKGROUND"

POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
#POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0

POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND="$DEFAULT_FOREGROUND"


POWERLEVEL9K_ROOT_ICON=$'\uF198'  # 

POWERLEVEL9K_SSH_FOREGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_SSH_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_SSH_ICON="\uF489"  # 

POWERLEVEL9K_HOST_LOCAL_FOREGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_HOST_LOCAL_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_HOST_REMOTE_FOREGROUND="$DEFAULT_FOREGROUND"
POWERLEVEL9K_HOST_REMOTE_BACKGROUND="$DEFAULT_BACKGROUND"


POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_LOAD_WARNING_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_LOAD_NORMAL_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND="red"
POWERLEVEL9K_LOAD_WARNING_FOREGROUND="yellow"
POWERLEVEL9K_LOAD_NORMAL_FOREGROUND="green"
POWERLEVEL9K_LOAD_CRITICAL_VISUAL_IDENTIFIER_COLOR="red"
POWERLEVEL9K_LOAD_WARNING_VISUAL_IDENTIFIER_COLOR="yellow"
POWERLEVEL9K_LOAD_NORMAL_VISUAL_IDENTIFIER_COLOR="green"

POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND_COLOR="$DEFAULT_BACKGROUND"
POWERLEVEL9K_BATTERY_CHARGING_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_BATTERY_CHARGED_BACKGROUND="$DEFAULT_BACKGROUND"
POWERLEVEL9K_BATTERY_DISCONNECTED_BACKGROUND="$DEFAULT_BACKGROUND"

function prompt_user() {
    p10k segment -b  $DEFAULT_BACKGROUND -f $DEFAULT_FOREGROUND -i $'\uf2be' +r -t '%n'
}
function prompt_device() {
    p10k segment -b "$(( $DEFAULT_BACKGROUND + 2 ))" -f $DEFAULT_FOREGROUND -i $'\uf108' +r -t '%m'
}

即可成功配置好一款还不错的主题,如下

posted @ 2022-04-14 18:00  NikoIII  阅读(770)  评论(0编辑  收藏  举报