summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch
blob: 66071aa4af80576cf08ad44d52091a0c88153d5a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
diff --git a/daemon/gdm-x-session.c.orig b/daemon/gdm-x-session.c
index d835b34..1f4b7f1 100644
--- a/daemon/gdm-x-session.c.orig
+++ b/daemon/gdm-x-session.c
@@ -211,6 +211,7 @@ spawn_x_server (State        *state,
         char     *vt_string = NULL;
         char     *display_number;
         gsize     display_number_size;
+        gchar   **xserver_extra_args = NULL;
 
         auth_file = prepare_auth_file ();
 
@@ -285,6 +286,17 @@ spawn_x_server (State        *state,
         if (state->debug_enabled) {
                 g_ptr_array_add (arguments, "-core");
         }
+
+        if (g_getenv ("GDM_X_SERVER_EXTRA_ARGS") != NULL) {
+                g_debug ("using GDM_X_SERVER_EXTRA_ARGS: %s", g_getenv("GDM_X_SERVER_EXTRA_ARGS"));
+                xserver_extra_args = g_strsplit(g_getenv("GDM_X_SERVER_EXTRA_ARGS"), " ", -1);
+                for (gchar **extra_arg = xserver_extra_args; *extra_arg; extra_arg++) {
+                        if (strlen(*extra_arg) < 1) continue;
+			g_debug ("adding: %s", *extra_arg);
+                        g_ptr_array_add (arguments, *extra_arg);
+                }
+        }
+
         g_ptr_array_add (arguments, NULL);
 
         subprocess = g_subprocess_launcher_spawnv (launcher,
@@ -332,6 +344,7 @@ spawn_x_server (State        *state,
 
         is_running = TRUE;
 out:
+	g_strfreev(xserver_extra_args);
         g_clear_pointer (&auth_file, g_free);
         g_clear_object (&data_stream);
         g_clear_object (&subprocess);