以前的时候我会面临一个两难的问题,如果将语言设置成中文,那么有一些命令输出的中文信息不太好懂也不容易搜索,如果设置成英文,那么整个桌面环境就会变成英文,emmm,可读性又不太好,今天终于领悟到了可以通过区分登录 shell 和非登录 shell 的方式完美解决
一开始 Gemini 建议我单独设置LC_MESSAGE成英文,但经过测试发现 gnome 的显示(比如说设置界面)也是依赖于这个环境变量的
还记得 linux 的 shell 分成两种吗,一种是登录 shell,一种是非登录 shell,登录 shell 负责加载桌面环境,那我们直接将语言默认设置成中文,然后让 shell 检测到自己不是登录 shell 的时候将语言设置成英文不就好了
我使用的是fish,就可以执行命令
1 | set -Ux LC_ALL "zh_CN.UTF-8" |
然后在配置文件~/.config/fish/config.fish中添加
1 | if not status is-login |