终于闲的没事把macos终端们给美化了(oh-my-zsh, kitty, wave)

最后更新于 2025-04-16 34 次阅读


本来以为我会默认终端用到死的,然后早上起床开始也不知道哪根筋搭错了就开始配置终端美化,第一节课没听给折腾完了,留个档方便以后看吧

另外,本文存在大量AI总结的知识内容,因为我懒得自己总结,

基础知识

什么是 Shell?

  • Shell 是命令解释器,是人与计算机之间的接口。
  • Shell 脚本是使用 Shell 语言编写的脚本,可以通过 Shell 程序执行。

常见的 Shell 程序

  1. sh (Bourne Shell):由 AT&T 公司的 Steve Bourne 开发,是 UNIX 的标准 Shell。
  2. csh (C Shell):由柏克莱大学的 Bill Joy 设计,语法类似 C 语言。
  3. tcsh:csh 的增强版,加入了命令补全和更强的语法支持。
  4. ash:简单、轻量级 Shell,占用资源少,适合低内存环境。
  5. bash (Bourne Again Shell):由 GNU 开发,兼容 sh,是大多数 Linux 发行版默认的 Shell。
  6. zsh:兼容 bash,具有自动补全等强大功能,macOS 用户常用。

- 查看自己的shell

echo shell # 查看当前shell
cat /etc/shells # 查看所有安装的shell 

Zsh 和 Bash 的区别

  • Zsh 兼容 Bash 的命令,使用起来更加优雅。
  • Bash 和 Zsh 都是解释器,服务于 Shell 语言,命令语法基本相同,但有部分兼容性差异。

切换 Shell

  • 切换为 Bash:chsh -s /bin/bash
  • 切换为 Zsh:chsh -s /bin/zsh

配置文件

  • Bash 的配置文件:~/.bash_profile
  • Zsh 的配置文件:~/.zshrc
  • 从 Bash 切换为 Zsh 时,可以在 .zshrc 文件中添加 source ~/.bash_profile,直接读取 Bash 的配置。

oh-my-zsh

macos默认使用的就是zsh,所以不需要切换,直接配置一个oh-my-zsh就可以美化输入界面的效率

image host

安装:参考官网

# curl
sh -c "(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# wegt 
sh -c "(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

简单配置:powerlevel10k主题以及插件

powerlevel10k

git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

用文本编辑器打开 ~/.zshrc 文件,将 ZSH_THEME 变量设为 "powerlevel10k/powerlevel10k"

cd ~
vim .zshrc

默认情况下,它应该是 Robbyrussell。删除 ”robbyrussell",添加下面的 "powerlevel10k/powerlevel10k"

更改后,你的 ~/.zshrc 文件应该是这样的:

ZSH_THEME="powerlevel10k/powerlevel10k”

重新启动你的终端,启动首次向导来设置 Powerlevel10k 主题。安装后启动终端时,Powerlevel10k 会提示你各种问题以了解你的 Linux 发行版设置。所以,根据你的需要按下键,按照你的口味来定制你的终端。最后不要忘记保存,保存之后就可以在所有使用zsh的app中默认使用这套主题,比如默认终端、各种第三方终端、vscode等

插件安装

接下来我们来安装并启用两个可用于 Zsh 的插件。它们是 zsh-autosuggestions 和 zsh-syntax-highlighting。

打开终端,运行以下程序,下载 zsh-autosuggestions,并将其放在插件文件夹中:

git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

同样地,为语法高亮插件运行以下程序:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

通过文本编辑器打开 ~/.zshrc文件(使用以下命令),并找到 plugins=(git) 一行。并将其替换为以下内容:

vim ~/.zshrc
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

关闭并打开你的终端。现在,你应该可以使用自动建议和语法高亮了。还可以直接在配置中启用两个Ohmyzsh自带插件:copyfile copypath,一个复制文件内容,一个复制当前路径

解决字体问题

如果启用了icon,那么在vscode/cursor,系统默认终端中可能就会遇到小图标显示为方框的情况,解决办法就是设置字体为MesloLGS NF 。它是一种开源字体,属于 Monospaced(等宽字体)类型,特别适合编程和终端使用。它是 Meslo 字体系列的一个变种,基于 Menlo 字体。该字体由 Nerd Fonts 项目提供,并经过一些优化,特别是在编码和显示符号方面,提升了用户在开发环境中的体验。

