Ubuntu 全局终端美化指南(Oh My Zsh 与 Zim 框架、JetBrains Mono Nerd 字体、背景模糊透明及标题栏透明、ASCII 艺术与终端玩具)
本指南基于 Arch Linux 终端美化教程 改编,适用于 Ubuntu 系列系统(如 Ubuntu 22.04 或 24.04)。本指南提供两种 zsh
美化方案:使用 Oh My Zsh
框架(经典且功能丰富)和 Zim
框架(轻量快速),并包含配置 Powerlevel10k
主题、插件(zsh-autosuggestions
、zsh-syntax-highlighting
、autojump
或 zsh-z
、zsh-completions
)、ttf-jetbrains-mono-nerd
字体、ASCII 艺术工具(figlet
、lolcat
、fortune
、cmatrix
、fastfetch
等),以及终端背景模糊透明和标题栏透明的设置。所有配置将设置为全局可用,适用于所有用户(包括未来创建的用户)。本指南还提供了详细的故障排查步骤,解决 dircolors
错误、重复 compinit
警告、Zim
安装失败(如 /root/.zim already exists
、本地运行 install.zsh
时的语法错误、网络连接问题导致的模块下载失败、/usr/local/share/zim already exists
、zimfw: 没有那个文件或目录
、新用户未自动获取 .p10k.zsh
文件、compinit
重复调用警告、completion was already initialized
警告、p10k: command not found
问题、/usr/local/share/zim/modules/powerlevel10k 不存在
问题、/etc/zsh/.zimrc
和 /etc/zsh/zimrc
冲突问题、zsh-completions
的在线和离线安装方案,以及 figlet
和 lolcat
的安装问题。
准备工作
- 系统要求:Ubuntu 22.04 或 24.04(GNOME 桌面环境)。
- 权限:需要 root 或 sudo 权限以安装系统级软件和配置。
- 工具:需要联网以安装软件包和下载插件(若网络不可用,可使用离线方法)。
- 终端:默认使用 GNOME Terminal,但推荐 Kitty 以实现完整的模糊透明效果(包括标题栏)。
- 注意:
Oh My Zsh
和Zim
不能同时使用,需选择一种框架,并在切换时卸载另一框架。
步骤 1:安装 Zsh 并设置为全局默认 Shell
zsh
是一个功能强大的 Shell,相较于 Ubuntu 默认的 bash
提供更多定制选项。
-
安装 Zsh:
sudo apt update sudo apt install zsh
-
验证安装:
zsh --version
确保版本为 5.8 或更高。
-
设置为全局默认 Shell:
- 修改系统默认 Shell 为
zsh
,适用于所有用户(包括未来创建的用户):sudo chsh -s $(which zsh)
- 为所有现有用户设置默认 Shell:
对其他用户重复此命令,或通过脚本批量设置:sudo usermod -s $(which zsh) $(whoami)
for user in $(getent passwd | awk -F: '$7 ~ /bash/ {print $1}'); do sudo usermod -s $(which zsh) $user done
- 为新用户设置默认 Shell,编辑
/etc/adduser.conf
:
找到sudo vim /etc/adduser.conf
DSHELL
行,修改为:
保存并退出(在DSHELL=/bin/zsh
vim
中,按Esc
,输入:wq
并按 Enter)。
系统需要注销才会生效
- 修改系统默认 Shell 为
步骤 2:清理现有配置(避免冲突)
在安装 Oh My Zsh
或 Zim
之前,清理可能导致冲突的现有配置,并防止 Zim
的 compinit
重复加载问题。
-
检查并修复
~/.dir_colors
问题:- 对于当前用户,检查
~/.dir_colors
:
如果是目录,删除:ls -ld ~/.dir_colors
rm -rf ~/.dir_colors
- 为所有用户清理(包括 root):
sudo find / -type d -name ".dir_colors" -exec rm -rf {} + 2>/dev/null
- 创建系统级的
dircolors
配置文件(可选,若需要自定义ls
颜色):sudo dircolors -p > /etc/dircolors
- 对于当前用户,检查
-
清理
~/.zcompdump
文件:- 为当前用户清理:
rm -f ~/.zcompdump*
- 为所有用户清理(包括 root):
sudo find / -type f -name ".zcompdump*" -delete 2>/dev/null
- 为当前用户清理:
-
检查磁盘空间和权限:
- 确保有足够的磁盘空间:
df -h
- 确保
/etc
和/usr/local
有写入权限:sudo chmod 755 /etc /usr/local
- 确保有足够的磁盘空间:
-
备份并清理
/etc/zsh
下的所有配置文件:- 备份现有的
/etc/zsh
配置文件:sudo cp -r /etc/zsh /etc/zsh.bak
- 检查
/etc/zsh
下的文件是否有compinit
调用,并清理可能导致冲突的配置:
如果发现sudo grep -r "compinit" /etc/zsh
compinit
调用(例如在/etc/zsh/zshrc
或/etc/zsh/zprofile
中),编辑对应文件并删除相关代码:
删除任何包含sudo vim /etc/zsh/zshrc sudo vim /etc/zsh/zprofile
autoload -Uz compinit
或compinit
的行,保存并退出(在vim
中,按Esc
,输入:wq
并按 Enter)。 - 禁用
/etc/zsh/newuser.zshrc.recommended
的compinit
调用:- 检查
/etc/zsh/newuser.zshrc.recommended
是否包含compinit
:grep "compinit" /etc/zsh/newuser.zshrc.recommended
- 如果存在,编辑文件并注释掉相关代码:
找到以下行:sudo vim /etc/zsh/newuser.zshrc.recommended
注释掉:autoload -Uz compinit compinit
保存并退出(在# autoload -Uz compinit # compinit
vim
中,按Esc
,输入:wq
并按 Enter)。
- 检查
- 备份现有的
-
清理
/root
目录下的 Zim 配置文件:- 解决
/root/.zim already exists
错误,并清理可能存在的/root/.zimrc
和/root/.zshrc
:sudo rm -rf /root/.zim sudo rm -f /root/.zimrc /root/.zshrc
- 解决
-
清理
/usr/local/share/zim
目录:- 解决
/usr/local/share/zim already exists
错误,确保安装目录干净:sudo rm -rf /usr/local/share/zim
- 解决
-
清理用户级的 Zim 配置和 Zsh 配置文件(避免冲突):
- 删除所有用户目录下的
.zim
、.zimrc
和可能干扰的 Zsh 配置文件:sudo find /home -type d -name ".zim" -exec rm -rf {} + 2>/dev/null sudo find /home -type f -name ".zimrc" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zshrc" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zprofile" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zlogin" -exec rm -f {} + 2>/dev/null sudo find /home -type f -name ".zshenv" -exec rm -f {} + 2>/dev/null
- 删除
/etc/zsh/.zimrc
和/etc/zsh/zimrc
,确保后续安装使用正确的配置文件路径:sudo rm -f /etc/zsh/.zimrc /etc/zsh/zimrc
- 删除所有用户目录下的
-
防止 Zim 的
compinit
重复加载(针对completion was already initialized
警告):- 如果您计划使用
Zim
框架,需在安装Zim
之前修改其补全模块的初始化脚本,防止重复调用compinit
。 - 下载
Zim
的completion
模块文件:sudo mkdir -p /usr/local/share/zim/modules/completion sudo curl -fsSL https://raw.githubusercontent.com/zimfw/completion/master/init.zsh -o /usr/local/share/zim/modules/completion/init.zsh
- 修改
$ZIM_HOME/modules/completion/init.zsh
:- 编辑文件:
sudo vim /usr/local/share/zim/modules/completion/init.zsh
- 找到以下行:
替换为:print -u2 'warning: completion was already initialized before completion module. Will call compinit again. See https://github.com/zimfw/zimfw/wiki/Troubleshooting#completion-is-not-working'
# 防止重复加载 if [[ "${GLOBAL_COMPINIT_LOADED}" -ne 1 ]]; then print -u2 'warning: completion was already initialized before completion module. Will call compinit again. See https://github.com/zimfw/zimfw/wiki/Troubleshooting#completion-is-not-working#completion-is-not-working' fi
- 找到以下行:
替换为:# Load and initialize the completion system autoload -Uz compinit && compinit -C -d ${zdumpfile} || return 1
# 防止重复加载 if [[ "${GLOBAL_COMPINIT_LOADED}" -ne 1 ]]; then # Load and initialize the completion system autoload -Uz compinit && compinit -C -d ${zdumpfile} || return 1 export GLOBAL_COMPINIT_LOADED=1 fi
- 保存并退出(在
vim
中,按Esc
,输入:wq
并按 Enter)。
- 编辑文件:
- 说明:
GLOBAL_COMPINIT_LOADED
变量用于标记compinit
是否已被加载,避免重复调用。- 这一修改确保警告仅在第一次加载时打印(实际上只会加载一次,后续调用会被跳过)。
- 验证文件修改:
确认修改已正确应用。grep "GLOBAL_COMPINIT_LOADED" /usr/local/share/zim/modules/completion/init.zsh
- 如果您计划使用
步骤 3:选择 Zsh 美化框架(全局配置)
以下提供两种 zsh
美化方案:Oh My Zsh(经典方案)和 Zim(轻量方案)。请根据需求选择一种框架,并按照对应步骤配置。
方案 1:使用 Oh My Zsh 美化 Zsh(全局)
3.1 安装 Oh My Zsh(系统级)
-
安装 Oh My Zsh 到系统目录:
- 默认情况下,
Oh My Zsh
安装在用户目录(~/.oh-my-zsh
)。为实现全局配置,我们将其安装到/usr/local/share/oh-my-zsh
:sudo git clone https://github.com/ohmyzsh/ohmyzsh.git /usr/local/share/oh-my-zsh
- 默认情况下,
-
创建全局 Zsh 配置文件:
- 编辑
/etc/zsh/zshrc
:
添加以下内容:sudo vim /etc/zsh/zshrc
保存并退出(在# 防止重复加载 /etc/zsh/zshrc if [[ "${GLOBAL_ZSHRC_LOADED}" == "1" ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 # 跳过 Zsh 默认的全局 compinit 调用 skip_global_compinit=1 export ZSH="/usr/local/share/oh-my-zsh" ZSH_THEME="powerlevel10k/powerlevel10k" plugins=(git zsh-autosuggestions zsh-syntax-highlighting autojump) source $ZSH/oh-my-zsh.sh # 加载 Powerlevel10k 即时提示 if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 加载 Powerlevel10k 配置文件,优先使用用户自己的配置,否则使用系统默认配置 if [[ -f ~/.p10k.zsh ]]; then source ~/.p10k.zsh elif [[ -f /etc/zsh/.p10k.zsh ]]; then source /etc/zsh/.p10k.zsh else echo "Powerlevel10k configuration not found. Please run 'p10k configure' to set up your prompt." fi # 防止重复显示欢迎消息 if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then figlet "Welcome, $USER" | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fi
vim
中,按Esc
,输入:wq
并按 Enter)。
- 编辑
-
安装 Powerlevel10k 主题(系统级):
sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k
- 如果网络问题导致下载失败,使用离线方法:
sudo mkdir -p /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k sudo wget https://github.com/romkatv/powerlevel10k/archive/refs/heads/master.tar.gz -O /tmp/powerlevel10k.tar.gz sudo tar -xzf /tmp/powerlevel10k.tar.gz -C /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k --strip-components=1 sudo rm /tmp/powerlevel10k.tar.gz
- 验证安装:
确认目录存在且包含ls -ld /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k
powerlevel10k.zsh-theme
文件:ls /usr/local/share/oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme
- 如果网络问题导致下载失败,使用离线方法:
3.2 安装 Oh My Zsh 插件(系统级)
-
安装依赖:
sudo apt install git autojump
-
安装插件:
sudo git clone https://github.com/zsh-users/zsh-autosuggestions /usr/local/share/oh-my-zsh/custom/plugins/zsh-autosuggestions sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git /usr/local/share/oh-my-zsh/custom/plugins/zsh-syntax-highlighting sudo git clone https://github.com/zsh-users/zsh-completions.git /usr/local/share/oh-my-zsh/custom/plugins/zsh-completions
- 如果网络问题导致下载失败,使用离线方法:
sudo mkdir -p /usr/local/share/oh-my-zsh/custom/plugins/zsh-completions sudo wget https://github.com/zsh-users/zsh-completions/archive/refs/heads/master.tar.gz -O /tmp/zsh-completions.tar.gz sudo tar -xzf /tmp/zsh-completions.tar.gz -C /usr/local/share/oh-my-zsh/custom/plugins/zsh-completions --strip-components=1 sudo rm /tmp/zsh-completions.tar.gz
- 如果网络问题导致下载失败,使用离线方法:
-
为新用户设置默认
~/.zshrc
:- 创建
/etc/skel/.zshrc
,新用户创建时会自动复制此文件:
添加:sudo vim /etc/skel/.zshrc
保存并退出(在# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 加载全局配置 source /etc/zsh/zshrc # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f $HOME/.p10k.zsh ]] || source $HOME/.p10k.zsh
vim
中,按Esc
,输入:wq
并按 Enter)。
- 创建
-
为现有用户应用配置:
- 将
/etc/skel/.zshrc
复制到现有用户目录:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/skel/.zshrc /home/$user/.zshrc sudo chown $user:$user /home/$user/.zshrc done
- 将
-
配置 Powerlevel10k(全局):
- 下载一个预配置的
Powerlevel10k
配置文件(如p10k-lean.zsh
)作为系统默认配置,并放置在/etc/zsh/.p10k.zsh
:sudo mkdir -p /etc/zsh sudo curl -fsSL https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-lean.zsh -o /etc/zsh/.p10k.zsh sudo chmod 644 /etc/zsh/.p10k.zsh
- 检查
/etc/zsh/.p10k.zsh
是否成功下载:if [[ ! -s /etc/zsh/.p10k.zsh ]]; then echo "Failed to download Powerlevel10k configuration. Please check your network and try again." exit 1 fi
- 将
.p10k.zsh
复制到/etc/skel
以供新用户使用:sudo cp /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh sudo chmod 644 /etc/skel/.p10k.zsh
- 为现有用户复制
.p10k.zsh
:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/zsh/.p10k.zsh /home/$user/.p10k.zsh sudo chown $user:$user /home/$user/.p10k.zsh done
- 验证 Powerlevel10k 加载:
- 重新加载配置:
source /etc/zsh/zshrc
- 检查
p10k
命令是否可用:
如果输出为空,说明command -v p10k
Powerlevel10k
未正确加载,参考“注意事项”中的p10k: command not found
排查步骤。
- 重新加载配置:
- 自定义提示符样式:
- 在确保
Powerlevel10k
已加载后,用户可以运行以下命令自定义提示符样式:p10k configure
- 如果遇到
p10k: command not found
错误,请参考“注意事项”中的排查步骤。
- 在确保
- 下载一个预配置的
方案 2:使用 Zim 美化 Zsh(全局)
3.1 安装 Zim(系统级)
-
清理现有
~/.zim
目录(包括 root):- 确保
/root/.zim
和其他用户目录下的.zim
都被清理(已在“步骤 2”中完成)。
- 确保
-
检查网络连接:
- 确保可以访问 GitHub:
ping -c 4 github.com
- 如果无法访问 GitHub,可能需要配置代理:
替换export http_proxy=http://your-proxy:port export https_proxy=$http_proxy git config --global http.proxy $http_proxy git config --global https.proxy $https_proxy
your-proxy:port
为您的代理地址(例如http://127.0.0.1:7890
)。 - 或者,使用国内镜像(如果可用):
git config --global url."https://github.com/".insteadOf "https://github.com/"
- 确保可以访问 GitHub:
-
安装 Zim 到系统目录:
- 我们将
Zim
安装到/usr/local/share/zim
。以下提供两种方法:- 方法 1:在线安装(推荐):
说明:设置sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh -c 'curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh'
ZDOTDIR=/etc/zsh
确保配置文件写入/etc/zsh/.zimrc
,而不是/root
。 - 方法 2:使用本地 install.zsh 脚本:
如果您已下载install.zsh
到本地(例如/home/yan/下载/install.zsh
),可以运行:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /home/yan/下载/install.zsh
- 方法 1:在线安装(推荐):
- 我们将
-
检查并修复
zimfw.zsh
文件:- 确保
/usr/local/share/zim/zimfw.zsh
文件存在:ls -l /usr/local/share/zim/zimfw.zsh
- 如果文件不存在,可能是下载失败,手动下载:
或者使用sudo mkdir -p /usr/local/share/zim sudo curl -fsSL https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh -o /usr/local/share/zim/zimfw.zsh
wget
:sudo mkdir -p /usr/local/share/zim sudo wget -O /usr/local/share/zim/zimfw.zsh https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh
- 确保文件可执行:
sudo chmod +x /usr/local/share/zim/zimfw.zsh
- 确保
-
创建全局 Zim 配置文件(如果未自动生成):
- 检查
/etc/zsh/.zimrc
是否存在,若不存在,手动创建:
添加以下内容:sudo vim /etc/zsh/.zimrc
保存并退出(在zmodule romkatv/powerlevel10k --use degit zmodule zsh-users/zsh-autosuggestions zmodule zsh-users/zsh-syntax-highlighting zmodule zsh-users/zsh-history-substring-search zmodule zsh-users/zsh-completions --fpath src zmodule agkozak/zsh-z zmodule environment zmodule git zmodule input zmodule termtitle zmodule utility zmodule duration-info zmodule git-info zmodule asciiship zmodule completion
vim
中,按Esc
,输入:wq
并按 Enter)。 - 注意:
Zim
默认使用/etc/zsh/.zimrc
作为配置文件。如果存在/etc/zsh/zimrc
,请将其重命名为/etc/zsh/.zimrc
:sudo mv /etc/zsh/zimrc /etc/zsh/.zimrc
- 检查
-
安装
zsh-completions
模块(在线和离线方案):- 方案 1:在线安装(推荐):
- 如果网络正常,
zimfw install
会自动下载zsh-completions
:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install
- 观察输出,确认
zsh-completions
已安装:) zsh-completions: Installed
- 如果网络正常,
- 方案 2:离线安装:
- 如果网络不可用或下载失败,手动下载
zsh-completions
:sudo mkdir -p /usr/local/share/zim/modules/zsh-completions sudo wget https://github.com/zsh-users/zsh-completions/archive/refs/heads/master.tar.gz -O /tmp/zsh-completions.tar.gz sudo tar -xzf /tmp/zsh-completions.tar.gz -C /usr/local/share/zim/modules/zsh-completions --strip-components=1 sudo rm /tmp/zsh-completions.tar.gz
- 确保
/etc/zsh/.zimrc
中zsh-completions
条目指向本地路径:
找到以下行:sudo vim /etc/zsh/.zimrc
替换为:zmodule zsh-users/zsh-completions --fpath src
保存并退出(在zmodule /usr/local/share/zim/modules/zsh-completions --fpath src
vim
中,按Esc
,输入:wq
并按 Enter)。 - 重新运行安装命令:
sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install
- 如果网络不可用或下载失败,手动下载
- 方案 1:在线安装(推荐):
-
安装其他 Zim 模块:
- 使用正确的
zimfw
调用方式:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install
- 验证 Powerlevel10k 模块安装:
确认目录存在且包含ls -ld /usr/local/share/zim/modules/powerlevel10k
powerlevel10k.zsh-theme
文件:ls /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme
- 如果模块未安装(例如因网络问题):
- 确认
/etc/zsh/.zimrc
包含所有必要的模块。 - 手动安装缺失的模块(以
Powerlevel10k
为例):
如果网络问题导致sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /usr/local/share/zim/modules/powerlevel10k
git clone
失败,使用压缩包方式:sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo wget https://github.com/romkatv/powerlevel10k/archive/refs/heads/master.tar.gz -O /tmp/powerlevel10k.tar.gz sudo tar -xzf /tmp/powerlevel10k.tar.gz -C /usr/local/share/zim/modules/powerlevel10k --strip-components=1 sudo rm /tmp/powerlevel10k.tar.gz
- 修改
/etc/zsh/.zimrc
,使用本地模块:
将:sudo vim /etc/zsh/.zimrc
替换为:zmodule romkatv/powerlevel10k --use degit
保存并退出(在zmodule /usr/local/share/zim/modules/powerlevel10k
vim
中,按Esc
,输入:wq
并按 Enter)。 - 重新运行安装命令:
sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install
- 再次验证:
ls -ld /usr/local/share/zim/modules/powerlevel10k
- 确认
- 使用正确的
-
配置全局 Zsh 加载 Zim:
- 编辑
/etc/zsh/zshrc
:
添加以下内容:sudo vim /etc/zsh/zshrc
保存并退出(在# 跳过 Zsh 默认的全局 compinit 调用 skip_global_compinit=1 # 优化历史记录 HISTSIZE=10000 SAVEHIST=10000 setopt HIST_IGNORE_DUPS # 确保不会重复加载 Zim if [[ -z "${ZIM_LOADED}" ]]; then export ZIM_HOME=/usr/local/share/zim if [[ -e $ZIM_HOME/init.zsh ]]; then source $ZIM_HOME/init.zsh else echo "Zim initialization failed: $ZIM_HOME/init.zsh not found." fi fi export ZIM_LOADED=1 # 防止重复加载 /etc/zsh/zshrc if [[ "${GLOBAL_ZSHRC_LOADED}" -eq 1 ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 # 别名 alias zimfw='$ZIM_HOME/zimfw.zsh' alias ls='exa --icons' alias ll='exa -laF --icons' alias ff='fastfetch | lolcat' alias curlp="curl -x 127.0.0.1:7890" # 控制台打开时打印信息(防止重复显示) if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then if [[ "$USER" != "root" ]]; then ff fi echo "Hello $USER !" | figlet | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fi # 加载 Powerlevel10k 即时提示(在 Zim 加载之后) if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 强制加载 Powerlevel10k 主题 if [[ -d /usr/local/share/zim/modules/powerlevel10k ]]; then if [[ -f /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme ]]; then source /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme else echo "Powerlevel10k theme not found at /usr/local/share/zim/modules/powerlevel10k/powerlevel10k.zsh-theme." fi # 确保 p10k 命令可用(加载 p10k.zsh) if [[ -f /usr/local/share/zim/modules/powerlevel10k/p10k.zsh ]]; then source /usr/local/share/zim/modules/powerlevel10k/p10k.zsh else echo "p10k.zsh not found at /usr/local/share/zim/modules/powerlevel10k/p10k.zsh." fi else echo "Powerlevel10k module not installed at /usr/local/share/zim/modules/powerlevel10k. Please run 'zimfw install' to install it." fi # 加载 Powerlevel10k 配置文件,优先使用用户自己的配置,否则使用系统默认配置 if [[ -f ~/.p10k.zsh ]]; then source ~/.p10k.zsh elif [[ -f /etc/zsh/.p10k.zsh ]]; then source /etc/zsh/.p10k.zsh else echo "Powerlevel10k configuration not found. Please run 'p10k configure' to set up your prompt." fi
vim
中,按Esc
,输入:wq
并按 Enter)。
- 编辑
-
为新用户设置默认
~/.zshrc
:- 创建
/etc/skel/.zshrc
,新用户创建时会自动复制此文件:
添加以下内容:sudo vim /etc/skel/.zshrc
保存并退出(在# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # 加载全局配置 source /etc/zsh/zshrc # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f $HOME/.p10k.zsh ]] || source $HOME/.p10k.zsh
vim
中,按Esc
,输入:wq
并按 Enter)。
- 创建
-
为现有用户应用配置:
- 将
/etc/skel/.zshrc
复制到现有用户目录:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/skel/.zshrc /home/$user/.zshrc sudo chown $user:$user /home/$user/.zshrc done
- 将
-
配置 Powerlevel10k(全局):
- 如果
/etc/zsh/.p10k.zsh
尚未创建(例如选择了Zim
方案),下载并设置:sudo mkdir -p /etc/zsh sudo curl -fsSL https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-lean.zsh -o /etc/zsh/.p10k.zsh sudo chmod 644 /etc/zsh/.p10k.zsh
- 检查
/etc/zsh/.p10k.zsh
是否成功下载:if [[ ! -s /etc/zsh/.p10k.zsh ]]; then echo "Failed to download Powerlevel10k configuration. Please check your network and try again." exit 1 fi
- 将
.p10k.zsh
复制到/etc/skel
以供新用户使用:sudo cp /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh sudo chmod 644 /etc/skel/.p10k.zsh
- 为现有用户复制
.p10k.zsh
:for user in $(getent passwd | awk -F: '$1 !~ /^(root|nobody|daemon|bin|sys|sync)/ {print $1}'); do sudo cp /etc/zsh/.p10k.zsh /home/$user/.p10k.zsh sudo chown $user:$user /home/$user/.p10k.zsh done
- 验证 Powerlevel10k 加载:
- 重新加载配置:
source /etc/zsh/zshrc
- 检查
p10k
命令是否可用:
如果输出为空,说明command -v p10k
Powerlevel10k
未正确加载,参考“注意事项”中的p10k: command not found
排查步骤。
- 重新加载配置:
- 自定义提示符样式:
- 在确保
Powerlevel10k
已加载后,用户可以运行以下命令自定义提示符样式:p10k configure
- 如果遇到
p10k: command not found
错误,请参考“注意事项”中的排查步骤。
- 在确保
- 如果
步骤 4:安装 JetBrains Mono Nerd 字体(全局)
此步骤将安装 JetBrains Mono Nerd
字体,并为 GNOME Terminal 和 Kitty 设置默认字体,确保所有用户都能使用。
-
下载 JetBrains Mono Nerd 字体到系统字体目录:
sudo mkdir -p /usr/share/fonts/truetype/jetbrains-mono-nerd cd /usr/share/fonts/truetype/jetbrains-mono-nerd sudo curl -fLo "JetBrainsMonoNerdFont-Regular.ttf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/JetBrainsMono/Ligatures/Regular/JetBrainsMonoNerdFont-Regular.ttf sudo curl -fLo "JetBrainsMonoNerdFont-Bold.ttf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/JetBrainsMono/Ligatures/Bold/JetBrainsMonoNerdFont-Bold.ttf
-
刷新字体缓存:
sudo fc-cache -fv
-
设置 GNOME Terminal 默认字体和配置文件(全局):
- 创建默认配置文件:
- 确保配置文件
b1dcc9dd-5262-4d8d-a863-c897e6d979b9
存在,或者获取实际的配置文件 ID:
输出可能为gsettings get org.gnome.Terminal.ProfilesList list
['b1dcc9dd-5262-4d8d-a863-c897e6d979b9']
或其他 ID。如果输出为空或不包含b1dcc9dd-5262-4d8d-a863-c897e6d979b9
,需要创建配置文件:
记下新的配置文件 ID(例如dconf reset -f /org/gnome/terminal/ gsettings get org.gnome.Terminal.ProfilesList list
new-profile-id
),替换下面的b1dcc9dd-5262-4d8d-a863-c897e6d979b9
。
- 确保配置文件
- 设置字体和禁用系统字体:
sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ font 'JetBrainsMono Nerd Font 12' sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ use-system-font false
- 设置默认配置文件(全局):
- 使用
org.gnome.Terminal.ProfilesList
设置默认配置文件:sudo gsettings set org.gnome.Terminal.ProfilesList default 'b1dcc9dd-5262-4d8d-a863-c897e6d979b9'
- 如果
gsettings
命令失败(例如权限问题),使用 DConf 配置文件设置:
添加以下内容:sudo mkdir -p /etc/dconf/db/local.d sudo vim /etc/dconf/db/local.d/00-terminal
保存并退出(在[org/gnome/Terminal/ProfilesList] default='b1dcc9dd-5262-4d8d-a863-c897e6d979b9' [org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9] font='JetBrainsMono Nerd Font 12' use-system-font=false
vim
中,按Esc
,输入:wq
并按 Enter)。 - 更新 DConf 数据库:
sudo dconf update
- 使用
- 验证设置:
输出应为gsettings get org.gnome.Terminal.ProfilesList default
'b1dcc9dd-5262-4d8d-a863-c897e6d979b9'
。
- 创建默认配置文件:
-
设置 Kitty 默认字体(全局,若使用):
- 创建全局 Kitty 配置文件:
添加:sudo mkdir -p /etc/xdg/kitty sudo vim /etc/xdg/kitty/kitty.conf
保存并退出(在font_family JetBrainsMono Nerd Font font_size 12
vim
中,按Esc
,输入:wq
并按 Enter)。
- 创建全局 Kitty 配置文件:
步骤 5:配置终端背景模糊透明(包括标题栏,全局)
方案 1:调整 GNOME Terminal 标题栏透明
方法 1:使用 User Themes
和自定义 CSS
-
安装 User Themes 扩展:
sudo apt install gnome-shell-extension-prefs
- 访问 extensions.gnome.org,安装浏览器插件。
- 搜索并安装 User Themes.
-
创建全局 GNOME Shell 主题:
sudo mkdir -p /usr/share/themes/CustomTheme/gnome-shell sudo vim /usr/share/themes/CustomTheme/gnome-shell/gnome-shell.css
添加:
.titlebar, .header-bar { background: rgba(0, 0, 0, 0.3) !important; border: none; } .titlebar, .header-bar { backdrop-filter: blur(10px); }
保存并退出(在
vim
中,按Esc
,输入:wq
并按 Enter)。 -
为所有用户启用自定义主题:
- 安装 GNOME Tweaks:
sudo apt install gnome-tweaks
- 为所有用户设置 Shell 主题:
sudo gsettings set org.gnome.shell.extensions.user-theme name 'CustomTheme'
- 为新用户设置:
sudo mkdir -p /etc/skel/.config/dconf sudo gsettings set org.gnome.shell.extensions.user-theme name 'CustomTheme'
- 安装 GNOME Tweaks:
-
设置 GNOME Terminal 透明(全局):
sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ use-theme-transparency false sudo gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ background-transparency-percent 20
- 如果遇到权限问题,添加到 DConf 配置文件:
追加:sudo vim /etc/dconf/db/local.d/00-terminal
保存并退出(在[org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9] use-theme-transparency=false background-transparency-percent=20
vim
中,按Esc
,输入:wq
并按 Enter)。- 更新 DConf 数据库:
sudo dconf update
- 更新 DConf 数据库:
- 如果遇到权限问题,添加到 DConf 配置文件:
方法 2:移除标题栏(全局)
-
安装 Hide Top Bar 扩展:
sudo apt install gnome-shell-extension-hide-top-bar
-
启用并配置(全局):
- 为所有用户启用扩展:
sudo gnome-extensions enable hide-top-bar@gnome-shell-extensions.gcampax.github.com
- 为新用户设置:
sudo mkdir -p /etc/skel/.config/gnome-shell echo "hide-top-bar@gnome-shell-extensions.gcampax.github.com" | sudo tee -a /etc/skel/.config/gnome-shell/extensions
- 为所有用户启用扩展:
方案 2:使用 Kitty 终端实现完整的模糊透明(推荐)
-
安装 Kitty:
sudo apt install kitty
-
配置全局 Kitty 设置:
- 编辑
/etc/xdg/kitty/kitty.conf
:
添加:sudo vim /etc/xdg/kitty/kitty.conf
保存并退出(在background_opacity 0.8 dynamic_background_opacity yes background_blur 10 hide_window_decorations yes shell zsh font_family JetBrainsMono Nerd Font font_size 12
vim
中,按Esc
,输入:wq
并按 Enter)。
- 编辑
步骤 6:安装并配置 ASCII 艺术与终端玩具(全局,系统级别)
此步骤将在系统级别安装 ASCII 艺术工具和终端玩具(包括 figlet
、lolcat
、fortune
、cmatrix
和 fastfetch
),并配置全局欢迎消息,确保所有用户(包括现有用户和新用户)都能使用,同时避免重复显示。以下提供在线和离线两种安装方案。
6.1 安装 figlet
(系统级)
figlet
是一个生成 ASCII 艺术文本的工具,可以将文本转换为各种艺术字体样式。
在线安装(推荐)
-
使用
apt
安装figlet
:sudo apt update sudo apt install figlet -y
apt update
更新软件包索引。apt install figlet
安装figlet
软件包,-y
自动确认安装。
-
验证安装:
which figlet
- 输出应为
/usr/bin/figlet
,表示figlet
已安装在系统路径中。 - 测试
figlet
是否正常工作:
输出示例:figlet "Hello"
_ _ _ _ | | | | (_) | | |_| | __ _ _| | | _ |/ _` | | | | | | | (_| | | | |_| |_|__,_|_|_|_|
- 输出应为
离线安装
如果网络不可用,可以从 Ubuntu 软件包仓库手动下载 figlet
的 .deb
包并安装。
-
下载
figlet
的.deb
包:- 访问 Ubuntu 软件包仓库(例如
http://archive.Ubuntu.com/ubuntu/pool/main/f/figlet/
)。 - 找到适用于您的 Ubuntu 版本的
figlet
包,例如figlet_2.2.5-3_amd64.deb
(适用于 Ubuntu 22.04)。 - 在另一台有网络的机器上下载:
wget http://archive.ubuntu.com/ubuntu/pool/main/f/figlet/figlet_2.2.5-3_amd64.deb -O /tmp/figlet.deb
- 将下载的
.deb
文件传输到目标机器(例如通过 USB 驱动器)。
- 访问 Ubuntu 软件包仓库(例如
-
安装
.deb
包:- 假设
.deb
文件已复制到/tmp/figlet.deb
:sudo dpkg -i /tmp/figlet.deb
- 如果提示缺少依赖,修复依赖:
sudo apt install -f
- 假设
-
验证安装:
which figlet
- 输出应为
/usr/bin/figlet
。 - 测试:
figlet "Test"
- 输出应为
6.2 安装 lolcat
(系统级)
lolcat
是一个为终端输出添加彩色渐变效果的工具,常与 figlet
配合使用,使 ASCII 艺术更生动。
在线安装(推荐)
-
使用
apt
和gem
安装lolcat
:- 在 Ubuntu 22.04 或 24.04 中,
lolcat
默认不在官方仓库中,但可以通过 Ruby 的包管理器gem
安装。 - 首先安装 Ruby(
lolcat
是一个 Ruby 脚本):sudo apt update sudo apt install ruby -y
- 使用
gem
安装lolcat
:sudo gem install lolcat
gem install
会将lolcat
安装到系统路径(如/usr/local/bin/lolcat
)。
- 在 Ubuntu 22.04 或 24.04 中,
-
验证安装:
which lolcat
- 输出应为
/usr/local/bin/lolcat
(路径可能因系统而异)。 - 测试
lolcat
是否正常工作:echo "Hello" | lolcat
- 输出应为彩色的 "Hello" 文本。
- 与
figlet
结合测试:figlet "Hello" | lolcat
- 输出将是彩色的 ASCII 艺术文本。
- 输出应为
离线安装
如果网络不可用,可以手动下载 lolcat
的 Ruby Gem 包并安装。
-
准备 Ruby 环境:
- 确保 Ruby 已安装(离线安装 Ruby 需要下载 Ruby 的
.deb
包)。 - 下载 Ruby 的
.deb
包(例如ruby_3.0.2-7ubuntu2.7_amd64.deb
):wget http://archive.Ubuntu.com/ubuntu/pool/main/r/ruby3.0/ruby_3.0.2-7Ubuntu2.7_amd64.deb -O /tmp/ruby.deb
- 安装:
sudo dpkg -i /tmp/ruby.deb sudo apt install -f
- 确保 Ruby 已安装(离线安装 Ruby 需要下载 Ruby 的
-
下载
lolcat
的 Gem 包:- 在有网络的机器上下载
lolcat
的 Gem 包:gem fetch lolcat
- 这将下载一个
.gem
文件,例如lolcat-100.0.1.gem
。
- 这将下载一个
- 将
.gem
文件传输到目标机器(例如/tmp/lolcat-100.0.1.gem
)。
- 在有网络的机器上下载
-
离线安装
lolcat
:- 使用
gem
安装本地 Gem 包:sudo gem install --local /tmp/lolcat-100.0.1.gem
- 使用
-
验证安装:
which lolcat
- 输出应为
/usr/local/bin/lolcat
。 - 测试:
echo "Test" | lolcat
- 输出应为
6.3 安装其他终端玩具(fortune
、cmatrix
和 fastfetch
)
安装 fortune
fortune
是一个显示随机名言或趣味消息的工具,安装后所有用户都可以使用。
- 在线安装:
sudo apt install fortune -y
- 离线安装:
- 下载
fortune
的.deb
包:wget http://archive.ubuntu.com/ubuntu/pool/main/f/fortune-mod/fortune-mod_1.99.1-7build2_amd64.deb -O /tmp/fortune.deb
- 安装:
sudo dpkg -i /tmp/fortune.deb sudo apt install -f
- 下载
- 验证安装:
which fortune
- 输出应为
/usr/games/fortune
。 - 测试:
fortune
- 输出应为
安装 cmatrix
cmatrix
提供类似《黑客帝国》的矩阵风格动画效果,安装后所有用户都可以运行。
- 在线安装:
sudo apt install cmatrix -y
- 离线安装:
- 下载
cmatrix
的.deb
包:wget http://archive.Ubuntu.com/ubuntu/pool/universe/c/cmatrix/cmatrix_2.0-2_amd64.deb -O /tmp/cmatrix.deb
- 安装:
sudo dpkg -i /tmp/cmatrix.deb sudo apt install -f
- 下载
- 验证安装:
which cmatrix
- 输出应为
/usr/bin/cmatrix
。 - 测试:
cmatrix
- 输出应为
安装 fastfetch
fastfetch
是一个显示系统信息的工具,类似于 neofetch
,但速度更快,安装后所有用户都可以运行。
- 在线安装:
- 从
fastfetch
的 GitHub Releases 页面下载最新版本的.deb
包:sudo apt install wget wget https://github.com/fastfetch-cli/fastfetch/releases/download/2.14.0/fastfetch-linux-amd64.deb -O /tmp/fastfetch.deb
- 安装:
sudo dpkg -i /tmp/fastfetch.deb sudo apt install -f
- 从
- 离线安装:
- 在有网络的机器上下载
fastfetch
的.deb
包(同上)。 - 将
.deb
文件传输到目标机器(例如/tmp/fastfetch.deb
)。 - 安装:
sudo dpkg -i /tmp/fastfetch.deb sudo apt install -f
- 在有网络的机器上下载
- 验证安装:
which fastfetch
- 输出应为
/usr/bin/fastfetch
。 - 测试:
fastfetch
- 输出应为
6.4 确保全局可用性
figlet
、lolcat
、fortune
、cmatrix
和fastfetch
的路径:figlet
通常安装在/usr/bin/figlet
。lolcat
通常安装在/usr/local/bin/lolcat
(通过gem
安装)。fortune
通常安装在/usr/games/fortune
。cmatrix
通常安装在/usr/bin/cmatrix
.fastfetch
通常安装在/usr/bin/fastfetch
.- 确认
/usr/local/bin
和/usr/games
在系统PATH
中:echo $PATH
- 输出应包含
/usr/local/bin
和/usr/games
。 - 如果缺失,编辑
/etc/zsh/zshrc
,添加:export PATH=$PATH:/usr/local/bin:/usr/games
- 输出应包含
- 权限:
- 确保工具对所有用户可执行:
sudo chmod 755 /usr/bin/figlet sudo chmod 755 /usr/local/bin/lolcat sudo chmod 755 /usr/games/fortune sudo chmod 755 /usr/bin/cmatrix sudo chmod 755 /usr/bin/fastfetch
- 确保工具对所有用户可执行:
- 测试全局可用性:
- 创建一个新用户并测试:
sudo adduser testuser su - testuser figlet "Hello" | lolcat fortune cmatrix fastfetch | lolcat
- 如果输出正常,说明工具已全局可用。
- 创建一个新用户并测试:
6.5 配置全局欢迎消息(系统级别)
- 全局欢迎消息已在
/etc/zsh/zshrc
中配置(见“步骤 3.2.8”),内容如下:# 控制台打开时打印信息(防止重复显示) if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then if [[ "$USER" != "root" ]]; then ff fi echo "Hello $USER !" | figlet | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fi
WELCOME_MESSAGE_SHOWN
变量用于防止欢迎消息在同一会话中重复显示。if [[ "$USER" != "root" ]]; then ff; fi
确保非 root 用户显示fastfetch
系统信息。echo "Hello $USER !" | figlet | lolcat
使用figlet
生成欢迎消息,并通过lolcat
添加彩色效果。fortune | lolcat
添加随机名言或趣味消息,并使用lolcat
添加彩色效果。- 注意:不建议将
cmatrix
添加到欢迎消息中,因为cmatrix
是一个交互式动画,会阻塞终端。
- 验证欢迎消息对所有用户生效:
- 现有用户:由于
/etc/skel/.zshrc
已配置为source /etc/zsh/zshrc
,现有用户在登录或打开新终端时会自动加载/etc/zsh/zshrc
,从而显示欢迎消息。 - 新用户:新用户创建时会从
/etc/skel/.zshrc
复制配置,同样会加载/etc/zsh/zshrc
,因此也会看到欢迎消息。 - 测试:
确认欢迎消息显示,且不会重复。source /etc/zsh/zshrc
- 现有用户:由于
步骤 7:附加美化选项(全局)
-
安装
exa
:sudo apt install exa
在
/etc/zsh/zshrc
中已添加以下别名:alias ls='exa --icons' alias ll='exa -laF --icons'
-
自定义配色(全局):
- 为 GNOME Terminal 安装
Dracula
主题:sudo git clone https://github.com/dracula/gnome-terminal /usr/local/share/dracula-gnome-terminal cd /usr/local/share/dracula-gnome-terminal sudo ./install.sh
- 为 Kitty 设置 Dracula 主题:
编辑sudo curl -fsSL https://raw.githubusercontent.com/dracula/kitty/master/dracula.conf -o /etc/xdg/kitty/dracula.conf
/etc/xdg/kitty/kitty.conf
:
添加:sudo vim /etc/xdg/kitty/kitty.conf
保存并退出(在include dracula.conf
vim
中,按Esc
,输入:wq
并按 Enter)。
- 为 GNOME Terminal 安装
-
优化历史记录(全局):
在/etc/zsh/zshrc
中已添加:HISTSIZE=10000 SAVEHIST=10000 setopt HIST_IGNORE_DUPS
步骤 8:测试和微调
-
应用配置:
- 为当前用户测试:
source /etc/zsh/zshrc
- 新用户创建后会自动加载
/etc/zsh/zshrc
。
- 为当前用户测试:
-
测试功能:
- 检查标题栏是否透明。
- 验证背景模糊效果。
- 确认 ASCII 艺术显示(
figlet
欢迎消息是否显示,是否重复)。 - 测试终端玩具(运行
fortune | lolcat
、cmatrix
、fastfetch | lolcat
是否正常)。 - 测试插件(命令建议、语法高亮、
j
或z
跳转)。 - 检查提示符样式(Powerlevel10k)和字体(JetBrains Mono Nerd)。
- 验证补全功能是否正常(例如输入
git
后按 Tab 是否显示补全选项)。 - 确认 GNOME Terminal 使用了
JetBrainsMono Nerd Font
字体:gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ font
- 如果使用
Zim
,确认终端打开时不再打印completion was already initialized
警告。 - 确认
p10k configure
命令可用:
如果遇到p10k configure
p10k: command not found
错误,参考“注意事项”中的排查步骤。
-
调整:
- 若标题栏透明不理想,切换到 Kitty。
- 调整 Kitty 的
background_opacity
和background_blur
. - 若欢迎消息未显示,检查
/etc/zsh/zshrc
是否被正确加载,或者工具是否安装成功。 - 若字体未生效,检查
/etc/dconf/db/local.d/00-terminal
是否正确,或者重新运行sudo dconf update
.
-
测试新用户:
- 创建一个新 user 以验证
.p10k.zsh
和欢迎消息是否生效:sudo adduser testuser
- 登录新用户,检查
~/.p10k.zsh
是否存在:ls -l /home/testuser/.p10k.zsh
- 打开终端,确认欢迎消息显示:
zsh
- 如果欢迎消息未显示,检查
/etc/skel/.zshrc
是否正确加载了/etc/zsh/zshrc
. - 确认新用户使用正确的字体:
gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ font
- 如果使用
Zim
,确认新用户打开终端时不打印completion was already initialized
警告。 - 确认新用户可以运行
p10k configure
:
如果遇到p10k configure
p10k: command not found
错误,参考“注意事项”中的排查步骤。
- 创建一个新 user 以验证
步骤 9:卸载 Oh My Zsh 或 Zim(全局)
卸载 Oh My Zsh(全局)
-
备份
/etc/zsh/zshrc
:sudo cp /etc/zsh/zshrc /etc/zsh/zshrc.bak
-
删除 Oh My Zsh 文件:
sudo rm -rf /usr/local/share/oh-my-zsh
-
清理
/etc/zsh/zshrc
:sudo vim /etc/zsh/zshrc
删除
Oh My Zsh
相关配置:if [[ "${GLOBAL_ZSHRC_LOADED}" == "1" ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 skip_global_compinit=1 export ZSH="/usr/local/share/oh-my-zsh" ZSH_THEME="powerlevel10k/powerlevel10k" plugins=(git zsh-autosuggestions zsh-syntax-highlighting autojump) source $ZSH/oh-my-zsh.sh
同时删除
Powerlevel10k
相关配置:if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi if [[ -f ~/.p10k.zsh ]]; then source ~/.p10k.zsh elif [[ -f /etc/zsh/.p10k.zsh ]]; then source /etc/zsh/.p10k.zsh else echo "Powerlevel10k configuration not found. Please run 'p10k configure' to set up your prompt." fi
同时删除欢迎消息相关配置:
if [[ -z "${WELCOME_MESSAGE_SHOWN}" ]]; then figlet "Welcome, $USER" | lolcat fortune | lolcat export WELCOME_MESSAGE_SHOWN=1 fi
保存并退出(在
vim
中,按Esc
,输入:wq
并按 Enter)。 -
清理用户目录:
sudo find /home -type f -name ".zshrc" -exec rm -f {} + sudo find /home -type f -name ".p10k.zsh" -exec rm -f {} +
-
清理系统级配置:
sudo rm -f /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh
-
卸载 ASCII 艺术和终端玩具工具(可选):
sudo apt remove figlet lolcat fortune cmatrix fastfetch -y sudo apt autoremove -y
-
清理字体和 GNOME Terminal 设置:
sudo rm -rf /usr/share/fonts/truetype/jetbrains-mono-nerd sudo fc-cache -fv sudo rm -f /etc/dconf/db/local.d/00-terminal sudo dconf update
卸载 Zim(全局)
-
备份
/etc/zsh/zshrc
和/etc/zsh/.zimrc
:sudo cp /etc/zsh/zshrc /etc/zsh/zshrc.bak sudo cp /etc/zsh/.zimrc /etc/zsh/.zimrc.bak
-
删除 Zim 文件和配置:
sudo rm -rf /usr/local/share/zim sudo rm -f /etc/zsh/.zimrc
-
清理
/etc/zsh/zshrc
:sudo vim /etc/zsh/zshrc
删除
Zim
相关配置:if [[ "${GLOBAL_ZSHRC_LOADED}" -eq 1 ]]; then return 0 fi export GLOBAL_ZSHRC_LOADED=1 skip_global_compinit=1 if [[ -z "${ZIM_LOADED}" ]]; then export ZIM_HOME=/usr/local/share/zim if [[ -e $ZIM_HOME/init.zsh ]]; then source $ZIM_HOME/init.zsh else echo "Zim initialization failed: $ZIM_HOME/init.zsh not found." fi export ZIM_LOADED=1 fi
同时删除
Powerlevel10k
相关配置(与卸载Oh My Zsh
时相同)。
同时删除欢迎消息相关配置(与卸载Oh My Zsh
时相同)。
保存并退出(在vim
中,按Esc
,输入:wq
并按 Enter)。 -
清理用户目录:
sudo find /home -type f -name ".zshrc" -exec rm -f {} + sudo find /home -type f -name ".p10k.zsh" -exec rm -f {} + sudo find /home -type d -name ".zim" -exec rm -rf {} + 2>/dev/null sudo find /home -type f -name ".zimrc" -exec rm -f {} + 2>/dev/null
-
清理系统级配置:
sudo rm -f /etc/zsh/.p10k.zsh /etc/skel/.p10k.zsh
-
卸载 ASCII 艺术和终端玩具工具(可选):
sudo apt remove figlet lolcat fortune cmatrix fastfetch -y sudo apt autoremove -y
-
清理字体和 GNOME Terminal 设置:
sudo rm -rf /usr/share/fonts/truetype/jetbrains-mono-nerd sudo fc-cache -fv sudo rm -f /etc/dconf/db/local.d/00-terminal sudo dconf update
步骤 10:可选 - 桌面集成优化(全局)
-
安装 GNOME Tweaks:
sudo apt install gnome-tweaks
-
安装 Dash to Dock:
sudo apt install gnome-shell-extension-dashtodock
注意事项
- 全局配置注意:
- 所有用户共享
/etc/zsh/zshrc
配置,个性化设置需在用户自己的~/.zshrc
中添加。 - 新用户会自动从
/etc/skel
复制配置文件(包括.zshrc
和.p10k.zsh
)。
- 所有用户共享
- 故障排查:
- 若
/usr/local/share/zim/modules/powerlevel10k 不存在
:- 确认
/etc/zsh/.zimrc
是否包含Powerlevel10k
模块:
输出应包含:grep "powerlevel10k" /etc/zsh/.zimrc
如果缺失,编辑zmodule romkatv/powerlevel10k --use degit
/etc/zsh/.zimrc
添加该行:
添加上述行,保存并退出(在sudo vim /etc/zsh/.zimrc
vim
中,按Esc
,输入:wq
并按 Enter),然后重新运行:sudo env ZIM_HOME=/usr/local/share/zim ZDOTDIR=/etc/zsh zsh /usr/local/share/zim/zimfw.zsh install
- 检查网络连接,确保可以访问 GitHub:
如果网络不可用,配置代理或使用手动安装:ping -c 4 github.com
如果sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /usr/local/share/zim/modules/powerlevel10k
git clone
失败,使用压缩包:sudo mkdir -p /usr/local/share/zim/modules/powerlevel10k sudo wget https://github.com/romkatv/powerlevel10k/archive/refs
- 确认
- 若