Как то я задумался, а зафига мне вообще
display manager и как обойтись без него, как обычно немного погуглил и нашел отличное решение, пользуюсь им уже 1.5 года наверное, но было лень делать заметку.
Для начала создадим файл
.xinitrc в домашней директории
~/.xinitrc:
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
# start some nice programs
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
exec startxfce4
А теперь укажем в .bash_profile на каких виртуальных терминала стартовать X сессию.
~/.bash_profile:
#start X
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx 1>~/.xsession-errors 2>&1
Здесь указано если переменная DISPLAY не объявлена и терминал = 1, то произойдет запуск графической оболочки командой
startx все ошибки будут писаться в
.xession-errors
Если используете
fish добавьте следующее в
~/.config/fish/config.fish:
# start X at login
if status --is-login
if test -z "$DISPLAY" -a $XDG_VTNR -eq 1
exec startx -- -keeptty
end
end
Не забудьте отключить или выпилить DM.
Если нужен автологин то создаем файл
/etc/systemd/system/getty@tty1.service.d/override.conf:
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I 38400 linux
Комментарии ()