本来以为我会默认终端用到死的,然后早上起床开始也不知道哪根筋搭错了就开始配置终端美化,第一节课没听给折腾完了,留个档方便以后看吧
另外,本文存在大量AI总结的知识内容,因为我懒得自己总结,
基础知识
什么是 Shell?
- Shell 是命令解释器,是人与计算机之间的接口。
- Shell 脚本是使用 Shell 语言编写的脚本,可以通过 Shell 程序执行。
常见的 Shell 程序
- sh (Bourne Shell):由 AT&T 公司的 Steve Bourne 开发,是 UNIX 的标准 Shell。
- csh (C Shell):由柏克莱大学的 Bill Joy 设计,语法类似 C 语言。
- tcsh:csh 的增强版,加入了命令补全和更强的语法支持。
- ash:简单、轻量级 Shell,占用资源少,适合低内存环境。
- bash (Bourne Again Shell):由 GNU 开发,兼容 sh,是大多数 Linux 发行版默认的 Shell。
- 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就可以美化输入界面的效率
安装:参考官网
# 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的设置:修改内容为该字体即可即可
macos默认终端:更改字体设置即可
解决环境变量丢失问题
如果你发现安装之后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 主题设为默认终端主题,您可以按照以下步骤进行:
- 编辑 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 主题。
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:让终端飞 - 知乎
Comments NOTHING