Относительно взаимосвязи между инициализацией оболочки и настольными приложениями после «графического входа в систему» ​​

Возможно, вам нужно глобальное меню?

KDE 5.9 поддерживает глобальное меню.

Xfce, LXDE, MATE (но только GTK+ 2): ссылка

1
18.02.2016, 16:48
1 ответ

Файлы конфигурации оболочки вступают в игру только при вызове оболочки. В них нет ничего волшебного. Любой процесс может изменить свое окружение. Большинство только читают его, но любая программа, которая выполняет другую, склонна иметь причину для изменения среды в первую очередь.

Все начинается с init или любого другого идентификатора pid 1 в вашей системе. Он запускает X-сервер, который запускает диспетчер отображения, который предоставляет приглашение для входа в систему. Последовательность запуска X11 не обязательно должна включать оболочку входа в систему; например, init может вызывать fork (2) и exec (2) в / usr / bin / startx. Нет логина, нет .profile . X-сервер наследует только среду, экспортированную init .

Как выглядит среда X-сервера? Вы можете извлечь среду процесса с помощью ps (1). Проще, но не окончательно, использовать ssh имя хоста / usr / bin / env (где имя хоста - это имя машины, на которой размещен сервер X11). Подобно тому, что обычно происходит с X-сервером, sshd выполняет env без создания оболочки входа.

Затем мы переходим к тому, что делает ваш диспетчер отображения, когда вы входите в него. Он разветвляет процесс, меняет uid с (возможно) root на ваш и запускает диспетчер сеансов. За подробностями рекомендую ваше дружелюбное руководство.

С этого момента менеджер сеанса установил свою среду любыми способами. Процессы, которые он создает - интерпретаторы команд или другие приложения, «щелкая» по ним, наследуют его среду.Диспетчер сеанса может предоставить способ определения дополнительных значений переменных среды для каждого значка, а процесс, который запускается при нажатии на объект, может (как это делает оболочка) изменять свою среду при запуске, возможно, с помощью файла конфигурации.

Это все есть. Чтобы понять, как среда становится такой, какая она есть, вам «просто» нужно проследить цепочку процессов, которые ее создали, и понять, что каждый из них сделал с окружающей средой. К сожалению, эта цепочка не только зависит от ОС, дистрибутива, конфигурации компьютера и пользователя, но и не очень хорошо документирована и не оборудована. Удачи, например, в поиске документации, в которой указано, какие переменные среды будут установлены перед, скажем, запуском sshd, или в поиске клиента X11, который отображает среду диспетчера сеансов.

1
27.01.2020, 23:48

Теги

Похожие вопросы