Відповіді:
~/.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.
Подальше читання: