Blob Blame History Raw
#!/usr/bin/bash

is_process_running_p()
{
	pidid=$(pidof "$1" | sed -e 's|[ \t].*||')
	if [ "x${pidid}" == "x" ] ; then
		return 1
	else
		return 0
	fi
}

check_manager_and_exec() {
	is_process_running_p "$1" || return
	exec $2
}

check_manager_and_exec "lxdm-binary" "lxdm -c USER_SWITCH"          # LXDE
check_manager_and_exec "lightdm"     "dm-tool switch-to-greeter"    # XFCE and etc
check_manager_and_exec "gdm"         "gdmflexiserver -ls"           # GNOME
# KDE-like
check_manager_and_exec "sddm" \
	"qdbus --system org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter"


# No registered login manager found
exit 1