Відповіді:
~/.xinitrc
виконується тим xinit
, що зазвичай викликається через startx
. Ця програма виконується після входу в систему: спочатку ви входите на текстову консоль, потім запускаєте GUI startx
. Роль .xinitrc
полягає в тому, щоб запустити частину сеансу GUI, як правило, встановивши деякі параметри, пов’язані з графічним інтерфейсом, такі як прив'язка ключів (з xmodmap
або xkbcomp
), X-ресурси (з xrdb
) тощо, та запустити менеджер сеансу чи менеджер вікон ( можливо, як частина робочого середовища).
~/.xsession
виконується, коли ви входите в графічний режим (у диспетчері дисплеїв ), і менеджер дисплеїв викликає тип "сеансу" на замовлення (За допомогою історичного диспетчера дисплеїв xdm .xsession
завжди виконується, але з сучасними диспетчерами дисплеїв, які дають користувачеві можливість вибору типу сеансу, вам зазвичай потрібно вибрати "спеціальний" для .xsession
запуску.) Його роль полягає у встановленні параметрів часу входу. (наприклад, змінні середовища) та запустити сеанс GUI. Типовим .xsession
є
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
виконується на Debian (та похідних, таких як Ubuntu, Linux Mint тощо) за допомогою сценаріїв запуску X за входом у графічний інтерфейс GUI для всіх типів сеансів та (я думаю) від усіх менеджерів дисплеїв. Він також виконується, startx
якщо користувач не має .xinitrc
, тому що в цьому випадку startx
потрапляє назад на той самий сценарій запуску сеансу, який використовується для входу в GUI. Він виконується порівняно рано, після завантаження ресурсів, але перед запуском будь-якої програми, наприклад, ключового агента, демона D-Bus тощо. Зазвичай він встановлює змінні, які можуть бути використані пізнішими сценаріями запуску. У ній немає жодної офіційної документації, про яку я знаю, ви повинні зануритися в джерело, щоб побачити, що працює.
.xinitrc
і .xsession
є історичними особливостями системи X11 Window, тому вони повинні бути доступними та мати подібну поведінку у всіх системах Unix. З іншого боку, .xsessionrc
це функція Debian, і дистрибутиви, які не засновані на Debian, не мають її, якщо вони не реалізували щось подібне.
.xprofile
дуже схожий на .xsessionrc
, але він є частиною сценарію запуску сеансу GDM (диспетчера дисплеїв GNOME), тому він читається лише в тому випадку, якщо ви входите з GDM.
Згідно з іншою дискусією, startx + ~ / .xsession і no ~ / .xinitrc призводить до зниження функціональності (xfce4, sid)
По-перше:
.xsessionrc
це проведення глобальних змінних середовища . Акцент - мій.По-друге:
40x11-common_xsessionrc
в/etc/X11/Xsession.d
- джерело раніше50x11-common_determine-startup
. Так.xsessionrc
читається раніше,.xsession
і будь-які встановлені змінні середовища стануть доступними для програм, запускаються командами в.xsession
.
Подальше читання: