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
и т. Д. Настройка отличная, хотя. Нет входа и выхода из графического сеанса, просто сочетание клавиш для переключения профилей пользователей. Спасибо за этот полезный ответ!Нет:
startx
настраивается. Согласно странице руководства :startx
это не единственный способ начать X (как вы видите изstartlxde
).startx
Страничное руководство поможет еще раз:С другой стороны, если вы хотите выбрать GUI (LXDE, KDE и т.д.), то
xdm
и двойники , такие какkdm
,gdm
илиLightDM
используются для выбора различных типов рабочего стола. На Debian я обычно используюkdm
, потому что это позволяет использовать разные типы рабочих столов. Упаковщикиgdm
запрещают большинство типов настольных компьютеров, что делает его непригодным для моих нужд.xdm
для запуска используется другой набор скриптов, например, ваш~/.xsession
скрипт вместе с системными скриптами. Похожие могут игнорировать это и использовать свои собственные сценарии. Но это отправная точка.источник
.xinitrc
скрипт, который делает его настраиваемым Он может запускать LXDE напрямую, если это закодировано.startlxde
это не интерфейс для xinit, это средство запуска для менеджера сеансов LXDE. Это не заменаstartx
, это то, что вы можете выполнить в~/.xinitrc
.