Исчезают эти надоедливые файлы конфигурации .x *

661
So8res

Я пытаюсь заставить как можно больше моих точечных файлов почитать $XDG_CONFIG_HOME(и друзей), вместо того, чтобы копаться в моем домашнем каталоге. Это включает в себя некоторые незначительные изменения в некоторых распространенных приложениях, но не слишком сложные. Тем не менее, у меня проблемы с переносом всех Xконфигурационных файлов в ~/.config/Xкаталог или куда я хочу. В частности, файлы конфигурации ornery:

.Xauthority .Xdefaults .xdvirc .xinitrc .xlog .Xresources .xscreensaver .xsession-errors 

Я знаю, что будет довольно трудно избежать некоторых из тех, кто торчит в моем домашнем каталоге ( xinitrcкашель), но кажется, что все остальные должны быть довольно мобильными. На самом деле, многие из них ( xlog, xsession-errors) чувствуют, что они должны быть перемещаемыми с одной или двумя переменными среды - если они zshrcбыли загружены раньше xinitrc, то есть.

Кто-нибудь знает простой способ заставить большинство этих файлов подчиниться XDGи занять свое законное место в ~/.config? Чистота моего домашнего каталога будет очень признателен за любые советы.

2
Какой метод вы используете для запуска X11 - `xinit` /` startx` или менеджер дисплеев? grawity 11 лет назад 0
startx, в настоящее время. Нет планов на переключение. So8res 11 лет назад 0

1 ответ на вопрос

5
grawity
  • ~/.Xauthorityне является файлом конфигурации и содержит только временные токены аутентификации, поэтому он должен идти $XDG_RUNTIME_DIRили $XDG_CACHE_HOMEвместо него.

    Если вы используете xinitили startxзапускаете X11, вы можете переместить файл Xauthority, указав в $XAUTHORITYдругом месте вашего xinitrc, а затем добавив аргумент к Xorg в вашем .-auth newpathxserverrc

    #!/bin/sh exec /usr/bin/Xorg "$@" -nolisten tcp -auth "$XDG_RUNTIME_DIR/Xauthority" 

    GDM хранит файлы Xauthority глубоко внутри /var/run/gdm.

  • ~/.Xdefaultsустарел и не должен использоваться. Его замена есть ~/.Xresources.

  • ~/.xdvirc мне неизвестно.

  • ~/.xinitrcможно переместить, указав новый путь к xinit:

    startx ~/.config/X11/xinitrc 
  • ~/.xlog мне неизвестно.

  • ~/.Xresourcesтолько для чтения xrdb, и может быть перемещен, сказав, xrdbчтобы объединить другой файл в вашем .xinitrcили .xprofile:

    xrdb -merge ~/.config/X11/Xresources 
  • ~/.xscreensaver вероятно, нужно будет остаться.

  • ~/.xsession-errorsсоздается только диспетчером отображения GDM. Последняя версия Git GDM добавляет это $XDG_RUNTIME_DIR; в противном случае его можно удалить изнутри .xprofile. При использовании xinitфайл xsession-errors вообще не создается.

`~ / .Xauthority` входит в` $ XDG_RUNTIME_DIR`, а не в `$ XDG_CACHE_HOME`. Первый гарантированно находится в локальной файловой системе (обычно в `/ run / user / $ UID /` в наши дни). Хранение `~ / .Xauthority` в` $ HOME`, который может быть сетевой файловой системой, является анахронизмом со времен, когда все использовали ssh для запуска удаленных клиентов X11. Это вызывает две проблемы. Во-первых, sudo xterm не работает из-за корня сквоша. Во-вторых, если `$ HOME` находится на монтировании Kerberized NFS с просроченным билетом Kerberos, ваша блокировка экрана больше не сможет обращаться к вашему X-серверу, чтобы попросить вас ввести пароль, тем самым блокируя вас. Markus Kuhn 7 лет назад 0