]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Rearrange configuration
authorRobert Ancell <robert.ancell@canonical.com>
Fri, 15 Jul 2011 13:57:46 +0000 (23:57 +1000)
committerRobert Ancell <robert.ancell@canonical.com>
Fri, 15 Jul 2011 13:57:46 +0000 (23:57 +1000)
data/lightdm.conf
src/display-manager.c
src/display.c
src/dmrc.c
src/greeter.c
src/lightdm.c
src/seat-local.c
src/seat-xdmcp-client.c
src/session.c
src/theme.c
src/xserver.c

index 597762ad0bbeca3b9bb7b64232ab1a1786a5d2b7..f0f80316104a219c22d62f97d99858c2c02be1b1 100644 (file)
@@ -1,75 +1,50 @@
 #
 # General configuration
 #
-# xserver = X server to run
-# default-xserver-command = Default X server command
-# default-greeter-theme = Default greeter theme to use
-# default-xsession Default X session to use
-# session-wrapper = Program to run sessions through
 # minimum-display-number = Minimum display number to use for X servers
 # minimum-vt = First VT to run displays on
 # user-authority-in-system-dir = True if session authority should be in the system location
+# greeter-user = User to run greeter as
 # seats = list of seats to start displays on
 #
 [LightDM]
-#xserver=default-xserver
-#default-xserver-command=
-#default-greeter-theme=
-#default-xsession=
-#session-wrapper=/etc/X11/Xsession
 #minimum-display-number=0
 #minimum-vt=7
 #user-authority-in-system-dir=false
+#greeter-user=lightdm
 seats=seat-0
 
 #
-# Directory configuration
-#
-# log-directory = Directory to log information to
-# theme-directory = Directory to load themes from
-# theme-engine-directory = Directory to load theme engines from
-# run-directory = Directory to put running state in
-# cache-directory = Directory to cache to
-# xsessions-directory = Directory to find X sessions
-#
-#[directories]
-#log-directory=/var/log/lightdm
-#theme-directory=/usr/share/lightdm/themes
-#theme-engine-directory=/usr/libexec/lightdm
-#run-directory=/var/run/lightdm
-#cache-directory=/var/cache/lightdm
-#xsessions-directory=/usr/share/xsessions
-
-#
-# X server configuration
-# layout = ServerLayout to use
-# config-file = Configuration file to use
-#
-#[default-xserver]
-#command=/usr/bin/X
-#layout=
-#config-file=
+# Seat defaults
+#
+# xserver-layout = Layout to pass to X server
+# xserver-config = Config file to pass to X server
+# xserver-command = X server command to run
+# greeter-them = Greeter theme to use
+# xsession = X session to load by default
+# xsession-wrapper = Wrapper script to run X session with
+# autologin-user = User to log in with by default
+# autologin-user-timeout = Number of seconds to wait before loading default user
+#
+#[Defaults]
+#xserver-layout=
+#xserver-config=
+#xserver-command=/usr/bin/X
+#greeter-theme=example-gtk-gnome
+#xsession=
+#xsession-wrapper=
+#autologin-user=
+#autologin-user-timeout=5
 
 #
 # Seat configuration
 #
-# greeter-theme = Greeter theme
-# greeter-user = User to run greeter process as
-# session = Default session
-# default-user = Username of default user to log in as
-# default-user-timeout = Delay before logging in in seconds (use 0 for automatic login)
-# xserver = X server to use
 # xdmcp-manager = XDMCP manager to connect to
 # xdmcp-port = XDMCP UDP/IP port to communicate on
 # key = Authentication key to use
+# Can override any of the options from defaults
 #
 [seat-0]
-#greeter-theme=example-gtk-gnome
-#greeter-user=lightdm
-#session=gnome
-#default-user=bob
-#default-user-timeout=5
-#xserver=
 #xdmcp-manager=
 #xdmcp-port=177
 #key=0x0123456789ABCD
