fix autologin work on non X11 kde6

Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
2025-07-13 12:15:42 +05:00
parent 91d53625f5
commit 8aa326c000

View File

@ -69,17 +69,38 @@ if [[ -z $SENTINEL_CREATED ]]; then
export SENTINEL_CREATED=1
fi
if [[ -f /usr/share/xsessions/plasmax11.desktop ]]; then
version=$(grep -E '^X-KDE-PluginInfo-Version=' /usr/share/xsessions/plasmax11.desktop | cut -d'=' -f2)
if [[ $version =~ ^6.* ]]; then
KDE6="true"
KDE6=""
HAS_KDE_X11=""
KDE_VERSION=""
for file in \
/usr/share/xsessions/plasmax11.desktop \
/usr/share/wayland-sessions/plasma.desktop \
/usr/share/wayland-sessions/plasmawayland.desktop \
/usr/share/xsessions/plasmax.desktop; do
if [[ -f "$file" ]]; then
version=$(grep -E '^X-KDE-PluginInfo-Version=' "$file" | cut -d'=' -f2)
if [[ -n "$version" ]]; then
KDE_VERSION="$version"
break
fi
fi
done
if [[ -n "$KDE_VERSION" && "${KDE_VERSION%%.*}" -ge 6 ]]; then
KDE6="true"
else
KDE6=""
fi
if [[ -f /usr/share/xsessions/plasmax11.desktop ]]; then
HAS_KDE_X11="true"
fi
de_normalized="${DE,,}"
# TODO: Check ALT Workstation session_launcher
case "$session" in
desktop)
if [[ "$SESSION_TYPE" == "wayland" ]]; then
@ -88,8 +109,11 @@ case "$session" in
elif [[ "$de_normalized" == *gnome* ]]; then
session_launcher="gnome-wayland"
elif [[ "$de_normalized" == *kde* ]]; then
session_launcher="plasma"
[[ "$KDE6" != "true" ]] && session_launcher="plasmawayland"
if [[ "$KDE6" == "true" ]]; then
session_launcher="plasma"
else
session_launcher="plasmawayland"
fi
elif [[ "$de_normalized" == *hyprland* ]]; then
session_launcher="hyprland"
elif [[ "$de_normalized" == *xfce* && "$de_normalized" != *unicorn* ]]; then
@ -101,8 +125,15 @@ case "$session" in
elif [[ "$de_normalized" == *gnome* ]]; then
session_launcher="gnome-xorg"
elif [[ "$de_normalized" == *kde* ]]; then
session_launcher="plasmax11"
[[ "$KDE6" != "true" ]] && session_launcher="plasma"
if [[ "$KDE6" == "true" ]]; then
if [[ "$HAS_KDE_X11" == "true" ]]; then
session_launcher="plasmax11"
else
die "KDE6 detected, but plasmax11 (X11 session) not available"
fi
else
session_launcher="plasma"
fi
elif [[ "$de_normalized" == *mate* ]]; then
session_launcher="mate"
elif [[ "$de_normalized" == *unicorn* ]]; then