Я нашел три файла конфигурации.
.xinitrc
.xsession
.xsessionrc
Я знаю, что первый предназначен для использования, startx
а второй и третий используются при использовании диспетчера отображения. Но в чем разница между двумя последними?
~/.xinitrc
выполняется xinit
, который обычно вызывается через startx
. Эта программа выполняется после входа в систему : сначала войти в текстовой консоли, то вы запустите графический интерфейс с startx
. Роль .xinitrc
заключается в том, чтобы запустить часть сеанса с графическим интерфейсом, обычно путем установки некоторых параметров, связанных с графическим интерфейсом, таких как привязки клавиш (с помощью xmodmap
или xkbcomp
), ресурсы X (с помощью xrdb
) и т. Д., И запустить диспетчер сеансов или менеджер окон ( возможно, как часть среды рабочего стола).
~/.xsession
выполняется, когда вы входите в графический режим (в диспетчере отображения ), и диспетчер отображения вызывает «пользовательский» тип сеанса. (С помощью диспетчера исторических данных xdm .xsession
всегда выполняется, но с современными диспетчерами отображения, которые предоставляют пользователю выбор типа сеанса, вам обычно нужно выбрать «пользовательский» для .xsession
запуска.) Его роль заключается в установке параметров времени входа в систему. (например, переменные среды) и начать сеанс графического интерфейса. Типичным .xsession
является
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
выполняется в Debian (и его производных, таких как Ubuntu, Linux Mint и т. д.) сценариями запуска X при входе в систему с графическим интерфейсом для всех типов сеансов и (я думаю) из всех диспетчера отображения Он также выполняется, startx
если у пользователя нет .xinitrc
, потому что в этом случае используются startx
те же сценарии запуска сеанса, которые используются для входа в систему с графическим интерфейсом. Он выполняется относительно рано, после загрузки ресурсов, но перед запуском любой программы, такой как ключевой агент, демон D-Bus и т. Д. Он обычно устанавливает переменные, которые могут использоваться более поздними сценариями запуска. У меня нет официальной документации, о которой я знаю, вам нужно поискать источник, чтобы посмотреть, что работает.
.xinitrc
и .xsession
являются историческими особенностями системы X11 Window, поэтому они должны быть доступны и иметь одинаковое поведение во всех системах Unix. С другой стороны, .xsessionrc
это функция Debian, и дистрибутивы, не основанные на Debian, не имеют ее, если не реализовали нечто подобное.
.xprofile
очень похож .xsessionrc
, но он является частью сценария запуска сеанса GDM (диспетчера отображения GNOME), поэтому он читается только при входе в систему с помощью GDM.
Согласно другому обсуждению, startx + ~ / .xsession и отсутствие ~ / .xinitrc приводит к снижению функциональности (xfce4, sid)
Во-первых:
.xsessionrc
для хранения глобальных переменных среды . Акцент мой.Во-вторых:
40x11-common_xsessionrc
в/etc/X11/Xsession.d
источнике раньше50x11-common_determine-startup
. Так.xsessionrc
читается раньше,.xsession
и любой набор переменных окружения станет доступным для приложений, запускаемых командами.xsession
.
Дальнейшее чтение: