消失那些讨厌的 .x* 配置文件

So8*_*res 2 xorg xdg

我试图强迫尽可能多的我的 dotfiles 尊重$XDG_CONFIG_HOME(和朋友),而不是在我的主目录上乱扔垃圾。这涉及对一些常见应用程序的一些细微 调整,但不会太复杂。但是,我无法将 的所有X配置文件放入~/.config/X目录或我想要的任何位置。具体来说,烦人的配置文件是:

.Xauthority
.Xdefaults
.xdvirc
.xinitrc
.xlog
.Xresources
.xscreensaver
.xsession-errors
Run Code Online (Sandbox Code Playgroud)

我知道很难避免一些人留在我的主目录中(xinitrc,咳咳),但似乎所有其他人都应该非常灵活。事实上,他们中的许多人 ( xlog, xsession-errors) 觉得它们应该可以用一两个环境变量重新定位——如果我zshrc之前加载过xinitrc,那就是。

有没有人知道一种简单的方法来强制大多数这些文件服从XDG并占据他们应有的位置~/.config?我的主目录的清洁将不胜感激任何提示。

use*_*686 5

  • ~/.Xauthority不是配置文件,仅包含临时身份验证令牌,因此应该转到$XDG_RUNTIME_DIR$XDG_CACHE_HOME代替。

    如果您正在使用xinitstartx推出X11,您可以通过指向搬迁中的Xauthority文件$XAUTHORITY在其他地方xinitrc,然后加入参数的Xorg在你的。-auth newpathxserverrc

    #!/bin/sh
    exec /usr/bin/Xorg "$@" -nolisten tcp -auth "$XDG_RUNTIME_DIR/Xauthority"
    
    Run Code Online (Sandbox Code Playgroud)

    GDM 将 Xauthority 文件隐藏在/var/run/gdm.

  • ~/.Xdefaults已过时,不应使用。它的替代品是~/.Xresources.

  • ~/.xdvirc 我不知道。

  • ~/.xinitrc可以通过提供新路径来重新定位xinit

    startx ~/.config/X11/xinitrc
    
    Run Code Online (Sandbox Code Playgroud)
  • ~/.xlog 我不知道。

  • ~/.Xresources只能由 读取xrdb,并且可以通过告诉xrdb在您的.xinitrc或 中合并不同的文件来重新定位.xprofile

    xrdb -merge ~/.config/X11/Xresources
    
    Run Code Online (Sandbox Code Playgroud)
  • ~/.xscreensaver 可能需要留下来。

  • ~/.xsession-errors仅由 GDM 显示管理器创建。GDM 的最新 Git 版本把它放在$XDG_RUNTIME_DIR; 否则它可以从内部删除.xprofile。使用时xinit,根本不会创建 xsession-errors 文件。