Start X at login (Русский)
Ссылки по теме
В этой статье показано, как настроить автоматический запуск X-сервера сразу после входа в виртуальный терминал. Это можно сделать, выполнив команду startx, поведение которой настраивается в файле xinitrc (например, можно указать, какой оконный менеджер использовать). Также для автоматического запуска X можно использовать любой графический экран входа.
Файлы профиля
Для Bash добавьте указанные ниже строки в конец вашего файла ~/.bash_profile
. Если файл еще не создан, просто скопируйте шаблон /etc/skel/.bash_profile
на его место. Для Zsh добавьте строки в ~/.zlogin
(или ~/.zprofile
):
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
Для fish добавьте следующие строки в конец вашего файла ~/.config/fish/config.fish
:
# start X at login if status --is-login if test -z "$DISPLAY" -a $XDG_VTNR = 1 exec startx end end
Используя systemd
Создайте файл службы (например, /etc/systemd/system/xinit@.service
):
[Unit] Description=startx for user %i After=x@vt7.service systemd-user-sessions.service Wants=x@vt7.service Conflicts=getty@tty7.service [Service] User=%i TTYPath=/dev/tty7 PAMName=login Environment=DISPLAY=:0 WorkingDirectory=/home/%I Nice=0 # remove ">/dev/null 2>&1" for debug ExecStart=/bin/bash -l -c "cd; startx >/dev/null 2>&1" [Install] WantedBy=graphical.target
Убедитесь, что файл ~/.xinitrc
существует и в нем заданы правильные настройки.
Включите службу:
# systemctl enable xinit@пользователь
Запустите ее:
# systemctl start xinit@пользователь
Советы и рекомендации
- Этот метод можно совместить с автоматическим входом в виртуальный терминал. При этом вы должны указать правильные зависимости службе автоматического входа systemd, чтобы убедиться, что dbus запускается перед
~/.xinitrc
и, таким образом, PulseAudio запущен (смотрите также BBS#155416) - Если вы хотите оставаться в системе при завершении сеанса X, удалите
exec
в вызове startx - Чтобы перенаправить текстовый вывод сеанса X в файл, создайте следующий псевдоним:
-
alias startx='startx &> ~/.xlog'