0da5c8f
#!/usr/bin/bash
0da5c8f
0da5c8f
is_process_running_p()
0da5c8f
{
0da5c8f
	pidid=$(pidof "$1" | sed -e 's|[ \t].*||')
0da5c8f
	if [ "x${pidid}" == "x" ] ; then
0da5c8f
		return 1
0da5c8f
	else
0da5c8f
		return 0
0da5c8f
	fi
0da5c8f
}
0da5c8f
0da5c8f
check_manager_and_exec() {
0da5c8f
	is_process_running_p "$1" || return
0da5c8f
	exec $2
0da5c8f
}
0da5c8f
0da5c8f
check_manager_and_exec "lxdm-binary" "lxdm -c USER_SWITCH"          # LXDE
0da5c8f
check_manager_and_exec "lightdm"     "dm-tool switch-to-greeter"    # XFCE and etc
0da5c8f
check_manager_and_exec "gdm"         "gdmflexiserver -ls"           # GNOME
0da5c8f
# KDE-like
0da5c8f
check_manager_and_exec "sddm" \
0da5c8f
	"qdbus --system org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter"
0da5c8f
0da5c8f
0da5c8f
# No registered login manager found
0da5c8f
exit 1
0da5c8f