@@ -112,7 +87,25 @@ seats=seat-0
 # The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
 # it can be a word and the first 7 characters are used as the key.
 #
-[xdmcp]
+[XDMCPServer]
 #enabled=false
 #port=177
 #key=0x0123456789ABCD
+
+#
+# Directory configuration
+#
+# log-directory = Directory to log information to
+# theme-directory = Directory to load themes from
+# theme-engine-directory = Directory to load theme engines from
+# run-directory = Directory to put running state in
+# cache-directory = Directory to cache to
+# xsessions-directory = Directory to find X sessions
+#
+#[Directories]
+#log-directory=/var/log/lightdm
+#theme-directory=/usr/share/lightdm/themes
+#theme-engine-directory=/usr/libexec/lightdm
+#run-directory=/var/run/lightdm
+#cache-directory=/var/cache/lightdm
+#xsessions-directory=/usr/share/xsessions
index d5310d8117916cf5b71f3c501f501431d66c721d..c2b5afa577704c4d24b7b2da45948a3a4a33a953 100644 (file)
@@ -119,21 +119,21 @@ display_manager_start (DisplayManager *manager)
     }
     g_strfreev (tokens);
 
-    if (config_get_boolean (config_get_instance (), "xdmcp", "enabled"))
+    if (config_get_boolean (config_get_instance (), "XDMCPServer", "enabled"))
     {
         //gchar *key;
 
         manager->priv->xdmcp_server = xdmcp_server_new ();
-        if (config_has_key (config_get_instance (), "xdmcp", "port"))
+        if (config_has_key (config_get_instance (), "XDMCPServer", "port"))
         {
             gint port;
-            port = config_get_integer (config_get_instance (), "xdmcp", "port");
+            port = config_get_integer (config_get_instance (), "XDMCPServer", "port");
             if (port > 0)
                 xdmcp_server_set_port (manager->priv->xdmcp_server, port);
         }
         g_signal_connect (manager->priv->xdmcp_server, "new-session", G_CALLBACK (xdmcp_session_cb), manager);
 
-        /*key = config_get_string (config_get_instance (), "xdmcp", "key");
+        /*key = config_get_string (config_get_instance (), "XDMCPServer", "key");
         if (key)
         {
             guchar data[8];
index 30284dec8cb37527d26104f151130e0ef2755d29..25b58513945fa312ab256b06a19f845d5c44529c 100644 (file)
@@ -535,7 +535,7 @@ start_user_session (Display *display, const gchar *session)
     /* Update the .dmrc with changed settings */
     g_key_file_set_string (dmrc_file, "Desktop", "Session", session);
 
-    xsessions_dir = config_get_string (config_get_instance (), "directories", "xsessions-directory");
+    xsessions_dir = config_get_string (config_get_instance (), "Directories", "xsessions-directory");
     filename = g_strdup_printf ("%s.desktop", session);
     path = g_build_filename (xsessions_dir, filename, NULL);
     g_free (xsessions_dir);
@@ -818,7 +818,7 @@ start_greeter (Display *display)
     if (authorization)
         session_set_authorization (SESSION (display->priv->greeter_session), authorization);
 
-    log_dir = config_get_string (config_get_instance (), "directories", "log-directory");
+    log_dir = config_get_string (config_get_instance (), "Directories", "log-directory");
     filename = g_strdup_printf ("%s-greeter.log", xserver_get_address (display_get_xserver (display)));
     log_filename = g_build_filename (log_dir, filename, NULL);
     g_free (log_dir);
index df5092a5bb7c6c7d3a2014e4fd406de23fc0be65..9aa1d1715d4c97990829b5aa4491dacb3a7544a7 100644 (file)
@@ -46,7 +46,7 @@ dmrc_load (const gchar *username)
         gchar *filename, *cache_dir;
 
         filename = g_strdup_printf ("%s.dmrc", user_get_name (user));
-        cache_dir = config_get_string (config_get_instance (), "directories", "cache-directory");
+        cache_dir = config_get_string (config_get_instance (), "Directories", "cache-directory");
         path = g_build_filename (cache_dir, "dmrc", filename, NULL);
         g_free (filename);
         g_free (cache_dir);
@@ -88,7 +88,7 @@ dmrc_save (GKeyFile *dmrc_file, const gchar *username)
     }
 
     /* Update the .dmrc cache */
