From 82b44f40e648508cbd911332639c73d594d5348f Mon Sep 17 00:00:00 2001
From: Glen Gray <slaine@slaine.org>
Date: Tue, 16 Jul 2013 13:43:00 +0100
Subject: [PATCH] Include -configdir parameter to non-seat0 Xorg command line
 params.

---
 src/login/multi-seat-x.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/login/multi-seat-x.c b/src/login/multi-seat-x.c
index 83760d4..4e04c65 100644
--- a/src/login/multi-seat-x.c
+++ b/src/login/multi-seat-x.c
@@ -31,6 +31,7 @@ int main(int argc, char *argv[]) {
         const char *seat = NULL;
         char **new_argv;
         _cleanup_free_ char *path = NULL;
+        _cleanup_free_ char *confdir = NULL;
         int r;
         _cleanup_fclose_ FILE *f = NULL;
 
@@ -91,14 +92,22 @@ int main(int argc, char *argv[]) {
         fclose(f);
         f = NULL;
 
-        new_argv = newa(char*, argc + 3 + 1);
+        confdir = strappend("/etc/X11/xorg.conf.d/multi-session-x/", seat);
+        if (!confdir) {
+                log_oom();
+                goto fail;
+        }
+
+        new_argv = newa(char*, argc + 5 + 1);
         memcpy(new_argv, argv, sizeof(char*) * (argc + 2 + 1));
 
         new_argv[0] = (char*) X_SERVER;
         new_argv[argc+0] = (char*) "-config";
         new_argv[argc+1] = path;
-        new_argv[argc+2] = (char*) "-sharevts";
-        new_argv[argc+3] = NULL;
+        new_argv[argc+2] = (char*) "-configdir";
+        new_argv[argc+3] = confdir;
+        new_argv[argc+4] = (char*) "-sharevts";
+        new_argv[argc+5] = NULL;
 
         execv(X_SERVER, new_argv);
         log_error("Failed to execute real X server: %m");
-- 
1.8.1.4

