简单介绍

/etc/environment 这个是配置开机的基本环境的文件吧

1. 文件作用范围

文件 作用范围
/etc/environment 全局作用:对所有用户和所有会话生效,包括 GUI 程序和非登录 Shell。
~/.zshrc 仅对当前用户生效,且只在 Zsh 会话中生效(例如在终端中打开 Zsh)。

2. 加载时机

文件 加载时机
/etc/environment 系统登录时加载:环境变量会被桌面环境(如 GNOME、KDE)和所有子进程(如 GUI 应用)继承。
~/.zshrc Zsh 启动时加载:只在打开终端或运行 Zsh 时执行,通常不影响桌面应用或非 Zsh 启动的程序。

示例

  • 如果在 /etc/environment 中设置变量,GUI 应用(如 Kitty)和终端都会继承。
  • 如果在 ~/.zshrc 中设置,只有 Zsh 终端会继承,桌面应用(如 Kitty)不会加载这些变量。

3. 配置的优先级

文件 优先级
/etc/environment 全局配置,优先级较低。可以被用户级别的配置文件(如 ~/.zshrc~/.bashrc)覆盖。
~/.zshrc 用户级别配置,优先级更高。当前用户可以使用它覆盖 /etc/environment 中的配置。

4. 推荐使用场景

文件 推荐使用场景
/etc/environment 配置需要在所有会话(包括 GUI 程序)中生效的变量,且适用于所有用户。例如输入法相关的全局变量(GTK_IM_MODULE)。
~/.zshrc 配置只在终端会话或当前用户使用的变量。例如开发环境相关的路径、别名或工具变量。

[!TIP] fcitx 5 支持但是要这样配置一下,然后参考 github 的 issue 可知: GLFW_IM_MODULE=ibus kitty

[!Tip] kde 桌面 plasmah 桌面环境的可能要设置一下 a 虚拟键盘才可以使用, 参考1

整体配置如下:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

更详细的请参考系统语言设置

参考资料

arch中文wiki

github issue

系统语言设置