-    cache_dir = config_get_string (config_get_instance (), "directories", "cache-directory");
+    cache_dir = config_get_string (config_get_instance (), "Directories", "cache-directory");
     dmrc_cache_dir = g_build_filename (cache_dir, "dmrc", NULL);
     g_mkdir_with_parents (dmrc_cache_dir, 0700);
 
index 3efa04a011078c43ecb18e3b26bc09c7d58fdc94..d59ceeb1a78bfd87853ed57147220cb307885369 100644 (file)
@@ -196,7 +196,7 @@ handle_connect (Greeter *greeter)
         g_debug ("Greeter connected");
     }
 
-    theme_dir = config_get_string (config_get_instance (), "directories", "theme-directory");  
+    theme_dir = config_get_string (config_get_instance (), "Directories", "theme-directory");  
     theme = g_build_filename (theme_dir, greeter->priv->theme, "index.theme", NULL);
     g_free (theme_dir);
 
index 238e93628258b63b82dfff7ee34b75e635bfd91d..c833d47199a22b0a12f1578a31496f4a55e97bc5 100644 (file)
@@ -91,7 +91,7 @@ log_init (void)
     log_timer = g_timer_new ();
 
     /* Log to a file */
-    log_dir = config_get_string (config_get_instance (), "directories", "log-directory");
+    log_dir = config_get_string (config_get_instance (), "Directories", "log-directory");
     g_mkdir_with_parents (log_dir, 0755);
     path = g_build_filename (log_dir, "lightdm.log", NULL);
     g_free (log_dir);
@@ -421,12 +421,12 @@ main(int argc, char **argv)
     config_set_string (config_get_instance (), "LightDM", "default-xserver-command", default_xserver_command);
     config_set_string (config_get_instance (), "LightDM", "default-greeter-theme", default_greeter_theme);
     config_set_string (config_get_instance (), "LightDM", "default-xsession", default_xsession);
-    config_set_string (config_get_instance (), "directories", "log-directory", LOG_DIR);
-    config_set_string (config_get_instance (), "directories", "theme-directory", theme_dir);
-    config_set_string (config_get_instance (), "directories", "theme-engine-directory", theme_engine_dir);
-    config_set_string (config_get_instance (), "directories", "run-directory", run_dir);
-    config_set_string (config_get_instance (), "directories", "cache-directory", cache_dir);
-    config_set_string (config_get_instance (), "directories", "xsessions-directory", xsessions_dir);
+    config_set_string (config_get_instance (), "Directories", "log-directory", LOG_DIR);
+    config_set_string (config_get_instance (), "Directories", "theme-directory", theme_dir);
+    config_set_string (config_get_instance (), "Directories", "theme-engine-directory", theme_engine_dir);
+    config_set_string (config_get_instance (), "Directories", "run-directory", run_dir);
+    config_set_string (config_get_instance (), "Directories", "cache-directory", cache_dir);
+    config_set_string (config_get_instance (), "Directories", "xsessions-directory", xsessions_dir);
 
     if (minimum_display_number)
         config_set_integer (config_get_instance (), "LightDM", "minimum-display-number", atoi (minimum_display_number));
@@ -436,18 +436,18 @@ main(int argc, char **argv)
         gchar *path;
 
         path = g_build_filename (g_get_user_cache_dir (), "lightdm", "run", NULL);
-        config_set_string (config_get_instance (), "directories", "run-directory", path);
+        config_set_string (config_get_instance (), "Directories", "run-directory", path);
         g_free (path);
 
         path = g_build_filename (g_get_user_cache_dir (), "lightdm", "cache", NULL);