首先下载:https://github.com/romkatv/dotfiles-public/tree/master/.local/share/fonts/NerdFonts

vscode/cursor的设置:修改内容为该字体即可即可

image host

macos默认终端:更改字体设置即可

image host

解决环境变量丢失问题

如果你发现安装之后python, pip, cargo, conda等等应该在环境变量里的东西用不了了,大概率是因为omzsh把默认的 ~/.zshrc 给替换了
但是没有关系,它会在这个根目录下留一个原来的备份叫 ~/.zshrc.pre-oh-my-zsh ,把这里面的内容再复制到新的里面就好了,比如我的备份中就有conda 和 cargo 的配置:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="('/Users/liuyucheng/anaconda/anaconda3/bin/conda' 'shell.
if [ ? -eq 0 ]; then
    eval "__conda_setup"
else
    if [ -f "/Users/liuyucheng/anaconda/anaconda3/etc/profile.d/conda.sh". "/Users/liuyucheng/anaconda/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/liuyucheng/anaconda/anaconda3/bin:PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

source $HOME/.cargo/env


第三方终端应用美化

其实Mac上一直用的是争议很大的warp.app,因为需要账号登录所以很多人反感,但是我当时刚开始用macOS,它的默认美化以及功能性上也不错,还有集成度比较高的ai助手就一直用下来了。但是最近经常用wave感觉挺好,所以还是决定换成人民放心的开源良心软件比较好,所以以下是wave.app 和 kitty.app 两个比较知名的第三方终端的主题和背景图片更换指引

wave.app

要在 Wave Terminal 中将背景图片设置为 /Users/wuziming/Pictures/123.png,透明度为 0.2,并将 Monokai 主题设为默认终端主题,您可以按照以下步骤进行:

  1. 编辑 presets.json 文件:
    • 打开终端,输入以下命令以编辑 presets.json 文件:
wsh editconfig presets.json

• 在打开的文件中,添加自定义背景预设。例如,添加以下内容:

{
  "bg@customimage": {
    "display:name": "Custom Image",
    "bg:*": true,
    "bg": "url('/Users/jdsfakl/Pictures/123.png') center/cover no-repeat",
    "bg:opacity": 0.2
  }
}

• 保存并关闭文件。
2. 编辑 settings.json 文件:

• 继续在终端中,输入以下命令以编辑 settings.json 文件:

wsh editconfig settings.json

• 在该文件中,添加或修改以下配置:

{
  "tab:preset": "bg@customimage",
  "term:theme": "monokai"
}

这将设置新标签页默认使用您自定义的背景和 Monokai 终端主题。
• 保存并关闭文件。
1. 应用更改:
• 重新启动 Wave Terminal,以使更改生效。
• 新打开的标签页应默认使用您设置的背景图片和 Monokai 主题。

image host

kitty.app

首先使用命令直接选择主题,这样设置就是默认的

kitty +kitten themes

然后配置背景,使用cmd + ,可以直接进入vim编辑器打开配置文件~/.config/kitty/kitty.conf
我的配置如下

background_image /Users/adfshjkl/Pictures/uber.jpg

background_image_layout cscaled
background_image_linear yes
background_opacity 0.5
background_tint 0.9
background_tint_gaps 0.9

# BEGIN_KITTY_THEME
# Monokai Pro (Filter Octagon)
include current-theme.conf
# END_KITTY_THEME

以下是基于kitty配置文档相关部分的AI总结

这一段 Kitty 终端的文档主要介绍了如何配置终端的背景图片、透明度、颜色调整以及一些相关的视觉效果选项。以下是详细的中文解释:

背景相关配置

1. background_image

用法:background_image <图片路径>
默认值:none(没有背景图片)
作用:指定 Kitty 终端的背景图片。支持的格式包括 PNG、JPEG、WEBP、TIFF、GIF 和 BMP。
示例

background_image /Users/liuyucheng/Pictures/123.png

2. background_image_layout
用法:background_image_layout <模式>
默认值:tiled(平铺)
作用:控制背景图片的布局方式,可选值包括:
tiled:平铺背景图片(默认)
mirror-tiled:镜像平铺
scaled:缩放到窗口大小
cscaled:按比例缩放到窗口大小,保持原始长宽比
clamped:拉伸图片到窗口但不会超过原始大小
centered:将图片居中显示,不缩放
示例

background_image_layout cscaled

这个示例让图片按比例缩放,适配 Kitty 终端窗口大小,不会变形。

3. background_image_linear
用法:background_image_linear <yes/no>
默认值:no
作用:当背景图片被缩放时,是否使用线性插值(平滑化缩放效果)。
示例

background_image_linear yes

这个配置会使 Kitty 在缩放背景图片时使用平滑插值,使图像更柔和,避免像素化。

透明度与背景调整

4. transparent_background_colors
用法:transparent_background_colors <颜色@透明度> <颜色@透明度> ...
默认值:无
作用
• 允许特定的背景颜色变为半透明,例如用于高亮行、光标所在行的背景等。
• 颜色的格式可以是颜色名称(如 red)或十六进制颜色值(如 #00ff00)。
• 透明度 @opacity 是可选的,范围 0.0 ~ 1.0(0 为完全透明,1 为完全不透明)。
示例

transparent_background_colors red@0.5 #00ff00@0.3

这个示例中:
红色背景(red)会变成 50% 透明。
绿色背景(#00ff00)会变成 30% 透明。

5. dynamic_background_opacity
用法:dynamic_background_opacity <yes/no>
默认值:no
作用
• 允许通过快捷键或远程控制动态调整背景透明度。
快捷键
• Ctrl + Shift + A 然后按 m(增加透明度)
• Ctrl + Shift + A 然后按 l(降低透明度)
示例

dynamic_background_opacity yes

这样可以在运行时调整透明度,而不必修改配置文件。

6. background_tint
用法:background_tint <0.0 ~ 1.0>
默认值:0.0(无染色)
作用
• 当背景图片存在或启用了透明背景时,该选项会使用 Kitty 窗口的背景色对背景图片进行“染色”处理。
• 数值范围 0.0 ~ 1.0:
• 0.0 = 完全不染色
• 1.0 = 完全用 Kitty 窗口背景色覆盖
示例

background_tint 0.2

这个示例会让背景图片稍微染上 Kitty 终端背景色,增加可读性。

7. background_tint_gaps
用法:background_tint_gaps <0.0 ~ 1.0>
默认值:1.0
作用
• 控制 Kitty 终端窗口间隙(gaps)部分的背景染色程度。
• 这个值会乘以 background_tint 的值,如果 background_tint 为 0.5,而 background_tint_gaps 为 0.8,那么间隙的最终染色程度就是 0.5 * 0.8 = 0.4。
示例

background_tint_gaps 0.5

这会让窗口间隙部分稍微保留一些背景图片的颜色,而不是完全染色。

其他视觉相关配置

8. dim_opacity
用法:dim_opacity <0.0 ~ 1.0>
默认值:0.4
作用
• 控制“暗淡”文本的透明度,通常用于显示被 DIM/FAINT 标记的文本。
• 1.0 = 不暗淡,0.0 = 完全不可见。
示例

dim_opacity 0.6

这会让暗淡的文本稍微更清晰一些。

9. selection_foreground 和 selection_background
用法

selection_foreground <颜色>
selection_background <颜色>

默认值
• selection_foreground #000000(黑色)
• selection_background #fffacd(淡黄色)
作用
• 控制鼠标选中区域的前景色(文本颜色)和背景色(选中区域颜色)。
• 设为 none 可以实现“反转色”效果,即选中文字和背景颜色互换。
示例

selection_foreground none
selection_background none

这个示例会让选中的文本和背景色互换,而不是使用固定的颜色。

参考文献

kitty.conf - kitty
kitty-diff - kitty
Customization | Wave Terminal Documentation

oh-my-zsh 配置记录:插件,主题,字体 - Fugu's Blog
我又换回Kitty终端了(kitty终端美化配置) - Whiteboard No.13
visual studio code - VSCode terminal not showing icons on terminal on ZSH - Stack Overflow
oh-my-zsh:让终端飞 - 知乎

最后更新于 2025-04-16