отключить возможность выбора
Это отключить возможность выбора ДЕ для Всех сразу. А мне нужно выбрать для разных пользователей, разные ДЕ.
Выбор разных DE по-умолчанию определяется в файле $HOME/.dmrc
$ grep . $HOME/.dmrc
[Desktop]
Session=Xfce4
Запрет смены DE по-умолчанию, выполняется установкой атрибута immutable на файл:
# chattr +i /home/$user/.dmrc
$ lsattr $HOME/.dmrc
----i---------e---- /home/wilder/.dmrc
# снять атрибут immutable
# chattr -i /home/$user/.dmrc
Но не всё так просто:
Если *dm использует /etc/X11/Xsession, то при выставленном immutable на .dmrc, смена DE по-умолчанию невозможна, но возможен временный вход в другой DE (если выбор DE в *dm доступен всегда) который /etc/X11/Xsession использует как параметр.
Как это работает на примере gdm2.20:
$ rpm -qf /usr/lib64/gdm/gdmgreeter
gdm2.20-2.20.8-alt12.x86_64
$ strings /usr/lib64/gdm/gdmgreeter | grep SessionDesktopDir
daemon/SessionDesktopDir=/etc/X11/sessions/:/etc/dm/Sessions/:/usr/share/gdm/BuiltInSessions/:/usr/share/xsessions/
$ grep ^Exec /etc/X11/sessions/*.desktop
/etc/X11/sessions/default.desktop:Exec=/etc/X11/Xsession "default"
/etc/X11/sessions/LXDE.desktop:Exec=/etc/X11/Xsession "LXDE"
/etc/X11/sessions/Xfce4.desktop:Exec=/etc/X11/Xsession "Xfce4"
$ rpm -qf /etc/X11/sessions
gdm2.20-2.20.8-alt12.x86_64
$ grep . $HOME/.dmrc
[Desktop]
Session=Xfce4
$ strings /usr/sbin/gdm-binary | grep dmrc
The user dmrc file %s does not exist - creating it
Failed to open dmrc file %s after trying to create it
.dmrc
User's $HOME/.dmrc file is being ignored. This prevents the default session and language from being saved. File should be owned by user and have 644 permissions. User's $HOME directory must be owned by user and not writable by other users.
$ strings /usr/sbin/gdm-binary | grep Xsession
%s: BaseXsession empty; using %s
BaseXsession
/etc/X11/gdm/Xsession
%s: Cannot find or run the base Xsession script. Running the GNOME failsafe session instead.
daemon/BaseXsession=/etc/X11/gdm/Xsession
Но с sddm, вам надо самому выяснить алгоритм его поведения.
Ну а для себя любимого, например оставить такую возможность...
Если выбор DE в *dm запретить всё таки возможно, этот выбор у вас останется, если на вашем .dmrc не установлен immutable и на .dmrc натравить sed со сменой DE. Сессию в tty ведь никто не отменял?