-        config_set_string (config_get_instance (), "directories", "cache-directory", path);
+        config_set_string (config_get_instance (), "Directories", "cache-directory", path);
         g_free (path);
 
         path = g_build_filename (g_get_user_cache_dir (), "lightdm", "log", NULL);
-        config_set_string (config_get_instance (), "directories", "log-directory", path);
+        config_set_string (config_get_instance (), "Directories", "log-directory", path);
         g_free (path);
     }
-    config_set_boolean (config_get_instance (), "LightDM", "use-xephyr", use_xephyr);
+    config_set_boolean (config_get_instance (), "Defaults", "use-xephyr", use_xephyr);
 
     log_init ();
 
index b61f613f268bf0165dce4d918ca9c12241a767ec..f9a50ecf5c9a831a27bf2cf6b753e4e5b33aa70c 100644 (file)
@@ -35,8 +35,8 @@ seat_local_new (const gchar *config_section)
     seat->priv->config_section = g_strdup (config_section);
 
     seat_set_can_switch (SEAT (seat), TRUE);
-    username = config_get_string (config_get_instance (), config_section, "default-user");
-    timeout = config_get_integer (config_get_instance (), config_section, "default-user-timeout");
+    username = config_get_string (config_get_instance (), config_section, "autologin-user");
+    timeout = config_get_integer (config_get_instance (), config_section, "autologin-user-timeout");
     if (timeout < 0)
         timeout = 0;
     if (username)
