summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2014-03-25 11:54:31 +0100
committerHans de Goede <hdegoede@redhat.com>2014-04-04 09:45:13 +0200
commit44915d6953076849b69a017f6fc8234b0f254362 (patch)
treee732f92146567be0b915edbf198748813156f161
parent79479a0c45f3177ddf0bb2666d39535b6c767c07 (diff)
startx: Under Linux start X on the current VT
When we let X allocate a new VT, systemd-logind will not recognize any processes running on this VT as belonging to a valid session (since there was no pam session opened on that tty). This causes problems like PolicyKit denials for these processes. ConsoleKit under Linux has been deprecated for a few years now and is no longer being maintained, so simply make this the default under Linux. Note we do not pass in the vt if the user has specified an alternative server to start, as the vtX argument is only valid for the Xorg server, likewise we omit it if the user has specified any other server arguments. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=806491 Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--startx.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/startx.cpp b/startx.cpp
index b7a29f9..f4a0283 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -187,6 +187,17 @@ XCOMM process server arguments
if [ x"$server" = x ]; then
server=$defaultserver
+#ifdef __linux__
+ XCOMM When starting the defaultserver start X on the current tty to avoid
+ XCOMM the startx session being seen as inactive:
+ XCOMM https://bugzilla.redhat.com/show_bug.cgi?id=806491
+ tty=$(tty)
+ if expr match "$tty" '^/dev/tty[0-9]\+$' > /dev/null; then
+ tty_num=$(echo "$tty" | grep -oE '[0-9]+$')
+ defaultserverargs=${defaultserverargs}" vt"${tty_num}
+ fi
+#endif
+
XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
if [ x"$serverargs" = x -a x"$display" = x ]; then
if [ -f "$userserverrc" ]; then