Різниця між .xinitrc, .xsession і .xsessionrc


55

Я знайшов три конфігураційні файли.

  1. .xinitrc
  2. .xsession
  3. .xsessionrc

Я знаю, що перший використовується, startxа другий і третій використовуються при використанні диспетчера дисплеїв. Але в чому різниця між останніми двома?

Відповіді:


64

~/.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.


5

Згідно з іншою дискусією, startx + ~ / .xsession і no ~ / .xinitrc призводить до зниження функціональності (xfce4, sid)

По-перше: .xsessionrcце проведення глобальних змінних середовища . Акцент - мій.

По-друге: 40x11-common_xsessionrcв /etc/X11/Xsession.d- джерело раніше 50x11-common_determine-startup. Так .xsessionrcчитається раніше, .xsessionі будь-які встановлені змінні середовища стануть доступними для програм, запускаються командами в .xsession.

Подальше читання:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.