@@ -50,8 +50,8 @@ seat_local_add_display (Seat *seat)
 {
     XServer *xserver;
     XAuthorization *authorization = NULL;
-    gchar *xserver_section = NULL;
     gchar *command, *dir, *filename, *path;
+    gchar *xserver_command, *xserver_layout, *xserver_config;
     gchar *number;
     gchar hostname[1024];
     Display *display;
@@ -74,7 +74,7 @@ seat_local_add_display (Seat *seat)
     g_object_unref (authorization);
 
     filename = g_strdup_printf ("%s.log", xserver_get_address (xserver));
-    dir = config_get_string (config_get_instance (), "directories", "log-directory");
+    dir = config_get_string (config_get_instance (), "Directories", "log-directory");
     path = g_build_filename (dir, filename, NULL);
     g_debug ("Logging to %s", path);
     child_process_set_log_file (CHILD_PROCESS (xserver), path);
@@ -82,39 +82,29 @@ seat_local_add_display (Seat *seat)
     g_free (dir);
     g_free (path);
 
-    /* Get the X server configuration */
-    if (SEAT_LOCAL (seat)->priv->config_section)
-        xserver_section = config_get_string (config_get_instance (), SEAT_LOCAL (seat)->priv->config_section, "xserver");
-    if (!xserver_section)
-        xserver_section = config_get_string (config_get_instance (), "LightDM", "xserver");
-
-    if (xserver_section)
-    {
-        gchar *xserver_command, *xserver_layout, *xserver_config_file;
-
-        g_debug ("Using X server configuration '%s' for display '%s'", xserver_section, SEAT_LOCAL (seat)->priv->config_section ? SEAT_LOCAL (seat)->priv->config_section : "<anonymous>");
-
-        xserver_command = config_get_string (config_get_instance (), xserver_section, "command");
-        if (xserver_command)
-            xserver_set_command (xserver, xserver_command);
-        g_free (xserver_command);
-
-        xserver_layout = config_get_string (config_get_instance (), xserver_section, "layout");
-        if (xserver_layout)
-            xserver_set_layout (xserver, xserver_layout);
-        g_free (xserver_layout);
-
-        xserver_config_file = config_get_string (config_get_instance (), xserver_section, "config-file");
-        if (xserver_config_file)
-            xserver_set_config_file (xserver, xserver_config_file);
-        g_free (xserver_config_file);
-
-        g_free (xserver_section);
-    }
-
+    xserver_command = config_get_string (config_get_instance (), "Defaults", "xserver-command");
+    if (!xserver_command)
+        xserver_command = config_get_string (config_get_instance (), SEAT_LOCAL (seat)->priv->config_section, "xserver-command");
+    if (xserver_command)
+        xserver_set_command (xserver, xserver_command);
+    g_free (xserver_command);
     if (config_get_boolean (config_get_instance (), "LightDM", "use-xephyr"))
         xserver_set_command (xserver, "Xephyr");
 
+    xserver_layout = config_get_string (config_get_instance (), "Defaults", "layout");
+    if (!xserver_layout)
+        xserver_layout = config_get_string (config_get_instance (), SEAT_LOCAL (seat)->priv->config_section, "xserver-layout");
+    if (xserver_layout)
+        xserver_set_layout (xserver, xserver_layout);
+    g_free (xserver_layout);
+
+    xserver_config = config_get_string (config_get_instance (), "Defaults", "xserver-config");
+    if (!xserver_config)
+        xserver_config = config_get_string (config_get_instance (), SEAT_LOCAL (seat)->priv->config_section, "xserver-config");
+    if (xserver_config)
+        xserver_set_config_file (xserver, xserver_config);
+    g_free (xserver_config);
+
     display = display_new (xserver);
     g_object_unref (xserver);
 
index 3aa0d7b14a3ef713f8d6d8839321ecf1a4839df0..287c7386e496d51185849ebddbaf4603f72337f2 100644 (file)
@@ -43,7 +43,8 @@ seat_xdmcp_client_add_display (Seat *seat)
 {
     XServer *xserver;
     XAuthorization *authorization = NULL;
-    gchar *xdmcp_manager, *dir, *filename, *path, *command, *xserver_section = NULL;
+    gchar *xdmcp_manager, *dir, *filename, *path, *command;
+    gchar *xserver_command, *xserver_layout, *xserver_config;
     gint port;
     //gchar *key;
   
@@ -78,7 +79,7 @@ seat_xdmcp_client_add_display (Seat *seat)
     g_object_unref (authorization);
 
     filename = g_strdup_printf ("%s.log", xserver_get_address (xserver));
-    dir = config_get_string (config_get_instance (), "directories", "log-directory");
+    dir = config_get_string (config_get_instance (), "Directories", "log-directory");
     path = g_build_filename (dir, filename, NULL);
     g_debug ("Logging to %s", path);
     child_process_set_log_file (CHILD_PROCESS (xserver), path);
@@ -86,40 +87,31 @@ seat_xdmcp_client_add_display (Seat *seat)
     g_free (dir);
     g_free (path);
 
-    /* Get the X server configuration */
-    if (SEAT_XDMCP_CLIENT (seat)->priv->config_section)
-        xserver_section = config_get_string (config_get_instance (), SEAT_XDMCP_CLIENT (seat)->priv->config_section, "xserver");
-    if (!xserver_section)
-        xserver_section = config_get_string (config_get_instance (), "LightDM", "xserver");
-
-    if (xserver_section)
-    {
-        gchar *xserver_command, *xserver_layout, *xserver_config_file;
-
-        g_debug ("Using X server configuration '%s' for display '%s'", xserver_section, SEAT_XDMCP_CLIENT (seat)->priv->config_section ? SEAT_XDMCP_CLIENT (seat)->priv->config_section : "<anonymous>");
-
-        xserver_command = config_get_string (config_get_instance (), xserver_section, "command");
-        if (xserver_command)
-            xserver_set_command (xserver, xserver_command);
-        g_free (xserver_command);
-
-        xserver_layout = config_get_string (config_get_instance (), xserver_section, "layout");
-        if (xserver_layout)
-            xserver_set_layout (xserver, xserver_layout);
-        g_free (xserver_layout);
-
-        xserver_config_file = config_get_string (config_get_instance (), xserver_section, "config-file");
-        if (xserver_config_file)
-            xserver_set_config_file (xserver, xserver_config_file);
-        g_free (xserver_config_file);
-
-        g_free (xserver_section);
-    }
-
+    xserver_command = config_get_string (config_get_instance (), "Defaults", "xserver-command");
+    if (!xserver_command)
+        xserver_command = config_get_string (config_get_instance (), SEAT_XDMCP_CLIENT (seat)->priv->config_section, "xserver-command");
+    if (xserver_command)
+        xserver_set_command (xserver, xserver_command);
+    g_free (xserver_command);
     if (config_get_boolean (config_get_instance (), "LightDM", "use-xephyr"))
         xserver_set_command (xserver, "Xephyr");
 
+    xserver_layout = config_get_string (config_get_instance (), "Defaults", "layout");
+    if (!xserver_layout)
+        xserver_layout = config_get_string (config_get_instance (), SEAT_XDMCP_CLIENT (seat)->priv->config_section, "xserver-layout");
+    if (xserver_layout)
+        xserver_set_layout (xserver, xserver_layout);
+    g_free (xserver_layout);
+
+    xserver_config = config_get_string (config_get_instance (), "Defaults", "xserver-config");
+    if (!xserver_config)
+        xserver_config = config_get_string (config_get_instance (), SEAT_XDMCP_CLIENT (seat)->priv->config_section, "xserver-config");
+    if (xserver_config)
+        xserver_set_config_file (xserver, xserver_config);
+    g_free (xserver_config);
+
     SEAT_XDMCP_CLIENT (seat)->priv->display = g_object_ref (display_new (xserver));
+    g_object_unref (xserver);
 
     return SEAT_XDMCP_CLIENT (seat)->priv->display;
 }
index 9925f9d65bbbb75bc6a04e4670abc0ac2d701f5c..26c54e95ca7111baf2071d71f2cf40eae6b8ea9a 100644 (file)
@@ -141,7 +141,7 @@ session_start (Session *session, gboolean create_pipe)
         {
             gchar *run_dir, *dir;
 
-            run_dir = config_get_string (config_get_instance (), "directories", "run-directory");          
+            run_dir = config_get_string (config_get_instance (), "Directories", "run-directory");          
             dir = g_build_filename (run_dir, user_get_name (session->priv->user), NULL);
             g_free (run_dir);
 
index f32e532cfc3ecbb57ed351d1f509175f75ba6b70..513a05977c8951cb23a86dd88f568e97ac15c3a9 100644 (file)
@@ -23,7 +23,7 @@ load_theme (const gchar *name, GError **error)
     GKeyFile *theme;
     gboolean result;
 
-    theme_dir = config_get_string (config_get_instance (), "directories", "theme-directory");
+    theme_dir = config_get_string (config_get_instance (), "Directories", "theme-directory");
     path = g_build_filename (theme_dir, name, "index.theme", NULL);
     g_free (theme_dir);
 
@@ -56,7 +56,7 @@ theme_get_command (GKeyFile *theme)
 
     /* FIXME: This is perhaps unsafe - 'engine' could contain a relative path, e.g. "../../../run_something_malicious".
      * Perhaps there should be a check for this or the engines need a file like /usr/share/lightdm/engines/foo.engine */
-    engine_dir = config_get_string (config_get_instance (), "directories", "theme-engine-directory");
+    engine_dir = config_get_string (config_get_instance (), "Directories", "theme-engine-directory");
     command = g_build_filename (engine_dir, engine, NULL);
     g_free (engine_dir);
     g_free (engine);
index 2b40c2b8a1770f8e825ecc258a78e0760386cc2e..9e3473abedbc12167c76188c03cd7757919589d5 100644 (file)
@@ -280,7 +280,7 @@ write_authorization_file (XServer *server)
     if (!server->priv->authorization || server->priv->authorization_file)
         return;
 
-    run_dir = config_get_string (config_get_instance (), "directories", "run-directory");
+    run_dir = config_get_string (config_get_instance (), "Directories", "run-directory");
     dir = g_build_filename (run_dir, "root", NULL);
     g_free (run_dir);
     g_mkdir_with_parents (dir, S_IRWXU);