startxзапускает, xinitкоторый запускает X-сервер и сеанс клиента. Сеанс клиента, ~/.xinitrcесли присутствует, и в противном случае /etc/X11/xinit/xinitrc(местоположение может варьироваться в зависимости от распределения). То, что делает этот скрипт, зависит от дистрибутива. На Debian (включая производные, такие как Raspbian), /etc/X11/xinit/xinitrcзапускает /etc/X11/Xsessionкоторый в свою очередь запускает скрипты в /etc/X11/Xsession.d. Сценарии Debian искать для сеанса работы пользователя в других файлах ( ~/.xsession, ~/.xsessionrc, ~/.Xsession) , и , если настройки пользователя не применяется, пробеги x-session-manager(падение обратно , x-window-managerесли нет [менеджер сеансов] не установлен, падая назад , чтобы x-terminal-emulatorв маловероятном случае , что ни оконный менеджер не является установлены).
Если вы хотите контролировать, что запускается на выполнение, вы можете создать один из пользовательских файлов, либо ~/.xsessionили ~/.xinitrc. Файл ~/.xsessionтакже используется, если вы входите в систему диспетчера отображения (то есть, если вы вводите свой пароль в окне GUI). Файл ~/.xinitrcспецифичен для xinitи startx. Использование ~/.xsessionпроходит, /etc/X11/Xsessionпоэтому он настраивает такие вещи, как методы ввода, ресурсы, агенты паролей и т. Д. Если вы используете .xinitrc, вам придется делать все это вручную. Еще раз, я описываю Debian здесь, другие варианты Unix могут настроить вещи по-другому. Использование ~/.xinitrcдля указания того, что выполняется при запуске startxили xinitявляется универсальным.
Используете ли вы ~/.xinitrcили ~/.xsession, этот файл (обычно сценарий оболочки, но это не обязательно, если вы действительно хотите использовать что-то другое) должен подготовить все, что нужно подготовить (например, настройки клавиатуры, ресурсы, апплеты, которые не запускаются диспетчером окон и т. д.), а затем в конце запустите программу, управляющую сеансом. Когда сценарий заканчивается, сеанс завершается. Как правило, вы должны использовать execв конце скрипта, чтобы заменить скрипт менеджером сеансов или оконным менеджером.
Ваша система предположительно имеет /usr/bin/startlxdeв качестве системного менеджера сеансов по умолчанию. В Debian и его производных вы можете проверить доступные менеджеры сеансов с помощью
update-alternatives --list x-session-manager
или получите более подробное описание, указывающее, какой из них является текущим с
update-alternatives --display x-session-manager
Если LXDE не был общесистемным по умолчанию, и вы хотите сделать его по умолчанию для своей учетной записи, вы можете использовать следующий ~/.xsessionфайл:
#!/bin/sh
exec startlxde
В некоторых вариантах Unix это будет работать только для графических входов в систему, а не для startx, поэтому вам также необходимо создать идентичный ~/.xinitrc. (Или не идентично: в ~/.xsession, возможно, вы захотите сделать что-то другое, потому что это первый файл, который выполняется в графическом сеансе; например, вы можете поместить его . ~/.profileближе к началу, чтобы установить некоторые переменные среды.)
Если вы хотите опробовать другие среды как единовременные, вы можете указать другую программу для запуска в командной строке startx. startxПрограмма имеет странность: вы должны использовать полный путь к программе.
startx /usr/bin/startkde
Команда startxтакже позволяет вам указать аргументы для передачи на сервер. Например, если вы хотите запустить несколько сеансов GUI одновременно, вы можете каждый раз передавать разные номера дисплея. Передайте аргументы сервера после --в командной строке startx.
startx /usr/bin/startkde -- :1
startxПосле моего входа в систему запускается сеанс Xfce4 по умолчанию. От пользователя моей жены войдите на tty1 или tty2. Ееstartxкоманда настроена на запуск Cinnamon (указан в~/.xsession). Для второго X-сервера мне не нужно указывать,$DISPLAYкак отмечено в последней части вашего ответа. Хотя это, безусловно, работает. Это автоматически делает его вторым$DISPLAYи т. Д. Настройка отличная, хотя. Нет входа и выхода из графического сеанса, просто сочетание клавиш для переключения профилей пользователей. Спасибо за этот полезный ответ!