#
# 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
# 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
}
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];
/* 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);
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);
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);
}
/* 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);
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);
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);
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));
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 ();
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)
{
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;
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);
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);
{
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;
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);
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;
}
{
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);
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);
/* 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);
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);