QuarticCat / dotfiles

My dotfiles
MIT License
8 stars 0 forks source link

感谢作者blog优质的内容 顺便请教一下XDG规范目录的问题 #1

Closed 1trapbox closed 9 months ago

1trapbox commented 10 months ago

这两天刚好入坑XDG规范目录. 刚好在重新配置zsh. Google到作者的blog, 谢谢分享. 干货满满~

请问

$HOME, 创建.zshenv 并且配置XDG规范目录变量.

export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_DATA_DIRS="/usr/local/share"
export XDG_CONFIG_DIRS="/etc/xdg"
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"

这与配置在/etc/zsh/zshen/etc/security/pam_env.conf 有什么较大的区别吗? 某stackoverflow问答 某superuser问答

不太理解, 望指点. 看了这2个问题, 我认为是使其他程序更好的兼容用户自定义的XDG规范目录. 但是想想好像又不是.. 好像又只是单纯的全局配置例如 /etc/zsh/zshen 或 用户配置$HOME/.zshenv 的区别而已? 有点乱

对了.. 我使用的是ohmyzsh export ZSH="$XDG_DATA_HOME/oh-my-zsh 是否更建议填写到$HOME/.zshenv, 还是默认老样子在.zshrc填写就行.

再次谢谢, 希望能得到回复. 😊

QuarticCat commented 9 months ago

抱歉没有及时回复。过去几个月我因为抑郁症一直处于退网状态。我会尽快处理所有信息。

QuarticCat commented 9 months ago

另外,我的那篇文章已经过时非常久了,现在我的配置变更了很多,可以直接去读我的配置文件 https://github.com/QuarticCat/dotfiles/tree/main/zsh

1trapbox commented 9 months ago
  • 配置在 /etc/zsh/zshenv 意味着这个系统上所有的用户都会被这个配置影响,而配置在 $HOME/.zshenv 则只影响你这个用户。而且修改 /etc/zsh/zshenv 需要 root 权限,在进行 dotfiles 备份和恢复的时候会造成额外的麻烦。
  • 我不了解 /etc/security/pam_env.conf ,但基于同样的原因我更愿意在 home 目录里面进行配置。
  • 一个环境变量写到哪里取决于你希望它的影响范围是哪个部分。如果只想要在 interactive shell 里面生效,那么就写到 .zshrc ;如果还希望影响到 GUI 程序,那么就要写到 .zshenv ;如果还希望影响到 systemd services ,那可能还得写到别的地方。具体你可以看一下这篇文章 blog.lilydjwg.me/2020/7/22/linux-environment-variables.215496.html

另外,我的那篇文章已经过时非常久了,现在我的配置变更了很多,可以直接去读我的配置文件 main/zsh

谢谢回复, 好美的zshrc. 新年快乐