summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2005-12-20 22:09:37 +0000
committerBrian Cameron <bcameron@src.gnome.org>2005-12-20 22:09:37 +0000
commit2cfd51d25331c7d4cd4413a1d2616c3574ef31c5 (patch)
tree63e7001a4ea95eef6cf69f5f9dc7598ab0220b91
parent2ec3b31cc71cfb46c5a7b992b64c68f9b4a72994 (diff)
downloadgdm-2cfd51d25331c7d4cd4413a1d2616c3574ef31c5.tar.gz
After two months, the redesign of GDM's internal configuration is finally
2005-12-21 Brian Cameron <brian.cameron@sun.com> After two months, the redesign of GDM's internal configuration is finally reaching a close. Now GDM users are instructed to not modify the gdm.conf file directly and instead put any cutomizations in a separate file called gdm.conf-custom (read the comments in both files). gdmsetup now modifies the gdm.conf-custom file. The GDM daemon will now use values in gdm.conf-custom first and the default values in gdm.conf if no value is defined in gdm.conf-custom. Benefits: 1) Now GDM truly supports system-wide and machine-specific config. System wide configuration is when the sysadmin wants to share the main gdm.conf file across multiple systems on a shared file system (possible by building GDM with the --with-configdir option or by running GDM with the --config option). Specific systems can override defaults by modifying the gdm.conf-custom file. 2) Distros can stomp the main gdm.conf file on upgrade knowing that any user changes are stored in a separate file. For best backwards compatibility, distros will need to move the gdm.conf file to gdm.conf-custom if the gdm.conf file exists on the system but the gdm.conf-custom file does not. 3) Making this work required a lot of cleanup in the way GDM manages its configuration files. For example, now config options are managed via access functions, and do not depend on non-static globals being shared across files. The GET_CONFIG and UPDATE_CONFIG commands work better and do not require special tweaking when adding new config options. Vicious-extensions is now only included in a few files that need to know how to access the config files directly. This makes GDM support a popular feature in CDE which works similarly. (config files in /etc/dt/config take precidence over the ones in /usr/dt/config). * daemon/gdmconfig.[ch]: Now supports reading configuration values (including "servers" and "server-foo" sections from gdm.conf-custom and then from gdm.conf if not found in the custom file. Now store translated strings in a separate hash since this improves performance. Fix GET_SERVER_DETAILS so it works better and update config can now update server-foo sections via the "xservers/PARMAETERS" key. * gui/gdmsetup.c: Now only writes to the gdm.conf-custom file and isa smart enough to just delete the key if the value will be the same as in the gdm.conf file. Fixed some core dumping issues caused by my change to make gdmsetup use the new gdmconfig functions for getting configuration data from the server. This work cleaned up the code quite a bit. Removed the "--config" option from gdmsetup since this change makes it edit the configuration of the running GDM daemon instead of a program that edits a particular configuration file. * daemon/gdm.h, doc/C/gdm.xml: Updated docs with info about how configuration works nwo. Now sockets protocol info is the same in both documents. * daemon/gdm.c: Fix GET_SERVER_DETAILS to support "ID" and some cleanup. * gui/Makefile.am, daemon/Makefile.am: Support --with-configdir option which got broken. * config/gdm.conf.in: Updated comments to mention that this file is not to be edited. Cleaned up the file so it is more readible. * config/Makefile.am: Install gdm.conf-custom and move gdm.conf to gdm.conf-custom if it is modified and gdm.conf-custom is not already installed. If it is changed and gdm.conf-custom already exists, move it to gdm.conf.org. * gui/gdmchooser.c, gui/gdmflexiserver.c: Remove unused getting of the configuration file. * gui/gdmconfig.[ch]: Add function to tell config to never_cache, which is needed by gdmsetup. * config/gdm.conf-custom: Added template file.
-rw-r--r--config/Makefile.am14
-rw-r--r--config/gdm.conf-custom53
-rw-r--r--config/gdm.conf.in554
-rw-r--r--daemon/Makefile.am2
-rw-r--r--daemon/gdm.c18
-rw-r--r--daemon/gdm.h401
-rw-r--r--daemon/gdmconfig.c986
-rw-r--r--daemon/gdmconfig.h4
-rw-r--r--daemon/server.c4
-rw-r--r--docs/C/gdm.xml647
-rw-r--r--docs/es/es.po2648
-rw-r--r--docs/es/gdm.xml324
-rw-r--r--gui/Makefile.am4
-rw-r--r--gui/gdmchooser.c8
-rw-r--r--gui/gdmconfig.c43
-rw-r--r--gui/gdmconfig.h1
-rw-r--r--gui/gdmflexiserver.c17
-rw-r--r--gui/gdmsetup.c1010
18 files changed, 3781 insertions, 2957 deletions
diff --git a/config/Makefile.am b/config/Makefile.am
index a080554e..df0fe549 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -13,7 +13,7 @@ postdir = $(sysconfdir)/gdm/PostSession
predir = $(sysconfdir)/gdm/PreSession
postlogindir = $(sysconfdir)/gdm/PostLogin
-noinst_DATA = gdm.conf
+noinst_DATA = gdm.conf gdm.conf-custom
DESKTOP_FILES = default.desktop CDE.desktop gnome.desktop
@@ -51,6 +51,7 @@ uninstall-hook:
$(DESTDIR)$(instsessdir)/default.desktop \
$(DESTDIR)$(instsessdir)/CDE.desktop \
$(DESTDIR)$(gdmconfdir)/gdm.conf \
+ $(DESTDIR)$(gdmconfdir)/gdm.conf-custom \
$(DESTDIR)$(gdmconfdir)/factory-gdm.conf \
$(DESTDIR)$(confdir)/XKeepsCrashing \
$(DESTDIR)$(confdir)/Xsession \
@@ -73,13 +74,20 @@ install-data-hook: gdm.conf Xsession gnome.desktop default.desktop CDE.desktop I
$(mkinstalldirs) $(DESTDIR)$(gdmconfdir); \
chmod 755 $(DESTDIR)$(gdmconfdir); \
fi
- -if cmp -s $(DESTDIR)$(gdmconfdir)/gdm.conf $(DESTDIR)$(gdmconfdir)/factory-gdm.conf > /dev/null 2>&1 ; then \
- cp -f $(DESTDIR)$(gdmconfdir)/gdm.conf $(DESTDIR)$(gdmconfdir)/gdm.conf.orig; \
+ -if ! cmp -s $(DESTDIR)$(gdmconfdir)/gdm.conf $(DESTDIR)$(gdmconfdir)/factory-gdm.conf > /dev/null 2>&1 ; then \
+ if test '!' -f $(DESTDIR)$(gdmconfdir)/gdm.conf-custom; then \
+ cp -f $(DESTDIR)$(gdmconfdir)/gdm.conf $(DESTDIR)$(gdmconfdir)/gdm.conf-custom; \
+ else \
+ cp -f $(DESTDIR)$(gdmconfdir)/gdm.conf $(DESTDIR)$(gdmconfdir)/gdm.conf.org; \
+ fi; \
$(INSTALL_DATA) gdm.conf $(DESTDIR)$(gdmconfdir)/gdm.conf; \
fi
if test '!' -f $(DESTDIR)$(gdmconfdir)/gdm.conf; then \
$(INSTALL_DATA) gdm.conf $(DESTDIR)$(gdmconfdir)/gdm.conf; \
fi
+ if test '!' -f $(DESTDIR)$(gdmconfdir)/gdm.conf-custom; then \
+ $(INSTALL_DATA) gdm.conf-custom $(DESTDIR)$(gdmconfdir)/gdm.conf-custom; \
+ fi
$(INSTALL_DATA) gdm.conf $(DESTDIR)$(gdmconfdir)/factory-gdm.conf
$(INSTALL_SCRIPT) $(srcdir)/XKeepsCrashing $(DESTDIR)$(confdir)/XKeepsCrashing
diff --git a/config/gdm.conf-custom b/config/gdm.conf-custom
new file mode 100644
index 00000000..1d39fda0
--- /dev/null
+++ b/config/gdm.conf-custom
@@ -0,0 +1,53 @@
+# GDM Configuration Customization file.
+#
+# This file is the appropriate place for specifying your customizations to the
+# GDM configuration. If you run gdmsetup, it will automatically edit this
+# file for you and will cause the daemon and any running GDM GUI programs to
+# automatically update with the new configuration. Not all configuration
+# options are supported by gdmsetup, so to modify some values it may be
+# necessary to modify this file directly by hand.
+#
+# To hand-edit this file, simply add or modify the key=value combination in
+# the appropriate section in the template below. Refer to the comments in the
+# gdm.conf file for information about each option. Also refer to the reference
+# documentation.
+#
+# If you hand edit a GDM configuration file, you should run the following
+# command to get the GDM daemon to notice the change. Any running GDM GUI
+# programs will also be notified to update with the new configuration.
+#
+# gdmflexiserver --command="UPDATE_CONFIG <configuration key>"
+#
+# For example, the "Enable" key in the "[debug]" section would be specified by
+# "debug/Enable".
+#
+# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
+# re-read the new configuration settings. You can also restart GDM by sending
+# a HUP or USR1 signal to the daemon. HUP behaves like gdm-restart and causes
+# any user session started by GDM to exit immediately while USR1 behaves like
+# gdm-safe-restart and will wait until all users log out before restarting GDM.
+#
+# For full reference documentation see the gnome help browser under
+# GNOME|System category. You can also find the docs in HTML form on
+# http://www.gnome.org/projects/gdm/
+#
+# NOTE: Lines that begin with "#" are considered comments.
+#
+# Have fun!
+
+[daemon]
+
+[security]
+
+[xdmcp]
+
+[gui]
+
+[greeter]
+
+[chooser]
+
+[debug]
+
+[servers]
+
diff --git a/config/gdm.conf.in b/config/gdm.conf.in
index 378162d1..b7c92ab1 100644
--- a/config/gdm.conf.in
+++ b/config/gdm.conf.in
@@ -1,46 +1,62 @@
-# GDM Configuration file. You can use gdmsetup program to graphically
-# edit this, or you can optionally just edit this file by hand. Note that
-# gdmsetup does not tweak every option here, just the ones most users
-# would care about. Rest is for special setups and distro specific
-# tweaks. If you edit this file, you should send the HUP or USR1 signal to
-# the daemon so that it restarts: (Assuming you have not changed PidFile)
-# kill -USR1 `cat /var/run/gdm.pid`
-# (HUP will make gdm restart immediately while USR1 will make gdm not kill
-# existing sessions and will only restart gdm after all users log out)
+# GDM Configuration file.
#
-# You can also use the gdm-restart and gdm-safe-restart scripts which just
-# do the above for you.
+# You should not update this file by hand. Since GDM 2.13.0.4, configuration
+# choices in the gdm.conf-custom file will override the default values
+# specified in this file. This file may be overwritten on upgrade, so to
+# ensure that your configuration choices are not lost, please make sure that
+# your modifications are only made to the gdm.conf-custom file. If you were
+# using a previous version of GDM and had made changes to your gdm.conf file,
+# this file should have been automatically renamed as gdm.conf-custom to ensure
+# that your previous modifications are preserved.
#
-# For full reference documentation see the gnome help browser under
+# You can use the gdmsetup program to graphically edit the gdm.conf-custom
+# file. Note that gdmsetup does not support every option in this file, just
+# the ones that most users want to change. If you feel that gdmsetup should
+# support additional configuratio options, please file a bug report at
+# http://bugzilla.gnome.org/.
+#
+# If you hand-edit the GDM configuration, you should run the following command
+# to get the GDM daemon to recognize the change. Any running GDM GUI programs
+# will also be notified to update with the new configuration.
+#
+# gdmflexiserver --command="UPDATE_CONFIG <configuration key>"
+#
+# For example, the "Enable" key in the "[debug]" section would be specified by
+# "debug/Enable".
+#
+# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
+# re-read the new configuration settings. You can also restart GDM by sending
+# a HUP or USR1 signal to the daemon. HUP behaves like gdm-restart and causes
+# any user session started by GDM to exit immediately while USR1 behaves like
+# gdm-safe-restart and will wait until all users log out before restarting GDM.
+#
+# For full reference documentation see the GNOME help browser under
# GNOME|System category. You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
-# NOTE: Some of these are commented out but still show their default values.
-# If you wish to change them you must remove the '#' from the beginning of
-# the line. The commented out lines are lines where the default might
-# change in the future, so set them one way or another if you feel
-# strongly about it.
+# NOTE: Some values are commented out but show their default values. Lines
+# that begin with "#" are considered comments.
#
-# Have fun! - George
+# Have fun!
[daemon]
-# Automatic login, if true the first local screen will automatically logged
-# in as user as set with AutomaticLogin key.
+# Automatic login, if true the first local screen will automatically logged in
+# as user as set with AutomaticLogin key.
AutomaticLoginEnable=false
AutomaticLogin=
-# Timed login, useful for kiosks. Log in a certain user after a certain
-# amount of time
+# Timed login, useful for kiosks. Log in a certain user after a certain amount
+# of time.
TimedLoginEnable=false
TimedLogin=
TimedLoginDelay=30
-# The gdm configuration program that is run from the login screen, you should
-# probably leave this alone
+# The GDM configuration program that is run from the login screen, you should
+# probably leave this alone.
#Configurator=@EXPANDED_SBINDIR@/gdmsetup --disable-sound --disable-crash-dialog
# The chooser program. Must output the chosen host on stdout, probably you
-# should leave this alone
+# should leave this alone.
#Chooser=@EXPANDED_LIBEXECDIR@/gdmchooser
# The greeter for local (non-xdmcp) logins. Change gdmlogin to gdmgreeter to
@@ -51,68 +67,68 @@ TimedLoginDelay=30
# greeter here so it's better to leave this with gdmlogin
#RemoteGreeter=@EXPANDED_LIBEXECDIR@/gdmlogin
-# Launch the greeter with an additional list of colon seperated gtk
-# modules. This is useful for enabling additional feature support
-# e.g. gnome accessibility framework. Only "trusted" modules should
-# be allowed to minimise security holes
+# Launch the greeter with an additional list of colon separated GTK+ modules.
+# This is useful for enabling additional feature support e.g. GNOME
+# accessibility framework. Only "trusted" modules should be allowed to minimize
+# security holes
#AddGtkModules=false
-# By default these are the accessibility modules
+# By default, these are the accessibility modules.
#GtkModulesList=gail:atk-bridge:@EXPANDED_LIBDIR@/gtk-2.0/modules/libdwellmouselistener:@EXPANDED_LIBDIR@/gtk-2.0/modules/libkeymouselistener
-# Default path to set. The profile scripts will likely override this
-# value. This value will be overridden with the value from
-# /etc/default/login if it contains "ROOT=<pathvalue>".
+# Default path to set. The profile scripts will likely override this value.
+# This value will be overridden with the value from /etc/default/login if it
+# contains "ROOT=<pathvalue>".
#DefaultPath=@GDM_USER_PATH@
-# Default path for root. The profile scripts will likely override this
-# value. This value will be overridden with the value from
-# /etc/default/login if it contains "SUROOT=<pathvalue>".
+# Default path for root. The profile scripts will likely override this value.
+# This value will be overridden with the value from /etc/default/login if it
+# contains "SUROOT=<pathvalue>".
#RootPath=/sbin:/usr/sbin:@GDM_USER_PATH@
-# If you are having trouble with using a single server for a long time and
-# want gdm to kill/restart the server, turn this on. On Solaris, this
-# value is always true and this configuration setting is ignored.
+# If you are having trouble with using a single server for a long time and want
+# GDM to kill/restart the server, turn this on. On Solaris, this value is
+# always true and this configuration setting is ignored.
#AlwaysRestartServer=false
-# User and group used for running gdm GUI applicaitons. By default this
-# is set to user gdm and group gdm. This user/group should have very
-# limited permissions and access to ony the gdm directories and files.
+# User and group used for running GDM GUI applicaitons. By default this is set
+# to user "gdm" and group "gdm". This user/group should have very limited
+# permissions and access to ony the gdm directories and files.
User=gdm
Group=gdm
# To try to kill all clients started at greeter time or in the Init script.
-# doesn't always work, only if those clients have a window of their own
+# does not always work, only if those clients have a window of their own.
#KillInitClients=true
LogDir=@EXPANDED_LOGDIR@
-# You should probably never change this value unless you have a weird setup
+# You should probably never change this value unless you have a weird setup.
PidFile=/var/run/gdm.pid
-# Note that a post login script is run before a PreSession script.
-# It is run after the login is successful and before any setup is
-# run on behalf of the user
+# Note that a post login script is run before a PreSession script. It is run
+# after the login is successful and before any setup is run on behalf of the
+# user.
PostLoginScriptDir=@EXPANDED_SYSCONFDIR@/gdm/PostLogin/
PreSessionScriptDir=@EXPANDED_SYSCONFDIR@/gdm/PreSession/
PostSessionScriptDir=@EXPANDED_SYSCONFDIR@/gdm/PostSession/
DisplayInitDir=@EXPANDED_SYSCONFDIR@/gdm/Init
-# Distributions: If you have some script that runs an X server in say
-# VGA mode, allowing a login, could you please send it to me?
+# Distributions: If you have some script that runs an X server in say VGA
+# mode, allowing a login, could you please send it to me?
#FailsafeXServer=
# if X keeps crashing on us we run this script. The default one does a bunch
-# of cool stuff to figure out what to tell the user and such and can
-# run an X configuration program.
+# of cool stuff to figure out what to tell the user and such and can run an X
+# configuration program.
XKeepsCrashing=@EXPANDED_SYSCONFDIR@/gdm/XKeepsCrashing
-# Reboot, Halt and suspend commands, you can add different commands
-# separated by a semicolon and gdm will use the first one it can find
+# Reboot, Halt and suspend commands, you can add different commands separated
+# by a semicolon. GDM will use the first one it can find.
#RebootCommand=@REBOOT_COMMAND@
#HaltCommand=@HALT_COMMAND@
#SuspendCommand=@SUSPEND_COMMAND@
-# Probably should not touch the below this is the standard setup
+# Probably should not touch the below this is the standard setup.
ServAuthDir=@EXPANDED_AUTHDIR@
-# This is our standard startup script. A bit different from a normal
-# X session, but it shares a lot of stuff with that. See the provided
-# default for more information.
+# This is our standard startup script. A bit different from a normal X
+# session, but it shares a lot of stuff with that. See the provided default
+# for more information.
BaseXsession=@EXPANDED_SYSCONFDIR@/gdm/Xsession
-# This is a directory where .desktop files describing the sessions live
-# It is really a PATH style variable since 2.4.4.2 to allow actual
-# interoperability with KDM. Note that <sysconfdir>/dm/Sessions is there
-# for backwards compatibility reasons with 2.4.4.x
+# This is a directory where .desktop files describing the sessions live. It is
+# really a PATH style variable since 2.4.4.2 to allow actual interoperability
+# with KDM. Note that <sysconfdir>/dm/Sessions is there for backwards
+# compatibility reasons with 2.4.4.x.
#SessionDesktopDir=/etc/X11/sessions/:@EXPANDED_SYSCONFDIR@/dm/Sessions/:@EXPANDED_DATADIR@/gdm/BuiltInSessions/:@EXPANDED_DATADIR@/xsessions/
# This is the default .desktop session. One of the ones in SessionDesktopDir
#DefaultSession=gnome.desktop
@@ -121,39 +137,40 @@ BaseXsession=@EXPANDED_SYSCONFDIR@/gdm/Xsession
# like /tmp if you don't want the authorizations to be in home directories.
# This is useful if you have NFS mounted home directories. Note that if this
# is the home directory the UserAuthFBDir will still be used in case the home
-# directory is NFS, see security/NeverPlaceCookiesOnNFS to override this behaviour.
+# directory is NFS, see security/NeverPlaceCookiesOnNFS to override this
+# behavior.
UserAuthDir=
-# Fallback if home directory not writable
+# Fallback directory for writing authorization file if user's home directory
+# is not writable.
UserAuthFBDir=/tmp
UserAuthFile=.Xauthority
# The X server to use if we can't figure out what else to run.
StandardXServer=@X_SERVER@
# The maximum number of flexible X servers to run.
#FlexibleXServers=5
-# And after how many minutes should we reap the flexible server if there is
-# no activity and no one logged on. Set to 0 to turn off the reaping.
-# Does not affect Xnest flexiservers.
+# And after how many minutes should we reap the flexible server if there is no
+# activity and no one logged on. Set to 0 to turn off the reaping. Does not
+# affect Xnest flexiservers.
#FlexiReapDelayMinutes=5
-# the X nest command
+# The X nest command.
Xnest=@X_XNEST_PATH@/Xnest @X_XNEST_CONFIG_OPTIONS@
-# Automatic VT allocation. Right now only works on Linux. This way
-# we force X to use specific vts. turn VTAllocation to false if this
-# is causing problems.
+# Automatic VT allocation. Right now only works on Linux. This way we force
+# X to use specific vts. turn VTAllocation to false if this is causing
+# problems.
#FirstVT=7
#VTAllocation=true
-# Should double login be treated with a warning (and possibility to change
-# vts on linux and freebsd systems for console logins)
+# Should double login be treated with a warning (and possibility to change VT's
+# on Linux and FreeBSD systems for console logins)
#DoubleLoginWarning=true
-# Should a second login always resume the current session and
-# switch vts on linux and freebsd systems for console logins
+# Should a second login always resume the current session and switch VT's on
+# Linux and FreeBSD systems for console logins
#AlwaysLoginCurrentSession=true
-# If true then the last login information is printed to the user before
-# being prompted for password. While this gives away some info on what
-# users are on a system, it on the other hand should give the user an
-# idea of when they logged in and if it doesn't seem kosher to them,
-# they can just abort the login and contact the sysadmin (avoids running
-# malicious startup scripts)
+# If true then the last login information is printed to the user before being
+# prompted for password. While this gives away some info on what users are on
+# a system, it on the other hand should give the user an idea of when they
+# logged in and if it doesn't seem kosher to them, they can just abort the
+# login and contact the sysadmin (avoids running malicious startup scripts).
#DisplayLastLogin=false
# Program used to play sounds. Should not require any 'daemon' or anything
@@ -161,32 +178,31 @@ Xnest=@X_XNEST_PATH@/Xnest @X_XNEST_CONFIG_OPTIONS@
#SoundProgram=@SOUND_PROGRAM@
# These are the languages that the console cannot handle because of font
-# issues. Here we mean the text console, not X. This is only used
-# when there are errors to report and we cannot start X.
+# issues. Here we mean the text console, not X. This is only used when there
+# are errors to report and we cannot start X.
# This is the default:
#ConsoleCannotHandle=am,ar,az,bn,el,fa,gu,hi,ja,ko,ml,mr,pa,ta,zh
-# This determines whether gdm will honor requests DYNAMIC requests from
-# the gdmdynamic command.
+# This determines whether GDM will honor requests DYNAMIC requests from the
+# gdmdynamic command.
#DynamicXServers=false
-# This determines whether gdm will send notifications to the console
+# This determines whether GDM will send notifications to the console.
#ConsoleNotify=true
[security]
-# If any distributions ship with this one off, they should be shot
-# this is only local, so it's only for say kiosk use, when you
-# want to minimize possibility of breakin
+# Allow root to login. It makes sense to turn this off for kiosk use, when
+# you want to minimize the possibility of break in.
AllowRoot=true
-# Allow login as root via XDMCP. This value will be overridden and
-# set to false if the /etc/default/login file exists and contains
-# "CONSOLE=/dev/login", and set to true if the /etc/default/login
-# file exists and contains any other value or no value for CONSOLE.
+# Allow login as root via XDMCP. This value will be overridden and set to
+# false if the /etc/default/login file exists and contains
+# "CONSOLE=/dev/login", and set to true if the /etc/default/login file exists
+# and contains any other value or no value for CONSOLE.
AllowRemoteRoot=false
-# This will allow remote timed login
+# This will allow remote timed login.
AllowRemoteAutoLogin=false
# 0 is the most restrictive, 1 allows group write permissions, 2 allows all
-# write permissions
+# write permissions.
RelaxPermissions=0
# Check if directories are owned by logon user. Set to false, if you have, for
# example, home directories owned by some other user.
@@ -196,133 +212,129 @@ CheckDirOwner=true
# Maximum size of a file we wish to read. This makes it hard for a user to DoS
# us by using a large file.
#UserMaxFile=65536
-# If true this will basically append -nolisten tcp to every X command line,
-# a good default to have (why is this a "negative" setting? because if
-# it is false, you could still not allow it by setting command line of
-# any particular server). It's probably better to ship with this on
-# since most users will not need this and it's more of a security risk
-# then anything else.
-# Note: Anytime we find a -query or -indirect on the command line we do
-# not add a "-nolisten tcp", as then the query just wouldn't work, so
-# this setting only affects truly local sessions.
+# If true this will basically append -nolisten tcp to every X command line, a
+# good default to have (why is this a "negative" setting? because if it is
+# false, you could still not allow it by setting command line of any particular
+# server). It's probably better to ship with this on since most users will not
+# need this and it's more of a security risk then anything else.
+# Note: Anytime we find a -query or -indirect on the command line we do not add
+# a "-nolisten tcp", as then the query just wouldn't work, so this setting only
+# affects truly local sessions.
#DisallowTCP=true
-# By default never place cookies if we "detect" NFS. We detect NFS
-# by detecting "root-squashing". It seems bad practice to place
-# cookies on things that go over the network by default and thus we
-# don't do it by default. Sometimes you can however use safe remote
-# filesystems where this is OK and you may want to have the cookie in your
-# home directory.
+# By default never place cookies if we "detect" NFS. We detect NFS by
+# detecting "root-squashing". It seems bad practice to place cookies on things
+# that go over the network by default and thus we do not do it by default.
+# Sometimes you can however use safe remote filesystems where this is OK and
+# you may want to have the cookie in your home directory.
#NeverPlaceCookiesOnNFS=true
-# Will cause PAM_DISALLOW_NULL_AUTHTOK to be passed as a flag to
-# pam_authenticate and pam_acct_mgmt, disallowing NULL password.
-# This setting will only take effect if PAM is being used by GDM.
-# This value will be overridden with the value from /etc/default/login
-# if it contains "PASSREQ=[YES|NO]"
+# Will cause PAM_DISALLOW_NULL_AUTHTOK to be passed as a flag to
+# pam_authenticate and pam_acct_mgmt, disallowing NULL password. This setting
+# will only take effect if PAM is being used by GDM. This value will be
+# overridden with the value from /etc/default/login if it contains
+# "PASSREQ=[YES|NO]"
#PasswordRequired=false
-# XDMCP is the protocol that allows remote login. If you want to log into
-# gdm remotely (I'd never turn this on on open network, use ssh for such
-# remote usage that). You can then run X with -query <thishost> to log in,
-# or -indirect <thishost> to run a chooser. Look for the 'Terminal' server
-# type at the bottom of this config file.
+# XDMCP is the protocol that allows remote login. If you want to log into GDM
+# remotely (I'd never turn this on on open network, use ssh for such remote
+# usage that). You can then run X with -query <thishost> to log in, or
+# -indirect <thishost> to run a chooser. Look for the 'Terminal' server type
+# at the bottom of this config file.
[xdmcp]
-# Distributions: Ship with this off. It is never a safe thing to leave
-# out on the net. Setting up /etc/hosts.allow and /etc/hosts.deny to only
-# allow local access is another alternative but not the safest.
-# Firewalling port 177 is the safest if you wish to have xdmcp on.
-# Read the manual for more notes on the security of XDMCP.
+# Distributions: Ship with this off. It is never a safe thing to leave out on
+# the net. Setting up /etc/hosts.allow and /etc/hosts.deny to only allow local
+# access is another alternative but not the safest. Firewalling port 177 is
+# the safest if you wish to have xdmcp on. Read the manual for more notes on
+# the security of XDMCP.
Enable=false
-# Honour indirect queries, we run a chooser for these, and then redirect
-# the user to the chosen host. Otherwise we just log the user in locally.
+# Honor indirect queries, we run a chooser for these, and then redirect the
+# user to the chosen host. Otherwise we just log the user in locally.
#HonorIndirect=true
-# Maximum pending requests
+# Maximum pending requests.
#MaxPending=4
#MaxPendingIndirect=4
-# Maximum open XDMCP sessions at any point in time
+# Maximum open XDMCP sessions at any point in time.
#MaxSessions=16
-# Maximum wait times
+# Maximum wait times.
#MaxWait=15
#MaxWaitIndirect=15
# How many times can a person log in from a single host. Usually better to
-# keep low to fend off DoS attacks by running many logins from a single
-# host. This is now set at 2 since if the server crashes then gdm doesn't
-# know for some time and wouldn't allow another session.
+# keep low to fend off DoS attacks by running many logins from a single host.
+# This is now set at 2 since if the server crashes then GDM doesn't know for
+# some time and wouldn't allow another session.
#DisplaysPerHost=2
# The number of seconds after which a non-responsive session is logged off.
# Better keep this low.
#PingIntervalSeconds=15
-# The port. 177 is the standard port so better keep it that way
+# The port. 177 is the standard port so better keep it that way.
#Port=177
-# Willing script, none is shipped and by default we'll send
-# hostname system id. But if you supply something here, the
-# output of this script will be sent as status of this host so that
-# the chooser can display it. You could for example send load,
-# or mail details for some user, or some such.
+# Willing script, none is shipped and by default we'll send hostname system id.
+# But if you supply something here, the output of this script will be sent as
+# status of this host so that the chooser can display it. You could for
+# example send load, or mail details for some user, or some such.
#Willing=@EXPANDED_SYSCONFDIR@/gdm/Xwilling
[gui]
-# The specific gtkrc file we use. It should be the full path to the gtkrc
-# that we need. Unless you need a specific gtkrc that doesn't correspond to
-# a specific theme, then just use the GtkTheme key
+# The specific gtkrc file we use. It should be the full path to the gtkrc that
+# we need. Unless you need a specific gtkrc that doesn't correspond to a
+# specific theme, then just use the GtkTheme key.
#GtkRC=@EXPANDED_DATADIR@/themes/Default/gtk-2.0/gtkrc
-# The GTK+ theme to use for the gui
+# The GTK+ theme to use for the GUI.
#GtkTheme=Default
# If to allow changing the GTK+ (widget) theme from the greeter. Currently
-# this only affects the standard greeter as the graphical greeter does
-# not yet have this ability
+# this only affects the standard greeter as the graphical greeter does not yet
+# have this ability.
#AllowGtkThemeChange=true
# Comma separated list of themes to allow. These must be the names of the
-# themes installed in the standard locations for gtk themes. You can
-# also specify 'all' to allow all installed themes. These should be just
-# the basenames of the themes such as 'Thinice' or 'LowContrast'.
+# themes installed in the standard locations for gtk themes. You can also
+# specify 'all' to allow all installed themes. These should be just the
+# basenames of the themes such as 'Thinice' or 'LowContrast'.
#GtkThemesToAllow=all
-# Maximum size of an icon, larger icons are scaled down
+# Maximum size of an icon, larger icons are scaled down.
#MaxIconWidth=128
#MaxIconHeight=128
[greeter]
-# Greeter has a nice title bar that the user can move
+# Greeter has a nice title bar that the user can move.
#TitleBar=true
-# Configuration is available from the system menu of the greeter
+# Configuration is available from the system menu of the greeter.
#ConfigAvailable=false
-# Face browser is enabled. This only works currently for the
-# standard greeter as it is not yet enabled in the graphical greeter.
+# Face browser is enabled. This only works currently for the standard greeter
+# as it is not yet enabled in the graphical greeter.
Browser=false
-# The default picture in the browser
+# The default picture in the browser.
#DefaultFace=@EXPANDED_PIXMAPDIR@/nobody.png
-# User ID's less than the MinimalUID value will not be included in the
-# face browser or in the gdmselection list for Automatic/Timed login.
-# They will not be displayed regardless of the settings for
-# Include and Exclude.
+# User ID's less than the MinimalUID value will not be included in the face
+# browser or in the gdmselection list for Automatic/Timed login. They will not
+# be displayed regardless of the settings for Include and Exclude.
#MinimalUID=100
-# Users listed in Include will be included in the face browser and in
-# the gdmsetup selection list for Automatic/Timed login. Users
-# should be separated by commas.
+# Users listed in Include will be included in the face browser and in the
+# gdmsetup selection list for Automatic/Timed login. Users should be separated
+# by commas.
#Include=
-# Users listed in Exclude are excluded from the face browser and from
-# the gdmsetup selection list for Automatic/Timed login. Excluded
-# users will still be able to log in, but will have to type their
-# username. Users should be separated by commas.
+# Users listed in Exclude are excluded from the face browser and from the
+# gdmsetup selection list for Automatic/Timed login. Excluded users will still
+# be able to log in, but will have to type their username. Users should be
+# separated by commas.
#Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,gdm,postgres,pvm,rpm,nfsnobody,pcap
# By default, an empty include list means display no users. By setting
-# IncludeAll to true, the password file will be scanned and all users
-# will be displayed except users excluded via the Exclude setting and
-# user ID's less than MinimalUID. Scanning the password file can be
-# slow on systems with large numbers of users and this feature should
-# not be used in such environments. The setting of IncludeAll does
-# nothing if Include is set to a non-empty value.
+# IncludeAll to true, the password file will be scanned and all users will be
+# displayed except users excluded via the Exclude setting and user ID's less
+# than MinimalUID. Scanning the password file can be slow on systems with
+# large numbers of users and this feature should not be used in such
+# environments. The setting of IncludeAll does nothing if Include is set to a
+# non-empty value.
#IncludeAll=false
-# If user or user.png exists in this dir it will be used as his picture
+# If user or user.png exists in this dir it will be used as his picture.
#GlobalFaceDir=@EXPANDED_DATADIR@/pixmaps/faces/
# File which contains the locale we show to the user. Likely you want to use
-# the one shipped with gdm and edit it. It is not a standard locale.alias file,
-# although gdm will be able to read a standard locale.alias file as well.
+# the one shipped with GDM and edit it. It is not a standard locale.alias
+# file, although GDM will be able to read a standard locale.alias file as well.
#LocaleFile=@EXPANDED_LOCALEDIR@/locale.alias
-# Logo shown in the standard greeter
+# Logo shown in the standard greeter.
#Logo=@EXPANDED_PIXMAPDIR@/gdm-foot-logo.png
-# Logo shown on file chooser button in gdmsetup. (Do not modify.)
+# Logo shown on file chooser button in gdmsetup (do not modify this value).
#ChooserButtonLogo=@EXPANDED_PIXMAPDIR@/gdm-foot-logo.png
# The standard greeter should shake if a user entered the wrong username or
# password. Kind of cool looking
@@ -330,39 +342,39 @@ Browser=false
# The Actions menu (formerly system menu) is shown in the greeter, this is the
# menu that contains reboot, shutdown, suspend, config and chooser. None of
# these is available if this is off. They can be turned off individually
-# however
+# however.
#SystemMenu=true
# Should the chooser button be shown. If this is shown, GDM can drop into
-# chooser mode which will run the xdmcp chooser locally and allow the user
-# to connect to some remote host. Local XDMCP does not need to be enabled
-# however
+# chooser mode which will run the xdmcp chooser locally and allow the user to
+# connect to some remote host. Local XDMCP does not need to be enabled,
+# however.
#ChooserButton=true
# Welcome is for all console logins and RemoteWelcome is for remote logins
# (through XDMCP).
-# DefaultWelcome and DefaultRemoteWelcome set the string for Welcome
-# to "Welcome" and for DefaultWelcome to "Welcome to %n", and properly
-# translate the message to the appropriate language. Note that %n gets
-# translated to the hostname of the machine. These default values can
-# be overridden by setting DefaultWelcome and/or DefaultRemoteWelcome to
-# false, and setting the Welcome and DefaultWelcome values as desired.
-# Just make sure the strings are in utf-8 Note to distributors, if you
-# wish to have a different Welcome string and wish to have this
-# translated you can have entries such as "Welcome[cs]=Vitejte na %n".
+# DefaultWelcome and DefaultRemoteWelcome set the string for Welcome to
+# "Welcome" and for DefaultWelcome to "Welcome to %n", and properly translate
+# the message to the appropriate language. Note that %n gets translated to the
+# hostname of the machine. These default values can be overridden by setting
+# DefaultWelcome and/or DefaultRemoteWelcome to false, and setting the Welcome
+# and DefaultWelcome values as desired. Just make sure the strings are in
+# utf-8 Note to distributors, if you wish to have a different Welcome string
+# and wish to have this translated you can have entries such as
+# "Welcome[cs]=Vitejte na %n".
DefaultWelcome=true
DefaultRemoteWelcome=true
#Welcome=Welcome
#RemoteWelcome=Welcome to %n
-# Don't allow user to move the standard greeter window. Only makes sense
-# if TitleBar is on
+# Don't allow user to move the standard greeter window. Only makes sense if
+# TitleBar is on.
#LockPosition=false
-# Set a position rather then just centering the window. If you enter
-# negative values for the position it is taken as an offset from the
-# right or bottom edge.
+# Set a position rather then just centering the window. If you enter negative
+# values for the position it is taken as an offset from the right or bottom
+# edge.
#SetPosition=false
#PositionX=0
#PositionY=0
-# Xinerama screen we use to display the greeter on. Not for true
-# multihead, currently only works for Xinerama.
+# Xinerama screen we use to display the greeter on. Not for true multihead,
+# currently only works for Xinerama.
#XineramaScreen=0
# Background settings for the standard greeter:
# Type can be 0=None, 1=Image & Color, 2=Color, 3=Image
@@ -370,14 +382,14 @@ DefaultRemoteWelcome=true
#BackgroundImage=
#BackgroundScaleToFit=true
#BackgroundColor=#76848F
-# XDMCP session should only get a color, this is the sanest setting since
-# you don't want to take up too much bandwidth
+# XDMCP session should only get a color, this is the sanest setting since you
+# don't want to take up too much bandwidth
#BackgroundRemoteOnlyColor=true
# Program to run to draw the background in the standard greeter. Perhaps
# something like an xscreensaver hack or some such.
#BackgroundProgram=
-# if this is true then the background program is run always, otherwise
-# it is only run when the BackgroundType is 0 (None)
+# if this is true then the background program is run always, otherwise it is
+# only run when the BackgroundType is 0 (None).
#RunBackgroundProgramAlways=false
# Show the Failsafe sessions. These are much MUCH nicer (focus for xterm for
# example) and more failsafe then those supplied by scripts so distros should
@@ -385,22 +397,22 @@ DefaultRemoteWelcome=true
#ShowGnomeFailsafeSession=true
#ShowXtermFailsafeSession=true
# Normally there is a session type called 'Last' that is shown which refers to
-# the last session the user used. If off, we will be in 'switchdesk' mode where
-# the session saving stuff is disabled in GDM
+# the last session the user used. If off, we will be in 'switchdesk' mode
+# where the session saving stuff is disabled in GDM
#ShowLastSession=true
# Always use 24 hour clock no matter what the locale.
#Use24Clock=false
-# Use circles in the password field. Looks kind of cool actually,
-# but only works with certain fonts.
+# Use circles in the password field. Looks kind of cool actually, but only
+# works with certain fonts.
#UseCirclesInEntry=false
-# Do not show any visible feedback in the password field. This is standard
-# for instance in console, xdm and ssh.
+# Do not show any visible feedback in the password field. This is standard for
+# instance in console, xdm and ssh.
#UseInvisibleInEntry=false
-# These two keys are for the new greeter. Circles is the standard
-# shipped theme. If you want gdm to select a random theme from a list
-# then provide a list that is delimited by /: to the GraphicalThemes key and
-# set GraphicalThemeRand to true. Otherwise use GraphicalTheme and specify
-# just one theme.
+# These two keys are for the new greeter. Circles is the standard shipped
+# theme. If you want GDM to select a random theme from a list then provide a
+# list that is delimited by /: to the GraphicalThemes key and set
+# GraphicalThemeRand to true. Otherwise use GraphicalTheme and specify just
+# one theme.
#GraphicalTheme=circles
#GraphicalThemes=circles/:happygnome
GraphicalThemeDir=@EXPANDED_DATADIR@/gdm/themes/
@@ -409,79 +421,77 @@ GraphicalThemedColor=#76848F
# If InfoMsgFile points to a file, the greeter will display the contents of the
# file in a modal dialog box before the user is allowed to log in.
#InfoMsgFile=
-# If InfoMsgFile is present then InfoMsgFont can be used to specify the font
-# to be used when displaying the contents of the file.
+# If InfoMsgFile is present then InfoMsgFont can be used to specify the font to
+# be used when displaying the contents of the file.
#InfoMsgFont=Sans 24
-# If SoundOnLogin is true, then the greeter will beep when login is ready
-# for user input. If SoundOnLogin is a file and the greeter finds the
-# 'play' executable (see daemon/SoundProgram) it will play that file
-# instead of just beeping
+# If SoundOnLogin is true, then the greeter will beep when login is ready for
+# user input. If SoundOnLogin is a file and the greeter finds the 'play'
+# executable (see daemon/SoundProgram) it will play that file instead of just
+# beeping.
#SoundOnLogin=true
#SoundOnLoginFile=
-# If SoundOnLoginSuccess, then the greeter will play a sound (as above)
-# when a user successfully logs in
+# If SoundOnLoginSuccess, then the greeter will play a sound (as above) when a
+# user successfully logs in.
#SoundOnLoginSuccess=false
#SoundOnLoginSuccessFile=
-# If SoundOnLoginFailure, then the greeter will play a sound (as above)
-# when a user fails to log in
+# If SoundOnLoginFailure, then the greeter will play a sound (as above) when a
+# user fails to log in.
#SoundOnLoginFailure=false
#SoundOnLoginFailureFile=
-# The chooser is what's displayed when a user wants an indirect XDMCP
-# session, or selects Run XDMCP chooser from the system menu
+# The chooser is what's displayed when a user wants an indirect XDMCP session,
+# or selects Run XDMCP chooser from the system menu
[chooser]
-# Default image for hosts
+# Default image for hosts.
#DefaultHostImg=@EXPANDED_PIXMAPDIR@/nohost.png
-# Directory with host images, they are named by the hosts: host or host.png
+# Directory with host images, they are named by the hosts: host or host.png.
HostImageDir=@EXPANDED_DATADIR@/hosts/
-# Time we scan for hosts (well only the time we tell the user we are
-# scanning actually, we continue to listen even after this has
-# expired)
+# Time we scan for hosts (well only the time we tell the user we are scanning
+# actually, we continue to listen even after this has expired).
#ScanTime=4
-# A comma separated lists of hosts to automatically add (if they answer to
-# a query of course). You can use this to reach hosts that broadcast cannot
+# A comma separated lists of hosts to automatically add (if they answer to a
+# query of course). You can use this to reach hosts that broadcast cannot
# reach.
Hosts=
-# Broadcast a query to get all hosts on the current network that answer
+# Broadcast a query to get all hosts on the current network that answer.
Broadcast=true
# Set it to true if you want to send a multicast query to hosts.
Multicast=false
-# It is an IPv6 multicast address.It is hardcoded here and will be replaced when
-# officially registered xdmcp multicast address of TBD will be available
+# It is an IPv6 multicast address.It is hardcoded here and will be replaced
+# when officially registered xdmcp multicast address of TBD will be available.
#Multicast_Addr=ff02::1
-# Allow adding random hosts to the list by typing in their names
+# Allow adding random hosts to the list by typing in their names.
#AllowAdd=true
[debug]
-# This will enable debugging into the syslog, usually not neccessary
-# and it creates a LOT of spew of random stuff to the syslog. However it
-# can be useful in determining when something is going very wrong.
+# This will enable debugging into the syslog, usually not necessary and it
+# creates a LOT of spew of random stuff to the syslog. However it can be
+# useful in determining when something is going very wrong.
Enable=false
-# This will enable debug messages for accessibilty gesture listeners
-# into the syslog. This includes output about key events, mouse
-# button events, and pointer motion events. This is useful for
-# figuring out the cause of why the gesture listeners may not be
-# working, but is too verbose for general debug.
+# This will enable debug messages for accessibilty gesture listeners into the
+# syslog. This includes output about key events, mouse button events, and
+# pointer motion events. This is useful for figuring out the cause of why the
+# gesture listeners may not be working, but is too verbose for general debug.
Gestures=false
[servers]
-# These are the standard servers. You can add as many you want here
-# and they will always be started. Each line must start with a unique
-# number and that will be the display number of that server. Usually just
-# the 0 server is used.
+# These are the standard servers. You can add as many you want here and they
+# will always be started. Each line must start with a unique number and that
+# will be the display number of that server. Usually just the 0 server is
+# used.
0=Standard
#1=Standard
-# Note the VTAllocation and FirstVT keys on linux and freebsd.
-# Don't add any vt<number> arguments if VTAllocation is on, and set FirstVT to
-# be the first vt available that your gettys don't grab (gettys are usually
-# dumb and grab even a vt that has already been taken). Using 7 will work
-# pretty much for all linux distributions. VTAllocation is not currently
-# implemented on anything but linux and freebsd. Feel free to send patches.
-# X servers will just not get any extra arguments then.
+# Note the VTAllocation and FirstVT keys on Linux and FreeBSD. Don't add any
+# vt<number> arguments if VTAllocation is on, and set FirstVT to be the first
+# vt available that your gettys don't grab (gettys are usually dumb and grab
+# even a vt that has already been taken). Using 7 will work pretty much for
+# all Linux distributions. VTAllocation is not currently implemented on
+# anything but Linux and FreeBSD. Feel free to send patches. X servers will
+# just not get any extra arguments then.
#
-# If you want to run an X terminal you could add an X server such as this
+# If you want to run an X terminal you could add an X server such as this:
#0=Terminal -query serverhostname
-# or for a chooser (optionally serverhostname could be localhost)
+# or for a chooser (optionally serverhostname could be localhost):
#0=Terminal -indirect serverhostname
#
# If you wish to run the XDMCP chooser on the local display use the following
@@ -489,8 +499,8 @@ Gestures=false
#0=Chooser
## Note:
-# is your X server not listening to TCP requests? Perhaps you should look
-# at the security/DisallowTCP setting!
+# is your X server not listening to TCP requests? Perhaps you should look at
+# the security/DisallowTCP setting!
# Definition of the standard X server.
[server-Standard]
@@ -498,32 +508,30 @@ name=Standard server
command=@X_SERVER@ @X_CONFIG_OPTIONS@ @XEVIE_OPTION@
flexible=true
-# To use this server type you should add -query host or -indirect host
-# to the command line
+# To use this server type you should add -query host or -indirect host to the
+# command line.
[server-Terminal]
name=Terminal server
# Add -terminate to make things behave more nicely
command=@X_SERVER@ @X_CONFIG_OPTIONS@ -terminate
-# Make this not appear in the flexible servers (we need extra params
-# anyway, and terminate would be bad for xdmcp choosing). You can
-# make a terminal server flexible, but not with an indirect query.
-# If you need flexible indirect query server, then you must get rid
-# of the -terminate and the only way to kill the flexible server will
-# then be by Ctrl-Alt-Backspace
+# Make this not appear in the flexible servers (we need extra params anyway,
+# and terminate would be bad for xdmcp choosing). You can make a terminal
+# server flexible, but not with an indirect query. If you need flexible
+# indirect query server, then you must get rid of the -terminate and the only
+# way to kill the flexible server will then be by Ctrl-Alt-Backspace.
flexible=false
-# Not local, we do not handle the logins for this X server
+# Not local, we do not handle the logins for this X server.
handled=false
-# To use this server type you should add -query host or -indirect host
-# to the command line
+# To use this server type you should add -query host or -indirect host to the
+# command line.
[server-Chooser]
name=Chooser server
command=@X_SERVER@ @X_CONFIG_OPTIONS@
-# Make this not appear in the flexible servers for now, but if you
-# wish to allow a chooser server then make this true. This is the
-# only way to make a flexible chooser server that behaves nicely.
+# Make this not appear in the flexible servers for now, but if you wish to
+# allow a chooser server then make this true. This is the only way to make a
+# flexible chooser server that behaves nicely.
flexible=false
-# Run the chooser instead of the greeter. When the user chooses a
-# machine they will get this same server but run with
-# "-terminate -query hostname"
+# Run the chooser instead of the greeter. When the user chooses a machine they
+# will get this same server but run with "-terminate -query hostname".
chooser=true
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 0c35a452..e21407e1 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -1,5 +1,5 @@
## Process this file with automake to produce makefile.in
-DEFS = @DEFS@ -DGDM_SYSCONFDIR_CONFIG_FILE=\"@sysconfdir@/gdm/gdm.conf\" -DGDM_INSTALL_CONFIG_FILE=\"$(GDM_CONFIGDIR)/gdm.conf\"
+DEFS = @DEFS@ -DGDM_SYSCONFDIR_CONFIG_FILE=\"$(GDM_CONFIGDIR)/gdm.conf\"
# Note that we have cflags for just about everything even if
# we don't link to everything
diff --git a/daemon/gdm.c b/daemon/gdm.c
index 44e9c96c..80583ba2 100644
--- a/daemon/gdm.c
+++ b/daemon/gdm.c
@@ -2889,7 +2889,7 @@ gdm_handle_user_message (GdmConnection *conn, const char *msg, gpointer data)
name = g_strdup (GDM_STANDARD);
}
- svr = gdm_find_x_server (name);
+ svr = gdm_find_xserver (name);
if G_UNLIKELY (svr == NULL) {
/* Don't print the name to syslog as it might be
* long and dangerous */
@@ -3006,7 +3006,7 @@ gdm_handle_user_message (GdmConnection *conn, const char *msg, gpointer data)
gdm_connection_write (conn, msg->str);
g_string_free (msg, TRUE);
} else if (strcmp (msg, GDM_SUP_GET_SERVER_LIST) == 0) {
- gchar *retval = gdm_get_x_servers ();
+ gchar *retval = gdm_get_xservers ();
if (retval != NULL) {
gdm_connection_printf (conn, "OK %s\n", retval);
@@ -3019,10 +3019,12 @@ gdm_handle_user_message (GdmConnection *conn, const char *msg, gpointer data)
strlen (GDM_SUP_GET_SERVER_DETAILS " ")) == 0) {
const char *server = &msg[strlen (GDM_SUP_GET_SERVER_DETAILS " ")];
gchar **splitstr = g_strsplit (server, " ", 2);
- GdmXserver *svr = gdm_find_x_server ((char *)splitstr[0]);
+ GdmXserver *svr = gdm_find_xserver ((char *)splitstr[0]);
if (svr != NULL) {
- if (g_strncasecmp (splitstr[1], "NAME", 4) == 0)
+ if (g_strncasecmp (splitstr[1], "ID", 4) == 0)
+ gdm_connection_printf (conn, "OK %s\n", svr->id);
+ else if (g_strncasecmp (splitstr[1], "NAME", 4) == 0)
gdm_connection_printf (conn, "OK %s\n", svr->name);
else if (g_strncasecmp (splitstr[1], "COMMAND", 7) == 0)
gdm_connection_printf (conn, "OK %s\n", svr->command);
@@ -3031,25 +3033,25 @@ gdm_handle_user_message (GdmConnection *conn, const char *msg, gpointer data)
gdm_connection_printf (conn, "OK true\n");
else if (g_strncasecmp (splitstr[1], "FLEXIBLE", 8) == 0 &&
!svr->flexible)
- gdm_connection_printf (conn, "OK FALSE\n");
+ gdm_connection_printf (conn, "OK false\n");
else if (g_strncasecmp (splitstr[1], "CHOOSABLE", 9) == 0 &&
svr->choosable)
gdm_connection_printf (conn, "OK true\n");
else if (g_strncasecmp (splitstr[1], "CHOOSABLE", 9) == 0 &&
!svr->choosable)
- gdm_connection_printf (conn, "OK FALSE\n");
+ gdm_connection_printf (conn, "OK false\n");
else if (g_strncasecmp (splitstr[1], "HANDLED", 7) == 0 &&
svr->handled)
gdm_connection_printf (conn, "OK true\n");
else if (g_strncasecmp (splitstr[1], "HANDLED", 7) == 0 &&
!svr->handled)
- gdm_connection_printf (conn, "OK FALSE\n");
+ gdm_connection_printf (conn, "OK false\n");
else if (g_strncasecmp (splitstr[1], "CHOOSER", 7) == 0 &&
svr->chooser)
gdm_connection_printf (conn, "OK true\n");
else if (g_strncasecmp (splitstr[1], "CHOOSER", 7) == 0 &&
!svr->chooser)
- gdm_connection_printf (conn, "OK FALSE\n");
+ gdm_connection_printf (conn, "OK false\n");
else
gdm_connection_printf (conn, "ERROR 2 Key not valid\n");
diff --git a/daemon/gdm.h b/daemon/gdm.h
index 9a319252..013d1f91 100644
--- a/daemon/gdm.h
+++ b/daemon/gdm.h
@@ -33,7 +33,7 @@
#define BEL 0x7 /* Bell, used to interrupt login for
* say timed login or something similar */
-#define TYPE_STATIC 1 /* X server defined in gdm.conf */
+#define TYPE_STATIC 1 /* X server defined in GDM configuration */
#define TYPE_XDMCP 2 /* Remote display/Xserver */
#define TYPE_FLEXI 3 /* Local Flexi X server */
#define TYPE_FLEXI_XNEST 4 /* Local Flexi Xnest server */
@@ -137,10 +137,10 @@ enum {
#define PIPE_SIZE 4096
/*
- * The following section contains keys used by the gdm.conf configuration file.
- * The key/value pairs defined in the %{sysconfdir}/gdm/gdm.conf file is
- * considered a "stable" interface and should only change in ways that are
- * backwards compatible.
+ * The following section contains keys used by the GDM configuration files.
+ * The key/value pairs defined in the GDM configuration files are considered
+ * "stable" interface and should only change in ways that are backwards
+ * compatible.
*
* Developers who add new configuration options should ensure that they do the
* following:
@@ -318,17 +318,21 @@ enum {
* For backwards compatibility, do not set values for DEFAULT_WELCOME or
* DEFAULT_REMOTEWELCOME. This will cause these values to always be
* read from the config file, and will cause them to return FALSE if
- * no value is set in the config file. If Welcome or RemoteWelcome are
- * not set in the config file, then GDM will set them back to the default
- * value. Note the reason we don't specify the default value in the
- * config file anymore is because it is easier to maintain the l10n
- * strings when the string is compiled into the source code instaed of
- * supplied in the configuration file.
+ * no value is set in the config file. We want the value "FALSE" if
+ * the values don't exist in the config file. The daemon will compare
+ * the Welcome/RemoveWelcome value with the default string and
+ * automatically translate the text if the string is the same as the
+ * default string. We set the default values of GDM_KEY_WELCOME and
+ * GDM_KEY_REMOTEWELCOME so that the default value is returned when
+ * you run GET_CONFIG on these keys.
*/
-#define GDM_KEY_DEFAULT_WELCOME "greeter/DefaultWelcome="
-#define GDM_KEY_DEFAULT_REMOTE_WELCOME "greeter/DefaultRemoteWelcome="
-#define GDM_KEY_WELCOME "greeter/Welcome="
-#define GDM_KEY_REMOTE_WELCOME "greeter/RemoteWelcome="
+#define GDM_DEFAULT_WELCOME_MSG "Welcome"
+#define GDM_DEFAULT_REMOTE_WELCOME_MSG "Welcome to %n"
+
+#define GDM_KEY_DEFAULT_WELCOME "greeter/DefaultWelcome="
+#define GDM_KEY_DEFAULT_REMOTE_WELCOME "greeter/DefaultRemoteWelcome="
+#define GDM_KEY_WELCOME "greeter/Welcome=" GDM_DEFAULT_WELCOME_MSG
+#define GDM_KEY_REMOTE_WELCOME "greeter/RemoteWelcome=" GDM_DEFAULT_REMOTE_WELCOME_MSG
#define GDM_KEY_XINERAMA_SCREEN "greeter/XineramaScreen=0"
#define GDM_KEY_BACKGROUND_PROGRAM "greeter/BackgroundProgram="
#define GDM_KEY_RUN_BACKGROUND_PROGRAM_ALWAYS "greeter/RunBackgroundProgramAlways=false"
@@ -393,9 +397,6 @@ enum {
#define GDM_STANDARD "Standard"
-#define GDM_DEFAULT_WELCOME_MSG "Welcome"
-#define GDM_DEFAULT_REMOTE_WELCOME_MSG "Welcome to %n"
-
#define GDM_RESPONSE_CANCEL "GDM_RESPONSE_CANCEL"
#ifndef TYPEDEF_GDM_CONNECTION
@@ -734,9 +735,9 @@ void gdm_final_cleanup (void);
/* The user protocol, using /tmp/.gdm_socket */
#define GDM_SUP_VERSION "VERSION" /* no arguments */
-/* VERSION: Query version
+/* VERSION: Query GDM version
* Supported since: 2.2.4.0
- * Arguments: None
+ * Arguments: None
* Answers:
* GDM <gdm version>
* ERROR <err number> <english error description>
@@ -750,13 +751,15 @@ void gdm_final_cleanup (void);
* only users logged in from gdm. They must pass the xauth
* MIT-MAGIC-COOKIE-1 that they were passed before the
* connection is authenticated.
- * Note that since 2.6.0.6 you can also use a global
+ * Note: The AUTH LOCAL command requires the --authenticate option,
+ * although only FLEXI XSERVER uses this currently.
+ * Note: Since 2.6.0.6 you can also use a global
* <ServAuthDir>/.cookie, which works for all authentication
* except for SET_LOGOUT_ACTION and QUERY_LOGOUT_ACTION
* and SET_SAFE_LOGOUT_ACTION which require a logged in
- * display
+ * display.
* Supported since: 2.2.4.0
- * Arguments: <xauth cookie>
+ * Arguments: <xauth cookie>
* <xauth cookie> is in hex form with no 0x prefix
* Answers:
* OK
@@ -767,10 +770,10 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_FLEXI_XSERVER "FLEXI_XSERVER" /* <xserver type> */
-/* FLEXI_XSERVER: Start a new X flexible server
- * Only supported on connection that passed AUTH_LOCAL
+/* FLEXI_XSERVER: Start a new X flexible server. Only supported on
+ * connection that passed AUTH_LOCAL
* Supported since: 2.2.4.0
- * Arguments: <xserver type>
+ * Arguments: <xserver type>
* If no arguments, starts the standard x server
* Answers:
* OK <display>
@@ -786,20 +789,26 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_FLEXI_XNEST "FLEXI_XNEST" /* <display> <uid> <xauth cookie> <xauth file> */
-/* FLEXI_XNEXT: Start a new flexible Xnest server
+/* FLEXI_XNEXT: Start a new flexible Xnest server.
+ * Note: Supported on older versions from 2.2.4.0, later
+ * 2.2.4.2, but since 2.3.90.4 you must supply 4
+ * arguments or ERROR 100 will be returned. This
+ * will start Xnest using the XAUTHORITY file
+ * supplied and as the uid same as the owner of
+ * that file (and same as you supply). You must
+ * also supply the cookie as the third argument
+ * for this display, to prove that you indeed are
+ * this user. Also this file must be readable
+ * ONLY by this user, that is have a mode of 0600.
+ * If this all is not met, ERROR 100 is returned.
+ * Note: The cookie should be the MIT-MAGIC-COOKIE-1,
+ * the first one gdm can find in the XAUTHORITY
+ * file for this display. If that's not what you
+ * use you should generate one first. The cookie
+ * should be in hex form.
* Supported since: 2.3.90.4
- * Note: supported an older version from 2.2.4.0, later 2.2.4.2, but
- * since 2.3.90.4 you must supply 4 arguments or ERROR 100 will be returned.
- * This will start Xnest using the XAUTHORITY file supplied and as the
- * uid same as the owner of that file (and same as you supply). You must
- * also supply the cookie as the third argument for this
- * display, to prove that you indeed are this user. Also this file must be
- * readable ONLY by this user, that is have a mode of 0600. If this all is
- * not met, ERROR 100 is returned.
- * Note: The cookie should be the MIT-MAGIC-COOKIE-1, the first one gdm
- * can find in the XAUTHORITY file for this display. If that's not what you
- * use you should generate one first. The cookie should be in hex form.
- * Arguments: <display to run on> <uid of requesting user> <xauth cookie for the display> <xauth file>
+ * Arguments: <display to run on> <uid of requesting user>
+ * <xauth cookie for the display> <xauth file>
* Answers:
* OK <display>
* ERROR <err number> <english error description>
@@ -814,16 +823,64 @@ void gdm_final_cleanup (void);
* 200 = Too many messages
* 999 = Unknown error
*/
+#define GDM_SUP_ADD_DYNAMIC_DISPLAY "ADD_DYNAMIC_DISPLAY"
+/*
+ * ADD_DYNAMIC_DISPLAY: Create a new server definition that will
+ * run on the specified display leaving, it
+ * in DISPLAY_CONFIG state.
+ * Supported since: 2.8.0.0
+ * Arguments: <display to run on>=<server>
+ * Where <server> is either a configuration named in the
+ * GDM configuration a literal command name.
+ * Answers:
+ * OK
+ * ERROR
+ * 0 = Not implemented
+ * 2 = Existing display
+ * 3 = No server string
+ * 4 = Display startup failure
+ * 100 = Not authenticated
+ * 200 - Dynamic Displays not allowed
+ * 999 = Unknown error
+ */
+#define GDM_SUP_RELEASE_DYNAMIC_DISPLAYS "RELEASE_DYNAMIC_DISPLAYS"
+/*
+ * RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in
+ * DISPLAY_CONFIG state
+ * Supported since: 2.8.0.0
+ * Arguments: None
+ * Answers:
+ * OK
+ * ERROR
+ * 0 = Not implemented
+ * 100 = Not authenticated
+ * 200 = Dynamic Displays not allowed
+ * 999 = Unknown error
+ */
+#define GDM_SUP_REMOVE_DYNAMIC_DISPLAY "REMOVE_DYNAMIC_DISPLAY"
+/*
+ * REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server
+ * and purging the display configuration
+ * Supported since: 2.8.0.0
+ * Arguments: <display to remove>
+ * Answers:
+ * OK
+ * ERROR
+ * 0 = Not implemented
+ * 100 = Not authenticated
+ * 200 = Dynamic Displays not allowed
+ * 999 = Unknown error
+ */
#define GDM_SUP_ATTACHED_SERVERS "ATTACHED_SERVERS" /* None */
#define GDM_SUP_CONSOLE_SERVERS "CONSOLE_SERVERS" /* None */
-/* ATTACHED_SERVERS: List all attached servers, useful for Linux mostly
- * Doesn't list XDMCP and xnest non-attached servers
- * CONSOLE_SERVERS supported, but deprecated due to terminology
+/* ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP
+ * and xnest non-attached servers
+ * Note: This command used to be named CONSOLE_SERVERS,
+ * which is still recognized for backwards
+ * compatibility. The optional pattern argument
+ * is supported as of version 2.8.0.0.
* Supported since: 2.2.4.0
- * Note: This command used to be named CONSOLE_SERVERS, which is still recognized
- * for backwards compatibility. The optional pattern argument is supported
- * as of version 2.8.0.0.
- * Arguments: <pattern> (optional)
+ * Arguments: <pattern> (optional)
* With no argument, all dynamic displays are returned. The optional
* <pattern> is a string that may contain glob characters '*', '?', and
* '[]'. Only displays that match the pattern will be returned.
@@ -844,12 +901,13 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_ALL_SERVERS "ALL_SERVERS" /* None */
-/* ALL_SERVERS: List all displays, including attached, remote, xnest. This
- * Can for example be useful to figure out if the server you are on is managed
- * by the gdm daemon, by seeing if it is in the list. It is also somewhat
- * like the 'w' command but for graphical sessions.
+/* ALL_SERVERS: List all displays, including attached, remote, xnest.
+ * This can for example be useful to figure out if
+ * the server you are on is managed by the gdm daemon,
+ * by seeing if it is in the list. It is also somewhat
+ * like the 'w' command but for graphical sessions.
* Supported since: 2.4.2.96
- * Arguments: None
+ * Arguments: None
* Answers:
* OK <server>;<server>;...
*
@@ -864,9 +922,9 @@ void gdm_final_cleanup (void);
*/
#define GDM_SUP_GET_SERVER_LIST "GET_SERVER_LIST" /* None */
/* GET_SERVER_LIST: Get a list of the server sections from
- * the configuration file.
+ * the configuration file.
* Supported since: 2.13.0.4
- * Arguments: None
+ * Arguments: None
* Answers:
* OK <value>;<value>;...
* ERROR <err number> <english error description>
@@ -877,16 +935,17 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_GET_SERVER_DETAILS "GET_SERVER_DETAILS" /* <server> <key> */
-/* GET_SERVER_DETAILS: Get detail information for a specific
- * server. Key values include:
- * NAME - Returns the server name
- * COMMAND - Returns the server command
- * FLEXIBLE - Returns "true" if flexible, "false" otherwise
- * CHOOSABLE - Returns "true" if choosable, "false" otherwise
- * HANDLED - Returns "true" if handled, "false" otherwise
- * CHOOSER - Returns "true" if chooser, "false" otherwise
+/* GET_SERVER_DETAILS: Get detail information for a specific server.
* Supported since: 2.13.0.4
* Arguments: <server> <key>
+ * Key values include:
+ * ID - Returns the server id
+ * NAME - Returns the server name
+ * COMMAND - Returns the server command
+ * FLEXIBLE - Returns "true" if flexible, "false" otherwise
+ * CHOOSABLE - Returns "true" if choosable, "false" otherwise
+ * HANDLED - Returns "true" if handled, "false" otherwise
+ * CHOOSER - Returns "true" if chooser, "false" otherwise
* Answers:
* OK <value>
* ERROR <err number> <english error description>
@@ -899,11 +958,16 @@ void gdm_final_cleanup (void);
*/
#define GDM_SUP_GET_CONFIG "GET_CONFIG" /* <key> */
/* GET_CONFIG: Get configuration value for key. Useful so
- * that other programs can request configuration information
- * from GDM. Any key defined as GDM_KEY_* in gdm.h is
- * supported.
+ * that other applications can request configuration
+ * information from GDM. Any key defined as GDM_KEY_*
+ * in gdm.h is * supported. Starting with version 2.13.0.2
+ * translated keys (such as "greeter/GdmWelcome[cs]" are
+ * supported via GET_CONFIG. Also starting with version
+ * 2.13.0.2 it is no longer necessary to include the
+ * default value (i.e. you can use key "greeter/IncludeAll"
+ * instead of having to use "greeter/IncludeAll=false".
* Supported since: 2.6.0.9
- * Arguments: <key>
+ * Arguments: <key>
* Answers:
* OK <value>
* ERROR <err number> <english error description>
@@ -914,9 +978,11 @@ void gdm_final_cleanup (void);
*/
#define GDM_SUP_GET_CONFIG_FILE "GET_CONFIG_FILE" /* None */
/* GET_CONFIG_FILE: Get config file location being used by
- # the daemon.
+ # the daemon. If the GDM daemon was started
+ * with the --config option, it will return
+ * the value passed in via that argument.
* Supported since: 2.8.0.2
- * Arguments: None
+ * Arguments: None
* Answers:
* OK <full path to GDM configuration file>
* ERROR <err number> <english error description>
@@ -925,40 +991,68 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_UPDATE_CONFIG "UPDATE_CONFIG" /* <key> */
-/* UPDATE_CONFIG: Tell the daemon to update config of some key. Any user
- * can really request that values are re-read but the daemon
- * caches the last date of the config file so a user can't
- * actually change any values unless they can write the
- * config file. The keys that are currently supported are:
- * security/AllowRoot (2.3.90.2)
- * security/AllowRemoteRoot (2.3.90.2)
- * security/AllowRemoteAutoLogin (2.3.90.2)
- * security/RetryDelay (2.3.90.2)
- * security/DisallowTCP (2.4.2.0)
- * daemon/Greeter (2.3.90.2)
- * daemon/RemoteGreeter (2.3.90.2)
- * xdmcp/Enable (2.3.90.2)
- * xdmcp/Port (2.3.90.2)
- * xdmcp/PARAMETERS (2.3.90.2) (pseudokey, all the parameters)
- * xdmcp/MaxPending
- * xdmcp/MaxSessions
- * xdmcp/MaxWait
- * xdmcp/DisplaysPerHost
- * xdmcp/HonorIndirect
- * xdmcp/MaxPendingIndirect
- * xdmcp/MaxWaitIndirect
- * xdmcp/PingIntervalSeconds (only affects new connections)
- * daemon/TimedLogin (2.3.90.3)
- * daemon/TimedLoginEnable (2.3.90.3)
- * daemon/TimedLoginDelay (2.3.90.3)
- * greeter/SystemMenu (2.3.90.3)
- * greeter/ConfigAvailable (2.3.90.3)
- * greeter/ChooserButton (2.4.2.0)
- * greeter/SoundOnLoginFile (2.5.90.0)
- * daemon/AddGtkModules (2.5.90.0)
- * daemon/GtkModulesList (2.5.90.0)
+/* UPDATE_CONFIG: Tell the daemon to re-read a key from the
+ * GDM configuration file. Any user can request
+ * that values are re-read but the daemon will
+ * only do so if the file has been modified
+ * since GDM first read the file. Only users
+ * who can change the GDM configuration file
+ * (normally writable only by the root user) can
+ * actually modify the GDM configuration. This
+ * command is useful to cause the GDM to update
+ * itself to recognize a change made to the GDM
+ * configuration file by the root user.
+ *
+ * Starting with version 2.13.0.0, all GDM keys are
+ * supported except for the following:
+ *
+ * daemon/PidFile
+ * daemon/ConsoleNotify
+ * daemon/User
+ * daemon/Group
+ * daemon/LogDir
+ * daemon/ServAuthDir
+ * daemon/UserAuthDir
+ * daemon/UserAuthFile
+ * daemon/UserAuthFBDir
+ *
+ * GDM also supports the following Psuedokeys:
+ *
+ * xdmcp/PARAMETERS (2.3.90.2) updates the following:
+ * xdmcp/MaxPending
+ * xdmcp/MaxSessions
+ * xdmcp/MaxWait
+ * xdmcp/DisplaysPerHost
+ * xdmcp/HonorIndirect
+ * xdmcp/MaxPendingIndirect
+ * xdmcp/MaxWaitIndirect
+ * xdmcp/PingIntervalSeconds (only affects new connections)
+ *
+ * xservers/PARAMETERS (2.13.0.4) updates the following:
+ * all [server-foo] sections.
+ *
+ * Supported keys for previous versions of GDM:
+ *
+ * security/AllowRoot (2.3.90.2)
+ * security/AllowRemoteRoot (2.3.90.2)
+ * security/AllowRemoteAutoLogin (2.3.90.2)
+ * security/RetryDelay (2.3.90.2)
+ * security/DisallowTCP (2.4.2.0)
+ * daemon/Greeter (2.3.90.2)
+ * daemon/RemoteGreeter (2.3.90.2)
+ * xdmcp/Enable (2.3.90.2)
+ * xdmcp/Port (2.3.90.2)
+ * daemon/TimedLogin (2.3.90.3)
+ * daemon/TimedLoginEnable (2.3.90.3)
+ * daemon/TimedLoginDelay (2.3.90.3)
+ * greeter/SystemMenu (2.3.90.3)
+ * greeter/ConfigAvailable (2.3.90.3)
+ * greeter/ChooserButton (2.4.2.0)
+ * greeter/SoundOnLoginFile (2.5.90.0)
+ * daemon/AddGtkModules (2.5.90.0)
+ * daemon/GtkModulesList (2.5.90.0)
* Supported since: 2.3.90.2
- * Arguments: <key>
+ * Arguments: <key>
* <key> is just the base part of the key such as "security/AllowRemoteRoot"
* Answers:
* OK
@@ -969,10 +1063,11 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_GREETERPIDS "GREETERPIDS" /* None */
-/* GREETERPIDS: List all greeter pids so that one can send HUP to them
- * for config rereading. Of course one must be root to do that.
+/* GREETERPIDS: List all greeter pids so that one can send HUP
+ * to them for config rereading. Of course one
+ * must be root to do that.
* Supported since: 2.3.90.2
- * Arguments: None
+ * Arguments: None
* Answers:
* OK <pid>;<pid>;...
* ERROR <err number> <english error description>
@@ -982,7 +1077,8 @@ void gdm_final_cleanup (void);
*/
#define GDM_SUP_QUERY_LOGOUT_ACTION "QUERY_LOGOUT_ACTION" /* None */
/* QUERY_LOGOUT_ACTION: Query which logout actions are possible
- * Only supported on connections that passed AUTH_LOCAL.
+ * Only supported on connections that passed
+ * AUTH_LOCAL.
* Supported since: 2.5.90.0
* Answers:
* OK <action>;<action>;...
@@ -998,16 +1094,15 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_SET_LOGOUT_ACTION "SET_LOGOUT_ACTION" /* <action> */
-/* SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend after slave
- * process exits.
- * Only supported on connections that passed AUTH_LOCAL.
+/* SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend after
+ * slave process exits. Only supported on
+ * connections that passed AUTH_LOCAL.
* Supported since: 2.5.90.0
- * Arguments: <action>
+ * Arguments: <action>
* NONE Set exit action to 'none'
* HALT Set exit action to 'halt'
* REBOOT Set exit action to 'reboot'
* SUSPEND Set exit action to 'suspend'
- *
* Answers:
* OK
* ERROR <err number> <english error description>
@@ -1018,15 +1113,18 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_SET_SAFE_LOGOUT_ACTION "SET_SAFE_LOGOUT_ACTION" /* <action> */
-/* SET_SAFE_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend after
- * everybody logs out. If only one person logs out, then this is obviously
- * the same as the SET_LOGOUT_ACTION. Note that SET_LOGOUT_ACTION has
- * precendence over SET_SAFE_LOGOUT_ACTION if it is set to something other
- * then NONE. If no one is logged in, then the action takes effect
- * immedeately.
- * Only supported on connections that passed AUTH_LOCAL.
+/* SET_SAFE_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend
+ * after everybody logs out. If only one
+ * person logs out, then this is obviously
+ * the same as the SET_LOGOUT_ACTION. Note
+ * that SET_LOGOUT_ACTION has precendence
+ * over SET_SAFE_LOGOUT_ACTION if it is set
+ * to something other then NONE. If no one
+ * is logged in, then the action takes effect
+ * immedeately. Only supported on connections
+ * that passed AUTH_LOCAL.
* Supported since: 2.5.90.0
- * Arguments: <action>
+ * Arguments: <action>
* NONE Set exit action to 'none'
* HALT Set exit action to 'halt'
* REBOOT Set exit action to 'reboot'
@@ -1049,13 +1147,15 @@ void gdm_final_cleanup (void);
*/
#define GDM_SUP_QUERY_VT "QUERY_VT" /* None */
/* QUERY_VT: Ask the daemon about which VT we are currently on.
- * This is useful for logins which don't own /dev/console but are
- * still console logins. Only supported on Linux currently, other places
- * will just get ERROR 8. This is also the way to query if VT
- * support is available in the daemon in the first place.
- * Only supported on connections that passed AUTH_LOCAL.
+ * This is useful for logins which don't own
+ * /dev/console but are still console logins. Only
+ * supported on Linux currently, other places will
+ * just get ERROR 8. This is also the way to query
+ * if VT support is available in the daemon in the
+ * first place. Only supported on connections that
+ * passed AUTH_LOCAL.
* Supported since: 2.5.90.0
- * Arguments: None
+ * Arguments: None
* Answers:
* OK <vt number>
* ERROR <err number> <english error description>
@@ -1067,12 +1167,12 @@ void gdm_final_cleanup (void);
*/
#define GDM_SUP_SET_VT "SET_VT" /* <vt> */
/* SET_VT: Change to the specified virtual terminal.
- * This is useful for logins which don't own /dev/console but are
- * still console logins. Only supported on Linux currently, other places
- * will just get ERROR 8.
- * Only supported on connections that passed AUTH_LOCAL.
+ * This is useful for logins which don't own /dev/console
+ * but are still console logins. Only supported on Linux
+ * currently, other places will just get ERROR 8.
+ * Only supported on connections that passed AUTH_LOCAL.
* Supported since: 2.5.90.0
- * Arguments: None
+ * Arguments: None
* Answers:
* OK
* ERROR <err number> <english error description>
@@ -1084,51 +1184,10 @@ void gdm_final_cleanup (void);
* 999 = Unknown error
*/
#define GDM_SUP_CLOSE "CLOSE" /* None */
-/* CLOSE Answers: None
+/* CLOSE: Close sockets connection
* Supported since: 2.2.4.0
- */
-
-#define GDM_SUP_ADD_DYNAMIC_DISPLAY "ADD_DYNAMIC_DISPLAY"
-/*
- * ADD_X_SERVER: Add a dynamic display configuration.
- * Configures a dynamic X server to run on the specified display
- * leaving it in DISPLAY_CONFIG state.
- * Supported since: 2.8.0.0
- * Arguments: <display to run on>=<server>
- * Where <server> is either a configuration named in gdm.conf or
- * a literal command name.
- * Answers:
- * OK
- * ERROR
- * 0 = Not implemented
- * 2 = Existing display
- * 3 = No server string
- * 4 = Display startup failure
- * 999 = Unknown error
- */
-#define GDM_SUP_REMOVE_DYNAMIC_DISPLAY "REMOVE_DYNAMIC_DISPLAY"
-/*
- * REMOVE_X_SERVER: Remove a dynamic display
- * Removes a dynamic display, killing the server and purging
- * the display configuration
- * Supported since: 2.8.0.0
- * Arguments: <display to remove>
- * Answers:
- * OK
- * ERROR
- * 0 = Not implemented
- * 999 = Unknown error
- */
-#define GDM_SUP_RELEASE_DYNAMIC_DISPLAYS "RELEASE_DYNAMIC_DISPLAYS"
-/*
- * RELEASE_SERVERS: Release dynamic displays currently in PAUSED state
- * Supported since: 2.8.0.0
* Arguments: None
- * Answers:
- * OK
- * ERROR
- * 0 = Not implemented
- * 999 = Unknown error
+ * Answers: None
*/
/* User flags for the SUP protocol */
diff --git a/daemon/gdmconfig.c b/daemon/gdmconfig.c
index b9f98673..c22dbb7a 100644
--- a/daemon/gdmconfig.c
+++ b/daemon/gdmconfig.c
@@ -56,29 +56,33 @@
#include "filecheck.h"
#include "slave.h"
-gchar *config_file = NULL;
-static time_t config_file_mtime = 0;
+gchar *config_file = NULL;
+gchar *custom_config_file = NULL;
+static time_t config_file_mtime = 0;
+static time_t custom_config_file_mtime = 0;
extern gboolean no_console;
extern gboolean gdm_emergency_server;
-GSList *displays = NULL;
-GSList *xservers = NULL;
+GSList *displays = NULL;
+GSList *displays_inactive = NULL;
+GSList *xservers = NULL;
gint high_display_num = 0;
typedef enum {
- CONFIG_BOOL,
- CONFIG_INT,
- CONFIG_STRING
+ CONFIG_BOOL,
+ CONFIG_INT,
+ CONFIG_STRING
} GdmConfigType;
-static GHashTable *type_hash = NULL;
-static GHashTable *val_hash = NULL;
-static GHashTable *realkey_hash = NULL;
-static GdmConfigType bool_type = CONFIG_BOOL;
-static GdmConfigType int_type = CONFIG_INT;
-static GdmConfigType string_type = CONFIG_STRING;
+static GHashTable *type_hash = NULL;
+static GHashTable *val_hash = NULL;
+static GHashTable *translated_hash = NULL;
+static GHashTable *realkey_hash = NULL;
+static GdmConfigType bool_type = CONFIG_BOOL;
+static GdmConfigType int_type = CONFIG_INT;
+static GdmConfigType string_type = CONFIG_STRING;
static uid_t GdmUserId; /* Userid under which gdm should run */
static gid_t GdmGroupId; /* Gruopid under which gdm should run */
@@ -526,22 +530,50 @@ gdm_config_init (void)
static VeConfig *
gdm_get_config (struct stat *statbuf)
{
- int r;
+ int r;
- /* Not NULL if config_file was set by command-line option. */
- if (config_file != NULL) {
- VE_IGNORE_EINTR (r = stat (config_file, statbuf));
- } else {
- /* First check sysconfdir */
- VE_IGNORE_EINTR (r = stat (GDM_SYSCONFDIR_CONFIG_FILE, statbuf));
- if (r < 0) {
- gdm_error (_("%s: No GDM configuration file: %s. Using defaults."),
- "gdm_config_parse", GDM_SYSCONFDIR_CONFIG_FILE);
- } else {
- config_file = GDM_SYSCONFDIR_CONFIG_FILE;
- }
- }
- return ve_config_new (config_file);
+ /* Not NULL if config_file was set by command-line option. */
+ if (config_file != NULL) {
+ VE_IGNORE_EINTR (r = stat (config_file, statbuf));
+ if (r < 0) {
+ gdm_error (_("%s: No GDM configuration file: %s. Using defaults."),
+ "gdm_config_parse", config_file);
+ return NULL;
+ }
+ } else {
+ VE_IGNORE_EINTR (r = stat (GDM_SYSCONFDIR_CONFIG_FILE, statbuf));
+ if (r < 0) {
+ gdm_error (_("%s: No GDM configuration file: %s. Using defaults."),
+ "gdm_config_parse", GDM_SYSCONFDIR_CONFIG_FILE);
+ return NULL;
+ } else {
+ config_file = GDM_SYSCONFDIR_CONFIG_FILE;
+ }
+ }
+
+ return ve_config_new (config_file);
+}
+
+/**
+ * gdm_get_custom_config:
+ *
+ * Get the custom config file where gdmsetup saves its changes and
+ * where users are encouraged to make modifications.
+ */
+static VeConfig *
+gdm_get_custom_config (struct stat *statbuf)
+{
+ VeConfig *retval;
+ gchar *file = g_strdup_printf ("%s-custom", GDM_SYSCONFDIR_CONFIG_FILE);
+ int r;
+
+ VE_IGNORE_EINTR (r = stat (file, statbuf));
+ if (r >= 0) {
+ custom_config_file = file;
+ return ve_config_new (custom_config_file);
+ } else {
+ return NULL;
+ }
}
/**
@@ -577,8 +609,20 @@ gdm_get_value_int (char *key)
gchar *
gdm_get_value_string (char *key)
{
- GdmConfigType *type = gdm_config_hash_lookup (type_hash, key);
- gpointer val = gdm_config_hash_lookup (val_hash, key);
+ GdmConfigType *type;
+ gpointer val;
+
+ /* First look in translated_hash */
+ if (translated_hash != NULL) {
+ val = gdm_config_hash_lookup (translated_hash, key);
+ if (val) {
+ gchar **charval = (char **)val;
+ return *charval;
+ }
+ }
+
+ type = gdm_config_hash_lookup (type_hash, key);
+ val = gdm_config_hash_lookup (val_hash, key);
if (type == NULL || val == NULL) {
gdm_error ("Request for invalid configuration key %s", key);
@@ -625,8 +669,19 @@ gdm_get_value_bool (char *key)
void
gdm_config_to_string (gchar *key, gchar **retval)
{
- GdmConfigType *type = gdm_config_hash_lookup (type_hash, key);
+ GdmConfigType *type;
+
+ /* First look in translated_hash */
+ if (translated_hash != NULL) {
+ gpointer val = gdm_config_hash_lookup (translated_hash, key);
+ if (val) {
+ gchar *charval = (char *)val;
+ *retval = g_strdup (val);
+ return;
+ }
+ }
+ type = gdm_config_hash_lookup (type_hash, key);
*retval = NULL;
if (type != NULL) {
@@ -706,8 +761,13 @@ notify_displays_string (const gchar *key, const gchar *val)
for (li = displays; li != NULL; li = li->next) {
GdmDisplay *disp = li->data;
if (disp->master_notify_fd >= 0) {
- gdm_fdprintf (disp->master_notify_fd, "%c%s %s\n",
- GDM_SLAVE_NOTIFY_KEY, key, val);
+ if (val == NULL) {
+ gdm_fdprintf (disp->master_notify_fd, "%c%s \n",
+ GDM_SLAVE_NOTIFY_KEY, key);
+ } else {
+ gdm_fdprintf (disp->master_notify_fd, "%c%s %s\n",
+ GDM_SLAVE_NOTIFY_KEY, key, val);
+ }
if (disp != NULL && disp->slavepid > 1)
kill (disp->slavepid, SIGUSR2);
}
@@ -900,9 +960,10 @@ _gdm_set_value_string (gchar *key, gchar *value_in, gboolean doing_update)
notify_displays_string (GDM_NOTIFY_SOUND_ON_LOGIN_FAILURE_FILE, *setting);
else if (is_key (key, GDM_KEY_GTK_MODULES_LIST))
notify_displays_string (GDM_NOTIFY_GTK_MODULES_LIST, *setting);
-}
+ }
- g_free (setting_copy);
+ if (setting_copy != NULL)
+ g_free (setting_copy);
if (*setting == NULL)
gdm_debug ("set config key %s to string <NULL>", key);
@@ -1066,8 +1127,9 @@ static gboolean
gdm_set_value (VeConfig *cfg, GdmConfigType *type, gchar *key, gboolean doing_update)
{
gchar * realkey = gdm_config_hash_lookup (realkey_hash, key);
- if (realkey == NULL)
+ if (realkey == NULL) {
return FALSE;
+ }
if (*type == CONFIG_BOOL) {
gboolean value = ve_config_get_bool (cfg, realkey);
@@ -1105,23 +1167,26 @@ gdm_set_value (VeConfig *cfg, GdmConfigType *type, gchar *key, gboolean doing_up
if (g_str_has_prefix ((char *)list->data, prefix) &&
g_str_has_suffix ((char *)list->data, "]")) {
- /* Build or reuse hash entry for each translated string */
- gchar *transkey = g_strdup_printf ("greeter/%s", (char *)list->data);
- gpointer transvalueptr = gdm_config_hash_lookup (val_hash, transkey);
- gchar *transvalue;
+ if (translated_hash == NULL)
+ translated_hash = g_hash_table_new (g_str_hash, g_str_equal);
- if (transvalueptr == NULL) {
- transvalueptr = g_new0 (gpointer, 1);
- gdm_config_add_hash (transkey, transvalueptr, &string_type);
- }
- transvalue = ve_config_get_string (cfg, transkey);
- _gdm_set_value_string (transkey, transvalue, doing_update);
+ gchar *transkey = g_strdup_printf ("greeter/%s", (char *)list->data);
+ gchar *transvalue = ve_config_get_string (cfg, transkey);
+
+ g_hash_table_remove (translated_hash, transkey);
+
+ /*
+ * Store translated values in a separate hash. Note that we load
+ * the initial values via a g_hash_table_foreach function, so if
+ * we add these to the same hash, we would end up loading these
+ * values in again a second time.
+ */
+ g_hash_table_insert (translated_hash, transkey, transvalue);
}
list = list->next;
}
g_free (basekey);
g_free (prefix);
-
}
/* Handle non-translated strings as normal */
@@ -1134,6 +1199,160 @@ gdm_set_value (VeConfig *cfg, GdmConfigType *type, gchar *key, gboolean doing_up
}
/**
+ * gdm_find_xserver
+ *
+ * Return an xserver with a given ID, or NULL if not found.
+ */
+GdmXserver *
+gdm_find_xserver (const gchar *id)
+{
+ GSList *li;
+
+ if (xservers == NULL)
+ return NULL;
+
+ if (id == NULL)
+ return xservers->data;
+
+ for (li = xservers; li != NULL; li = li->next) {
+ GdmXserver *svr = li->data;
+ if (strcmp (ve_sure_string (svr->id), ve_sure_string (id)) == 0)
+ return svr;
+ }
+ return NULL;
+}
+
+/**
+ * gdm_get_xservers
+ *
+ * Prepare a string to be returned for the GET_SERVER_LIST
+ * sockets command.
+ */
+gchar *
+gdm_get_xservers (void)
+{
+ GSList *li;
+ gchar *retval = NULL;
+
+ if (xservers == NULL)
+ return NULL;
+
+ for (li = xservers; li != NULL; li = li->next) {
+ GdmXserver *svr = li->data;
+ if (retval != NULL)
+ retval = g_strconcat (retval, ";", svr->id, NULL);
+ else
+ retval = g_strdup (svr->id);
+ }
+
+ return retval;
+}
+
+/**
+ * gdm_load_xservers
+ *
+ * Load [server-foo] sections from a configuration file.
+ */
+static void
+gdm_load_xservers (VeConfig *cfg)
+{
+ GList *list, *li;
+ GSList *xli;
+
+ /* Find server definitions */
+ list = ve_config_get_sections (cfg);
+ for (li = list; li != NULL; li = li->next) {
+ const gchar *sec = li->data;
+
+ if (strncmp (sec, "server-", strlen ("server-")) == 0) {
+ gchar *id;
+
+ id = g_strdup (sec + strlen ("server-"));
+
+ /*
+ * See if we already loaded a server with this id, skip if
+ * one already exists.
+ */
+ if (gdm_find_xserver (id) != NULL) {
+ g_free (id);
+ } else {
+ GdmXserver *svr = g_new0 (GdmXserver, 1);
+ gchar buf[256];
+
+ svr->id = id;
+
+ g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_NAME, sec);
+ svr->name = ve_config_get_string (cfg, buf);
+ g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_COMMAND, sec);
+ svr->command = ve_config_get_string (cfg, buf);
+ g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_FLEXIBLE, sec);
+ svr->flexible = ve_config_get_bool (cfg, buf);
+ g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_CHOOSABLE, sec);
+ svr->choosable = ve_config_get_bool (cfg, buf);
+ g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_HANDLED, sec);
+ svr->handled = ve_config_get_bool (cfg, buf);
+ g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_CHOOSER, sec);
+ svr->chooser = ve_config_get_bool (cfg, buf);
+
+ if (ve_string_empty (svr->command)) {
+ gdm_error (_("%s: Empty server command; "
+ "using standard command."), "gdm_config_parse");
+ g_free (svr->command);
+ svr->command = g_strdup (GdmStandardXserver);
+ }
+
+ xservers = g_slist_append (xservers, svr);
+ }
+ }
+ }
+ ve_config_free_list_of_strings (list);
+}
+
+/**
+ * gdm_update_xservers
+ *
+ * Reload [server-foo] sections from the configuration files.
+ */
+static void
+gdm_update_xservers (VeConfig *cfg, VeConfig *custom_cfg)
+{
+ GSList *xli;
+
+ /* Free list if already loaded */
+ if (xservers != NULL) {
+ for (xli = xservers; xli != NULL; xli = xli->next) {
+ GdmXserver *xsvr = xli->data;
+
+ g_free (xsvr->id);
+ g_free (xsvr->name);
+ g_free (xsvr->command);
+ }
+ g_slist_free (xservers);
+ xservers = NULL;
+ }
+
+ /* Reload first from custom_cfg then from cfg. */
+ if (custom_cfg != NULL)
+ gdm_load_xservers (custom_cfg);
+
+ if (cfg != NULL)
+ gdm_load_xservers (cfg);
+
+ /* If no "Standard" server was created, then add it */
+ if (xservers == NULL || gdm_find_xserver (GDM_STANDARD) == NULL) {
+ GdmXserver *svr = g_new0 (GdmXserver, 1);
+
+ svr->id = g_strdup (GDM_STANDARD);
+ svr->name = g_strdup ("Standard server");
+ svr->command = g_strdup (GdmStandardXserver);
+ svr->flexible = TRUE;
+ svr->choosable = TRUE;
+ svr->handled = TRUE;
+ xservers = g_slist_append (xservers, svr);
+ }
+}
+
+/**
* gdm_update_config
*
* Will cause a the GDM daemon to re-read the key from the configuration
@@ -1141,7 +1360,8 @@ gdm_set_value (VeConfig *cfg, GdmConfigType *type, gchar *key, gboolean doing_up
* specified key, if appropriate. Only specific keys defined in the
* gdm_set_value functions above are associated with such notification.
* Obviously notification is not needed for configuration options only
- * used by the daemon.
+ * used by the daemon. This function is called when the UPDDATE_CONFIG
+ * sockets command is called.
*
* To add a new notification, a GDM_NOTIFY_* argument will need to be
* defined in gdm.h, supporting logic placed in the gdm_set_value
@@ -1150,10 +1370,10 @@ gdm_set_value (VeConfig *cfg, GdmConfigType *type, gchar *key, gboolean doing_up
gboolean
gdm_update_config (gchar* key)
{
- GdmConfigType *type = gdm_config_hash_lookup (type_hash, key);
- struct stat statbuf;
- VeConfig* cfg;
- int r;
+ GdmConfigType *type;
+ struct stat statbuf, custom_statbuf;
+ VeConfig *cfg;
+ VeConfig *custom_cfg = NULL;
gboolean rc;
/*
@@ -1161,8 +1381,7 @@ gdm_update_config (gchar* key)
* additional work, or at least heavy testing, to make these keys
* flexible enough to be changed at runtime.
*/
- if (type == NULL ||
- is_key (key, GDM_KEY_PID_FILE) ||
+ if (is_key (key, GDM_KEY_PID_FILE) ||
is_key (key, GDM_KEY_CONSOLE_NOTIFY) ||
is_key (key, GDM_KEY_USER) ||
is_key (key, GDM_KEY_GROUP) ||
@@ -1174,6 +1393,25 @@ gdm_update_config (gchar* key)
return FALSE;
}
+ /* See if custom file is now there */
+ if (custom_config_file == NULL) {
+ custom_cfg = gdm_get_custom_config (&statbuf);
+ }
+
+ /* Don't bother re-reading configuration if files have not changed */
+ VE_IGNORE_EINTR (stat (config_file, &statbuf));
+ VE_IGNORE_EINTR (stat (custom_config_file, &custom_statbuf));
+
+ /*
+ * Do not reset mtime to the latest values since there is no
+ * guarantee that only one key was modified since last write.
+ * This check simply avoids re-reading the files if neither
+ * has changed since GDM was started.
+ */
+ if (config_file_mtime == statbuf.st_mtime &&
+ custom_config_file_mtime == custom_statbuf.st_mtime)
+ return TRUE;
+
/* Shortcut for updating all XDMCP parameters */
if (is_key (key, "xdmcp/PARAMETERS")) {
gdm_update_config (GDM_KEY_DISPLAYS_PER_HOST);
@@ -1184,35 +1422,65 @@ gdm_update_config (gchar* key)
gdm_update_config (GDM_KEY_MAX_INDIRECT);
gdm_update_config (GDM_KEY_MAX_WAIT_INDIRECT);
gdm_update_config (GDM_KEY_PING_INTERVAL);
+ return TRUE;
}
- VE_IGNORE_EINTR (r = stat (config_file, &statbuf));
- if G_UNLIKELY (r < 0) {
- /* if the file didn't exist before either */
- if (config_file_mtime == 0)
- return TRUE;
- } else {
- if (config_file_mtime == statbuf.st_mtime)
- return TRUE;
- config_file_mtime = statbuf.st_mtime;
+ if (custom_config_file != NULL)
+ custom_cfg = ve_config_new (custom_config_file);
+
+ if (is_key (key, "xservers/PARAMETERS")) {
+ cfg = ve_config_new (config_file);
+ gdm_update_xservers (cfg, custom_cfg);
+ ve_config_destroy (cfg);
+ if (custom_cfg != NULL)
+ ve_config_destroy (custom_cfg);
+ return rc;
}
- cfg = ve_config_new (config_file);
+ type = gdm_config_hash_lookup (type_hash, key);
+ if (type == NULL)
+ return FALSE;
- if (gdm_set_value (cfg, type, key, TRUE))
- rc = TRUE;
- else
- rc = FALSE;
+ /* First check the custom file */
+ if (custom_cfg != NULL) {
+ gchar **splitstr = g_strsplit (key, "/", 2);
+
+ if (splitstr[0] != NULL) {
+ GList *list = ve_config_get_keys (custom_cfg, splitstr[0]);
+
+ while (list != NULL) {
+ gchar *custom_key = (char *)list->data;
+ gchar *custom_fullkey = g_strdup_printf ("%s/%s", splitstr[0], custom_key);
+
+ if (is_key (key, custom_fullkey)) {
+ rc = gdm_set_value (custom_cfg, type, key, TRUE);
+
+ g_free (custom_fullkey);
+ g_strfreev (splitstr);
+ ve_config_destroy (custom_cfg);
+ return (rc);
+ }
+
+ g_free (custom_fullkey);
+ list = list->next;
+ }
+ }
+ g_strfreev (splitstr);
+ }
+
+ /* If not in the custom file, check main config file */
+ cfg = ve_config_new (config_file);
+ rc = gdm_set_value (cfg, type, key, TRUE);
ve_config_destroy (cfg);
+ if (custom_cfg != NULL)
+ ve_config_destroy (custom_cfg);
return rc;
}
/**
* check_logdir
* check_servauthdir
- * display_exists
- * gdm_find_x_server
*
* Support functions for gdm_config_parse.
*/
@@ -1268,57 +1536,78 @@ check_servauthdir (struct stat *statbuf)
}
}
-static gboolean
-display_exists (int num)
+typedef struct _GdmConfigFiles {
+ VeConfig *cfg;
+ VeConfig *custom_cfg;
+} GdmConfigFiles;
+
+/**
+ * gdm_load_displays
+ *
+ * Load the displays section of the config file
+ */
+static void
+gdm_load_displays (VeConfig *cfg, GList *list )
{
- GSList *li;
+ GList *li;
+ GSList *li2;
- for (li = displays; li != NULL; li = li->next) {
- GdmDisplay *disp = li->data;
- if (disp->dispnum == num)
- return TRUE;
- }
- return FALSE;
-}
+ for (li = list; li != NULL; li = li->next) {
+ const gchar *key = li->data;
+
+ if (isdigit (*key)) {
+ gchar *fullkey;
+ gchar *dispval;
+ int keynum = atoi (key);
+ gboolean skip_entry = FALSE;
+
+ fullkey = g_strdup_printf ("%s/%s", GDM_KEY_SECTION_SERVERS, key);
+ dispval = ve_config_get_string (cfg, fullkey);
+ g_free (fullkey);
+
+ /* Do not add if already in the list */
+ for (li2 = displays; li2 != NULL; li2 = li2->next) {
+ GdmDisplay *disp = li2->data;
+ if (disp->dispnum == keynum) {
+ skip_entry = TRUE;
+ break;
+ }
+ }
-/* If id == NULL, then get the first X server */
-GdmXserver *
-gdm_find_x_server (const gchar *id)
-{
- GSList *li;
+ /* Do not add if this display was marked as inactive already */
+ for (li2 = displays_inactive; li2 != NULL; li2 = li2->next) {
+ gchar *disp = li2->data;
+ if (atoi (disp) == keynum) {
+ skip_entry = TRUE;
+ break;
+ }
+ }
- if (xservers == NULL)
- return NULL;
+ if (skip_entry == TRUE) {
+ g_free (dispval);
+ continue;
+ }
- if (id == NULL)
- return xservers->data;
+ if (g_ascii_strcasecmp (ve_sure_string (dispval), "inactive") == 0) {
+ gdm_debug ("display %s is inactive", key);
+ displays_inactive = g_slist_append (displays_inactive, g_strdup (key));
+ } else {
+ GdmDisplay *disp = gdm_server_alloc (keynum, dispval);
- for (li = xservers; li != NULL; li = li->next) {
- GdmXserver *svr = li->data;
- if (strcmp (ve_sure_string (svr->id), ve_sure_string (id)) == 0)
- return svr;
- }
- return NULL;
-}
+ if (disp == NULL)
+ continue;
-gchar *
-gdm_get_x_servers (void)
-{
- GSList *li;
- gchar *retval = NULL;
+ displays = g_slist_insert_sorted (displays, disp, gdm_compare_displays);
+ if (keynum > high_display_num)
+ high_display_num = keynum;
+ }
- if (xservers == NULL)
- return NULL;
+ g_free (dispval);
- for (li = xservers; li != NULL; li = li->next) {
- GdmXserver *svr = li->data;
- if (retval != NULL)
- retval = g_strconcat (retval, ";", svr->id, NULL);
- else
- retval = g_strdup (svr->id);
+ } else {
+ gdm_info (_("%s: Invalid server line in config file. Ignoring!"), "gdm_config_parse");
+ }
}
-
- return retval;
}
/**
@@ -1329,12 +1618,39 @@ gdm_get_x_servers (void)
void
gdm_load_config_option (gpointer key_in, gpointer value_in, gpointer data)
{
- gchar *key = (gchar *)key_in;
- GdmConfigType *type = (GdmConfigType *)value_in;
- VeConfig *cfg = (VeConfig *)data;
+ gchar *key = (gchar *)key_in;
+ GdmConfigType *type = (GdmConfigType *)value_in;
+ GdmConfigFiles *cfgfiles = (GdmConfigFiles *)data;
+ gboolean retval;
+ gboolean custom_retval;
if (type != NULL) {
- if (gdm_set_value (cfg, type, key, FALSE))
+ /* First check the custom file */
+ if (cfgfiles->custom_cfg != NULL) {
+ gchar **splitstr = g_strsplit (key_in, "/", 2);
+ if (splitstr[0] != NULL) {
+ GList *list = ve_config_get_keys (cfgfiles->custom_cfg, splitstr[0]);
+
+ while (list != NULL) {
+ gchar *custom_key = (char *)list->data;
+ gchar *custom_fullkey = g_strdup_printf ("%s/%s", splitstr[0], custom_key);
+
+ if (is_key (key_in, custom_fullkey)) {
+ custom_retval = gdm_set_value (cfgfiles->custom_cfg, type, key, FALSE);
+ g_free (custom_fullkey);
+ g_strfreev (splitstr);
+ return;
+ }
+
+ g_free (custom_fullkey);
+ list = list->next;
+ }
+ }
+ g_strfreev (splitstr);
+ }
+
+ /* If not in the custom file, check main config file */
+ if (gdm_set_value (cfgfiles->cfg, type, key, FALSE))
return;
}
@@ -1349,295 +1665,248 @@ gdm_load_config_option (gpointer key_in, gpointer value_in, gpointer data)
void
gdm_config_parse (void)
{
- VeConfig* cfg;
+ GdmConfigFiles cfgfiles;
+ VeConfig *cfg, *custom_cfg;
struct passwd *pwent;
struct group *grent;
struct stat statbuf;
gchar *bin;
- GList *list, *li;
+ /* Init structures for configuration data */
gdm_config_init ();
displays = NULL;
high_display_num = 0;
- cfg = gdm_get_config (&statbuf);
- config_file_mtime = statbuf.st_mtime;
-
- /* Loop over all configuration options and load them */
- g_hash_table_foreach (type_hash, gdm_load_config_option, cfg);
- /* Find server definitions */
- list = ve_config_get_sections (cfg);
- for (li = list; li != NULL; li = li->next) {
- const gchar *sec = li->data;
- if (strncmp (sec, "server-", strlen ("server-")) == 0) {
- GdmXserver *svr = g_new0 (GdmXserver, 1);
- gchar buf[256];
-
- svr->id = g_strdup (sec + strlen ("server-"));
- g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_NAME, sec);
- svr->name = ve_config_get_string (cfg, buf);
- g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_COMMAND, sec);
- svr->command = ve_config_get_string (cfg, buf);
- g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_FLEXIBLE, sec);
- svr->flexible = ve_config_get_bool (cfg, buf);
- g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_CHOOSABLE, sec);
- svr->choosable = ve_config_get_bool (cfg, buf);
- g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_HANDLED, sec);
- svr->handled = ve_config_get_bool (cfg, buf);
- g_snprintf (buf, sizeof (buf), "%s/" GDM_KEY_SERVER_CHOOSER, sec);
- svr->chooser = ve_config_get_bool (cfg, buf);
-
- if (ve_string_empty (svr->command)) {
- gdm_error (_("%s: Empty server command; "
- "using standard command."), "gdm_config_parse");
- g_free (svr->command);
- svr->command = g_strdup (GdmStandardXserver);
- }
+ /*
+ * It is okay if the custom_cfg file is missing, then just use
+ * main configuration file. If cfg is missing, then GDM will
+ * use the built-in defaults found in gdm.h.
+ */
+ cfg = gdm_get_config (&statbuf);
+ config_file_mtime = statbuf.st_mtime;
+ custom_cfg = gdm_get_custom_config (&statbuf);
+ custom_config_file_mtime = statbuf.st_mtime;
+ cfgfiles.cfg = cfg;
+ cfgfiles.custom_cfg = custom_cfg;
- xservers = g_slist_append (xservers, svr);
- }
- }
- ve_config_free_list_of_strings (list);
+ /* Loop over all configuration options and load them */
+ g_hash_table_foreach (type_hash, gdm_load_config_option, &cfgfiles);
- if (xservers == NULL ||
- gdm_find_x_server (GDM_STANDARD) == NULL) {
- GdmXserver *svr = g_new0 (GdmXserver, 1);
-
- svr->id = g_strdup (GDM_STANDARD);
- svr->name = g_strdup ("Standard server");
- svr->command = g_strdup (GdmStandardXserver);
- svr->flexible = TRUE;
- svr->choosable = TRUE;
- svr->handled = TRUE;
-
- xservers = g_slist_append (xservers, svr);
- }
-
- /* Find static X server definitions */
- list = ve_config_get_keys (cfg, GDM_KEY_SECTION_SERVERS);
- /* only read the list if no_console is FALSE
- at this stage */
- for (li = list; ! no_console && li != NULL; li = li->next) {
- const gchar *key = li->data;
- if (isdigit (*key)) {
- gchar *full;
- gchar *val;
- int disp_num = atoi (key);
- GdmDisplay *disp;
-
- while (display_exists (disp_num)) {
- disp_num++;
- }
+ /* Load server-foo sections */
+ gdm_update_xservers (cfg, custom_cfg);
- if (disp_num != atoi (key)) {
- gdm_error (_("%s: Display number %d in use! Defaulting to %d"),
- "gdm_config_parse", atoi (key), disp_num);
- }
+ /* Only read the list if no_console is FALSE at this stage */
+ if ( !no_console) {
+ GList *list;
+ GSList *li2;
- full = g_strdup_printf ("%s/%s", GDM_KEY_SECTION_SERVERS, key);
- val = ve_config_get_string (cfg, full);
- g_free (full);
+ /* Find static X server definitions */
+ if (custom_cfg) {
+ list = ve_config_get_keys (custom_cfg, GDM_KEY_SECTION_SERVERS);
+ gdm_load_displays (custom_cfg, list);
+ ve_config_free_list_of_strings (list);
+ }
- disp = gdm_server_alloc (disp_num, val);
- g_free (val);
+ list = ve_config_get_keys (cfg, GDM_KEY_SECTION_SERVERS);
+ gdm_load_displays (cfg, list);
+ ve_config_free_list_of_strings (list);
- if (disp == NULL)
- continue;
- displays = g_slist_insert_sorted (displays, disp, gdm_compare_displays);
- if (disp_num > high_display_num)
- high_display_num = disp_num;
- } else {
- gdm_info (_("%s: Invalid server line in config file. Ignoring!"), "gdm_config_parse");
- }
- }
- ve_config_free_list_of_strings (list);
+ /* Free list of inactive, not needed anymore */
+ for (li2 = displays_inactive; li2 != NULL; li2 = li2->next) {
+ gchar *disp = li2->data;
+ g_free (disp);
+ }
+ g_slist_free (displays_inactive);
+ }
- if G_UNLIKELY ((displays == NULL) && (! GdmXdmcp) && (!GdmDynamicXservers)) {
- gchar *server = NULL;
+ if G_UNLIKELY ((displays == NULL) && (! GdmXdmcp) && (!GdmDynamicXservers)) {
+ gchar *server = NULL;
- /* if we requested no static servers (there is no console),
- then don't display errors in console messages */
- if (no_console) {
- gdm_fail (_("%s: XDMCP disabled and no static servers defined. Aborting!"), "gdm_config_parse");
- }
+ /*
+ * If we requested no static servers (there is no console),
+ * then don't display errors in console messages
+ */
+ if (no_console) {
+ gdm_fail (_("%s: XDMCP disabled and no static servers defined. Aborting!"), "gdm_config_parse");
+ }
- bin = ve_first_word (GdmStandardXserver);
- if G_LIKELY (access (bin, X_OK) == 0) {
- server = GdmStandardXserver;
- } else if (access ("/usr/bin/X11/X", X_OK) == 0) {
- server = "/usr/bin/X11/X";
- } else if (access ("/usr/X11R6/bin/X", X_OK) == 0) {
- server = "/usr/X11R6/bin/X";
- } else if (access ("/opt/X11R6/bin/X", X_OK) == 0) {
- server = "/opt/X11R6/bin/X";
- }
- g_free (bin);
-
- /* yay, we can add a backup emergency server */
- if (server != NULL) {
- int num = gdm_get_free_display (0 /* start */, 0 /* server uid */);
- gdm_error (_("%s: XDMCP disabled and no static servers defined. Adding %s on :%d to allow configuration!"),
- "gdm_config_parse", server, num);
-
- gdm_emergency_server = TRUE;
- displays = g_slist_append (displays, gdm_server_alloc (num, server));
- /* ALWAYS run the greeter and don't log anyone in,
- * this is just an emergency session */
- g_free (GdmAutomaticLogin);
- GdmAutomaticLogin = NULL;
- g_free (GdmTimedLogin);
- GdmTimedLogin = NULL;
- } else {
- gchar *s = g_strdup_printf (C_(N_("XDMCP is disabled and GDM "
- "cannot find any static server "
- "to start. Aborting! Please "
- "correct the configuration "
- "and restart GDM.")));
- gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: XDMCP disabled and no static servers defined. Aborting!"), "gdm_config_parse");
- }
- }
+ bin = ve_first_word (GdmStandardXserver);
+ if G_LIKELY (access (bin, X_OK) == 0) {
+ server = GdmStandardXserver;
+ } else if (access ("/usr/bin/X11/X", X_OK) == 0) {
+ server = "/usr/bin/X11/X";
+ } else if (access ("/usr/X11R6/bin/X", X_OK) == 0) {
+ server = "/usr/X11R6/bin/X";
+ } else if (access ("/opt/X11R6/bin/X", X_OK) == 0) {
+ server = "/opt/X11R6/bin/X";
+ }
+ g_free (bin);
+
+ /* yay, we can add a backup emergency server */
+ if (server != NULL) {
+ int num = gdm_get_free_display (0 /* start */, 0 /* server uid */);
+ gdm_error (_("%s: XDMCP disabled and no static servers defined. Adding %s on :%d to allow configuration!"),
+ "gdm_config_parse", server, num);
+
+ gdm_emergency_server = TRUE;
+ displays = g_slist_append (displays, gdm_server_alloc (num, server));
+ /* ALWAYS run the greeter and don't log anyone in,
+ * this is just an emergency session */
+ g_free (GdmAutomaticLogin);
+ g_free (GdmTimedLogin);
+ GdmAutomaticLogin = NULL;
+ GdmTimedLogin = NULL;
+ } else {
+ gchar *s = g_strdup_printf (C_(N_("XDMCP is disabled and GDM "
+ "cannot find any static server "
+ "to start. Aborting! Please "
+ "correct the configuration "
+ "and restart GDM.")));
+ gdm_text_message_dialog (s);
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: XDMCP disabled and no static servers defined. Aborting!"), "gdm_config_parse");
+ }
+ }
- /* If no displays were found, then obviously
- we're in a no console mode */
- if (displays == NULL)
- no_console = TRUE;
+ /* If no displays were found, then obviously
+ we're in a no console mode */
+ if (displays == NULL)
+ no_console = TRUE;
- if (no_console)
- GdmConsoleNotify = FALSE;
+ if (no_console)
+ GdmConsoleNotify = FALSE;
- /* Lookup user and groupid for the GDM user */
- pwent = getpwnam (GdmUser);
+ /* Lookup user and groupid for the GDM user */
+ pwent = getpwnam (GdmUser);
- /* Set GdmUserId and GdmGroupId */
- if G_UNLIKELY (pwent == NULL) {
- gchar *s = g_strdup_printf (C_(N_("The GDM user '%s' does not exist. "
+ /* Set GdmUserId and GdmGroupId */
+ if G_UNLIKELY (pwent == NULL) {
+ gchar *s = g_strdup_printf (C_(N_("The GDM user '%s' does not exist. "
"Please correct GDM configuration "
"and restart GDM.")), GdmUser);
- if (GdmConsoleNotify)
- gdm_text_message_dialog (s);
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: Can't find the GDM user '%s'. Aborting!"), "gdm_config_parse", GdmUser);
- } else {
- GdmUserId = pwent->pw_uid;
- }
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: Can't find the GDM user '%s'. Aborting!"), "gdm_config_parse", GdmUser);
+ } else {
+ GdmUserId = pwent->pw_uid;
+ }
- if G_UNLIKELY (GdmUserId == 0) {
- gchar *s = g_strdup_printf (C_(N_("The GDM user is set to be root, but "
+ if G_UNLIKELY (GdmUserId == 0) {
+ gchar *s = g_strdup_printf (C_(N_("The GDM user is set to be root, but "
"this is not allowed since it can "
"pose a security risk. Please "
"correct GDM configuration and "
"restart GDM.")));
- if (GdmConsoleNotify)
- gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: The GDM user should not be root. Aborting!"), "gdm_config_parse");
- }
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog (s);
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: The GDM user should not be root. Aborting!"), "gdm_config_parse");
+ }
- grent = getgrnam (GdmGroup);
+ grent = getgrnam (GdmGroup);
- if G_UNLIKELY (grent == NULL) {
- gchar *s = g_strdup_printf (C_(N_("The GDM group '%s' does not exist. "
+ if G_UNLIKELY (grent == NULL) {
+ gchar *s = g_strdup_printf (C_(N_("The GDM group '%s' does not exist. "
"Please correct GDM configuration "
"and restart GDM.")), GdmGroup);
- if (GdmConsoleNotify)
- gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: Can't find the GDM group '%s'. Aborting!"), "gdm_config_parse", GdmGroup);
- } else {
- GdmGroupId = grent->gr_gid;
- }
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog (s);
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: Can't find the GDM group '%s'. Aborting!"), "gdm_config_parse", GdmGroup);
+ } else {
+ GdmGroupId = grent->gr_gid;
+ }
- if G_UNLIKELY (GdmGroupId == 0) {
- gchar *s = g_strdup_printf (C_(N_("The GDM group is set to be root, but "
+ if G_UNLIKELY (GdmGroupId == 0) {
+ gchar *s = g_strdup_printf (C_(N_("The GDM group is set to be root, but "
"this is not allowed since it can "
"pose a security risk. Please "
"correct GDM configuration and "
"restart GDM.")));
- if (GdmConsoleNotify)
- gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: The GDM group should not be root. Aborting!"), "gdm_config_parse");
- }
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog (s);
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: The GDM group should not be root. Aborting!"), "gdm_config_parse");
+ }
- /* gid remains `gdm' */
- NEVER_FAILS_root_set_euid_egid (GdmUserId, GdmGroupId);
+ /* gid remains `gdm' */
+ NEVER_FAILS_root_set_euid_egid (GdmUserId, GdmGroupId);
- /* Check that the greeter can be executed */
- bin = ve_first_word (GdmGreeter);
- if G_UNLIKELY (ve_string_empty (bin) || access (bin, X_OK) != 0) {
- gdm_error (_("%s: Greeter not found or can't be executed by the GDM user"), "gdm_config_parse");
- }
- g_free (bin);
+ /* Check that the greeter can be executed */
+ bin = ve_first_word (GdmGreeter);
+ if G_UNLIKELY (ve_string_empty (bin) || access (bin, X_OK) != 0) {
+ gdm_error (_("%s: Greeter not found or can't be executed by the GDM user"), "gdm_config_parse");
+ }
+ g_free (bin);
- bin = ve_first_word (GdmRemoteGreeter);
- if G_UNLIKELY (ve_string_empty (bin) || access (bin, X_OK) != 0) {
- gdm_error (_("%s: Remote greeter not found or can't be executed by the GDM user"), "gdm_config_parse");
- }
- g_free (bin);
+ bin = ve_first_word (GdmRemoteGreeter);
+ if G_UNLIKELY (ve_string_empty (bin) || access (bin, X_OK) != 0) {
+ gdm_error (_("%s: Remote greeter not found or can't be executed by the GDM user"), "gdm_config_parse");
+ }
+ g_free (bin);
- /* Check that chooser can be executed */
- bin = ve_first_word (GdmChooser);
+ /* Check that chooser can be executed */
+ bin = ve_first_word (GdmChooser);
- if G_UNLIKELY (GdmIndirect && (ve_string_empty (bin) || access (bin, X_OK) != 0)) {
- gdm_error (_("%s: Chooser not found or it can't be executed by the GDM user"), "gdm_config_parse");
- }
+ if G_UNLIKELY (GdmIndirect && (ve_string_empty (bin) || access (bin, X_OK) != 0)) {
+ gdm_error (_("%s: Chooser not found or it can't be executed by the GDM user"), "gdm_config_parse");
+ }
- g_free (bin);
+ g_free (bin);
- /* Check the serv auth and log dirs */
- if G_UNLIKELY (ve_string_empty (GdmServAuthDir)) {
- if (GdmConsoleNotify)
- gdm_text_message_dialog
- (C_(N_("No daemon/ServAuthDir specified in the GDM configuration file")));
- GdmPidFile = NULL;
- gdm_fail (_("%s: No daemon/ServAuthDir specified."), "gdm_config_parse");
- }
+ /* Check the serv auth and log dirs */
+ if G_UNLIKELY (ve_string_empty (GdmServAuthDir)) {
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog
+ (C_(N_("No daemon/ServAuthDir specified in the GDM configuration file")));
+ GdmPidFile = NULL;
+ gdm_fail (_("%s: No daemon/ServAuthDir specified."), "gdm_config_parse");
+ }
- if (ve_string_empty (GdmLogDir)) {
- g_free (GdmLogDir);
- GdmLogDir = g_strdup (GdmServAuthDir);
- }
+ if (ve_string_empty (GdmLogDir)) {
+ g_free (GdmLogDir);
+ GdmLogDir = g_strdup (GdmServAuthDir);
+ }
- /* Enter paranoia mode */
- check_servauthdir (&statbuf);
+ /* Enter paranoia mode */
+ check_servauthdir (&statbuf);
- NEVER_FAILS_root_set_euid_egid (0, 0);
+ NEVER_FAILS_root_set_euid_egid (0, 0);
- /* Now set things up for us as */
- chown (GdmServAuthDir, 0, GdmGroupId);
- chmod (GdmServAuthDir, (S_IRWXU|S_IRWXG|S_ISVTX));
+ /* Now set things up for us as */
+ chown (GdmServAuthDir, 0, GdmGroupId);
+ chmod (GdmServAuthDir, (S_IRWXU|S_IRWXG|S_ISVTX));
- NEVER_FAILS_root_set_euid_egid (GdmUserId, GdmGroupId);
+ NEVER_FAILS_root_set_euid_egid (GdmUserId, GdmGroupId);
- /* again paranoid */
- check_servauthdir (&statbuf);
+ /* Again paranoid */
+ check_servauthdir (&statbuf);
- if G_UNLIKELY (statbuf.st_uid != 0 || statbuf.st_gid != GdmGroupId) {
- gchar *s = g_strdup_printf (C_(N_("Server Authorization directory "
+ if G_UNLIKELY (statbuf.st_uid != 0 || statbuf.st_gid != GdmGroupId) {
+ gchar *s = g_strdup_printf (C_(N_("Server Authorization directory "
"(daemon/ServAuthDir) is set to %s "
"but is not owned by user %s and group "
"%s. Please correct the ownership or "
"GDM configuration and restart "
"GDM.")), GdmServAuthDir, GdmUser, GdmGroup);
- if (GdmConsoleNotify)
- gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: Authdir %s is not owned by user %s, group %s. Aborting."),
- "gdm_config_parse", GdmServAuthDir, gdm_root_user (), GdmGroup);
- }
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog (s);
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: Authdir %s is not owned by user %s, group %s. Aborting."),
+ "gdm_config_parse", GdmServAuthDir, gdm_root_user (), GdmGroup);
+ }
- if G_UNLIKELY (statbuf.st_mode != (S_IFDIR|S_IRWXU|S_IRWXG|S_ISVTX)) {
- gchar *s = g_strdup_printf (C_(N_("Server Authorization directory "
+ if G_UNLIKELY (statbuf.st_mode != (S_IFDIR|S_IRWXU|S_IRWXG|S_ISVTX)) {
+ gchar *s = g_strdup_printf (C_(N_("Server Authorization directory "
"(daemon/ServAuthDir) is set to %s "
"but has the wrong permissions: it "
"should have permissions of %o. "
@@ -1645,22 +1914,24 @@ gdm_config_parse (void)
"the GDM configuration and "
"restart GDM.")), GdmServAuthDir,
(S_IRWXU|S_IRWXG|S_ISVTX));
- if (GdmConsoleNotify)
- gdm_text_message_dialog (s);
- GdmPidFile = NULL;
- g_free (s);
- gdm_fail (_("%s: Authdir %s has wrong permissions %o. Should be %o. Aborting."), "gdm_config_parse",
- GdmServAuthDir, statbuf.st_mode, (S_IRWXU|S_IRWXG|S_ISVTX));
- }
+ if (GdmConsoleNotify)
+ gdm_text_message_dialog (s);
+ GdmPidFile = NULL;
+ g_free (s);
+ gdm_fail (_("%s: Authdir %s has wrong permissions %o. Should be %o. Aborting."), "gdm_config_parse",
+ GdmServAuthDir, statbuf.st_mode, (S_IRWXU|S_IRWXG|S_ISVTX));
+ }
- NEVER_FAILS_root_set_euid_egid (0, 0);
+ NEVER_FAILS_root_set_euid_egid (0, 0);
- check_logdir ();
+ check_logdir ();
- /* Check that user authentication is properly configured */
- gdm_verify_check ();
+ /* Check that user authentication is properly configured */
+ gdm_verify_check ();
- ve_config_destroy (cfg);
+ if (custom_cfg)
+ ve_config_destroy (custom_cfg);
+ ve_config_destroy (cfg);
}
/**
@@ -1949,12 +2220,11 @@ gdm_get_facefile_from_home (const char *homedir,
is_local = path_is_local (homedir);
}
- /* only look at local home directories so we don't try to
+ /* Only look at local home directories so we don't try to
read from remote (e.g. NFS) volumes */
if (! is_local)
return NULL;
-
picfile = g_build_filename (homedir, ".face", NULL);
if (check_user_file (picfile, uid))
diff --git a/daemon/gdmconfig.h b/daemon/gdmconfig.h
index 10129d6e..e45a4d1c 100644
--- a/daemon/gdmconfig.h
+++ b/daemon/gdmconfig.h
@@ -37,8 +37,8 @@ gboolean gdm_config_to_string (gchar *key,
gboolean gdm_update_config (gchar *key);
void gdm_config_init (void);
void gdm_config_parse (void);
-GdmXserver* gdm_find_x_server (const gchar *id);
-gchar* gdm_get_x_servers (void);
+GdmXserver* gdm_find_xserver (const gchar *id);
+gchar* gdm_get_xservers (void);
int gdm_compare_displays (gconstpointer a,
gconstpointer b);
uid_t gdm_get_gdmuid (void);
diff --git a/daemon/server.c b/daemon/server.c
index 300c58ec..c66dc18a 100644
--- a/daemon/server.c
+++ b/daemon/server.c
@@ -951,7 +951,7 @@ gdm_server_resolve (GdmDisplay *disp)
bin = ve_first_word (disp->command);
if (bin != NULL && bin[0] != '/') {
- svr = gdm_find_x_server (bin);
+ svr = gdm_find_xserver (bin);
}
g_free (bin);
return svr;
@@ -975,7 +975,7 @@ gdm_server_resolve_command_line (GdmDisplay *disp,
gdm_error (_("Invalid server command '%s'"), disp->command);
argv = ve_split (gdm_get_value_string (GDM_KEY_STANDARD_XSERVER));
} else if (bin[0] != '/') {
- GdmXserver *svr = gdm_find_x_server (bin);
+ GdmXserver *svr = gdm_find_xserver (bin);
if (svr == NULL) {
gdm_error (_("Server name '%s' not found; "
"using standard server"), bin);
diff --git a/docs/C/gdm.xml b/docs/C/gdm.xml
index 449d16f5..fa212ee4 100644
--- a/docs/C/gdm.xml
+++ b/docs/C/gdm.xml
@@ -2,8 +2,8 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
- <!ENTITY version "2.13.0.3">
- <!ENTITY date "12/12/2005">
+ <!ENTITY version "2.13.0.4">
+ <!ENTITY date "12/21/2005">
]>
<article id="index" lang="en">
@@ -154,13 +154,19 @@
</para>
<para>
- Upon startup the <command>gdm</command> daemon parses its config file
- <command>gdm.conf</command>. For each of the local displays
- <command>gdm</command> forks an Xserver and a slave process. The
- main <command>gdm</command> process will then listen to XDMCP
- requests, if so configured, from remote displays and monitor the local
- display sessions. The main daemon process will also allow starting of
- on new local Xservers on demand using the
+ Upon startup the <command>gdm</command> daemon parses the
+ <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename>
+ configuration files. Configuration choices specified in
+ <filename>gdm.conf-custom</filename> override values specified in
+ the main <filename>gdm.conf</filename> file.
+ </para>
+
+ <para>
+ For each of the local displays <command>gdm</command> forks an Xserver
+ and a slave process. The main <command>gdm</command> process will
+ then listen to XDMCP requests, if so configured, from remote displays
+ and monitor the local display sessions. The main daemon process will
+ also allow starting of on new local Xservers on demand using the
<command>gdmflexiserver</command> command.
</para>
@@ -498,13 +504,13 @@
load face images from remote home directories. Furthermore, GDM will
give up loading face images after 5 seconds of activity and will
only display the users whose pictures it has gotten so far. The
- <filename>gdm.conf</filename> <filename>Include</filename> option
- can be used to specify a set of users who should appear on the
- face browser. As long as the users to include is of a reasonable
- size, there should not be a problem with GDM being unable to access
- the face images. To work around these problems, it is recommended
- to place face images in the directory specified by the
- <filename>GlobalFaceDir</filename> configuration option.
+ <filename>Include</filename> configuration option can be used to
+ specify a set of users who should appear on the face browser. As
+ long as the users to include is of a reasonable size, there should
+ not be a problem with GDM being unable to access the face images.
+ To work around these problems, it is recommended to place face images
+ in the directory specified by the <filename>GlobalFaceDir</filename>
+ configuration option.
</para>
<para>
@@ -749,46 +755,49 @@
<para>
This section will cover the configuration of GDM and the format of the
- configuration file. However you can use the
- <command>gdmsetup</command> command to configure GDM from a graphical
- environment. The configuration application does not let you configure every
- aspect of GDM, so if the configuration application does not cover your needs
- you may find information in this section.
+ GDM configuration files. You can use the <command>gdmsetup</command>
+ command to configure GDM, but the configuration application does not
+ let you configure every aspect of GDM. The information in this
+ section explains how to further configure GDM.
</para>
<para>
The configuration files (especially the <filename>gdm.conf</filename>
- file) contain lots of useful comments and examples, so also read this
- for more information about changing your setup.
+ and <filename>gdm.conf-custom</filename> files) contains useful
+ comments and examples, so read this for more information about
+ changing your setup.
</para>
<para>
Some keys in the configuration file as shipped are commented out while
others are set. This is done so that defaults can be easily changed in
- the future for some keys. If you wish to set such a key you must first
- remove the leading hash mark that marks it as a comment.
+ the future for some keys. GDM considers lines that start with the "#"
+ character a comment, and these lines will be ignored by GDM.
</para>
<para>
- The <filename>gdm.conf</filename> file contains the main configuration
- choices for GDM.
+ The <filename>gdm.conf</filename> file contains the default
+ configuration choices for GDM, and should not be modified by the
+ user. The <filename>gdm.conf-custom</filename> file is where users
+ may specify their custom configuration choices. Configuration options
+ specified in the <filename>gdm.conf-custom</filename> file override
+ the values in the main <filename>gdm.conf</filename> file. Running
+ the <command>gdmsetup</command> command will cause the
+ <filename>gdm.conf-custom</filename> to be modified with the
+ user's configuration choices and will cause any running GDM GUI
+ programs to automatically update. Previous to version 2.13.0.4
+ GDM only supported the <filename>gdm.conf</filename> file, so if
+ using an older version of GDM just edit that file directly.
</para>
<para>
- GDM may be configured to support both system-wide configuration if
+ GDM may be configured to support system-wide configuration if
built with the <command>--with-configdir</command> option. This
allows the gdm.conf file to be installed to a directory that can
- be mounted across multiple-systems. Regardless of whether this
- option is used, GDM will first look for the gdm.conf file in the
- <filename>&lt;etc&gt;/gdm</filename> directory. This way
- machine-specific configuration always overrides the system-wide
- defaults. The gdm --config option may also be used to specify the
- configuration file location. All GDM utilities (such as
- <command>gdmchooser</command>, <command>gdmsetup</command>, etc.)
- query the GDM daemon process and will use the same configuration
- file as being used by the daemon. The GDM2 daemon must be restarted
- to change the configuration file being used. GDM 2.8.0.1 and earlier
- only supported machine-specific configuration.
+ be mounted across multiple-systems. The GDM --config option may
+ also be used to specify the configuration file location. The GDM2
+ daemon must be restarted to change the configuration file being
+ used.
</para>
<para>
@@ -837,7 +846,13 @@ XKeepsCrashing
<para>
<filename>Xsession</filename> is a script which sets up a user session
- and then executes the users choice of session.
+ and then executes the users choice of session. Note that the session
+ script is typically started via the <filename>desktop</filename>
+ file associated with the session the user has picked. Some
+ sessions may start the user's session via a different mechanism than
+ the <filename>Xsession</filename> script, so please check the
+ appropriate <filename>desktop</filename> before assuming a session
+ startup issue is being caused by this file.
</para>
<para>
@@ -849,12 +864,6 @@ XKeepsCrashing
</para>
<para>
- <filename>gdm.conf</filename> configuration settings are used by most
- GDM applications since a number of configuration settings are used by
- each program.
- </para>
-
- <para>
Accessibility modules are configured in the <filename>modules/</filename>
subdirectory, and are a separate topic. Read the default files provided,
they have adequate documentation. Again normally the default install
@@ -924,8 +933,8 @@ XKeepsCrashing
<para>
It is up to the sysadmin to decide whether clients started by the Init
script should be killed before starting the user session. This is
- controlled with the <filename>KillInitClients</filename> option in
- <filename>gdm.conf</filename>.
+ controlled with the <filename>KillInitClients</filename> configuration
+ option.
</para>
<para>
@@ -1027,36 +1036,60 @@ XKeepsCrashing
</sect2>
<sect2 id="configfile">
- <title>The Configuration File - <filename>gdm.conf</filename></title>
+ <title>The Configuration File - <filename>gdm.conf</filename> and
+ <filename>gdm.conf-custom</filename></title>
<para>
- The daemon and the accompanying utilities use a common
- configuration file: <filename>gdm.conf</filename>. GDM may be
- configured to support both system-wide configuration if
+ GDM uses two configuration files: <filename>gdm.conf</filename>
+ and <filename>gdm.conf-custom</filename>. The
+ <filename>gdm.conf</filename> file contains the default
+ configuration choices for GDM, and should not be modified by the
+ user. The <filename>gdm.conf-custom</filename> file is where
+ users may specify their custom configuration choices.
+ Configuration options specified in the
+ <filename>gdm.conf-custom</filename> file override the values in
+ the main <filename>gdm.conf</filename> file. If a configuration
+ option is not defined in either file, GDM will default to the
+ value described in the comments in the
+ <filename>gdm.conf</filename> file.
+ </para>
+
+ <para>
+ Running the <command>gdmsetup</command> command will cause the
+ <filename>gdm.conf-custom</filename> to be modified with the
+ user's configuration choices.
+ </para>
+
+ <para>
+ Previous to GDM 2.13.0.4 only the <filename>gdm.conf</filename>
+ existed. If upgrading to the new version of GDM, install will
+ check to see if your <filename>gdm.conf</filename> file is
+ different than your <filename>factory-gdm.conf</filename> file.
+ If so, your <filename>gdm.conf</filename> file will be
+ automatically copied to <filename>gdm.conf-custom</filename>
+ to preserve your configuration changes.
+ </para>
+
+ <para>
+ GDM may be configured to support system-wide configuration if
built with the <command>--with-configdir</command> option. This
- allows the gdm.conf file to be installed to a directory that can
- be mounted across multiple-systems. Regardless of whether this
- option is used, GDM will first look for the gdm.conf file in the
- <filename>&lt;etc&gt;/gdm</filename> directory. This way
- machine-specific configuration always overrides the system-wide
- defaults. The gdm --config option may instead be used to specify
- a configuration file installed to another location. All GDM
- utilities (such as All GDM utilities (such as
- <command>gdmchooser</command>, <command>gdmsetup</command>, etc.)
- query the GDM daemon process and will use the same configuration
- file as being used by the daemon. The GDM2 daemon must be
- restarted to change the configuration file being used. GDM 2.8.0.1
- and earlier only supported machine-specific configuration.
+ allows the <filename>gdm.conf</filename> file to be installed to
+ a directory that can be mounted across multiple-systems. The
+ GDM --config option may instead be used to specify a configuration
+ file installed to another location. The GDM2 daemon must be
+ restarted to change the configuration file being used.
</para>
<para>
- The configuration file is divided into sections each containing
+ Both configuration files are divided into sections each containing
variables that define the behavior for a specific part of the GDM
- suite. The file is fairly well commented as well.
+ suite. Refer to the comments in the <filename>gdm.conf</filename>
+ file for additional information about each configuration setting.
</para>
<para>
- <filename>gdm.conf</filename> follows the standard
+ The <filename>gdm.conf</filename> and
+ <filename>gdm.conf-custom</filename> files follow the standard
<filename>.ini</filename> style configuration file syntax. Keywords
in brackets define sections, strings before an equal sign (=) are
variables and the data after equal sign represents their value. Empty
@@ -1260,7 +1293,8 @@ XKeepsCrashing
This value will be overridden with the value from
/etc/default/login if it contains "ROOT=&lt;pathname&gt;". If
the /etc/default/login file exists, but contains no value for
- ROOT, the gdm.conf value will be used.
+ ROOT, the value as defined in the GDM configuration will be
+ be used.
</para>
</listitem>
</varlistentry>
@@ -1564,7 +1598,8 @@ XKeepsCrashing
executed by GDM. This value will be overridden with the value
from /etc/default/login if it contains "SUROOT=&lt;pathname&gt;".
If the /etc/default/login file exists, but contains no value
- for SUROOT, the gdm.conf value will be used.
+ for SUROOT, the value as defined in the GDM configuration will
+ be used.
</para>
</listitem>
</varlistentry>
@@ -1944,7 +1979,7 @@ XKeepsCrashing
overridden with the value from /etc/default/login if it
contains "PASSREQ=[YES|NO]". If the /etc/default/login
file exists, but contains no value for PASSREQ, the
- gdm.conf value will be used.
+ value as defined in the GDM configuration will be used.
</para>
</listitem>
</varlistentry>
@@ -2756,10 +2791,11 @@ XKeepsCrashing
<listitem>
<synopsis>ChooserButtonLogo=&lt;share&gt;/pixmaps/gnome-logo-large.png</synopsis>
<para>
- Image file to display in the file chooser button in gdmsetup.
- This key is modified by gdmsetup and should not be manually
- modified by the user.
- This only affects the Login Window Preferences (gdmsetup).
+ Image file to display in the file chooser button in
+ <command>gdmsetup</command>. This key is modified by
+ <command>gdmsetup</command> and should not be manually
+ modified by the user. This only affects the Login Window
+ Preferences (<command>gdmsetup</command>).
</para>
</listitem>
</varlistentry>
@@ -3323,9 +3359,16 @@ XKeepsCrashing
<para>
Servers are defined by sections named <filename>server-</filename>
followed by the identifier of this server. This should be a simple
- ASCII string with no spaces. If you use the GUI configurator, it
- will use random words for these. These will not be user visible,
- they are just needed to uniquely identify the server.
+ ASCII string with no spaces. The GUI configuration program allows
+ users to edit the servers defined in the GDM configuration files
+ but currently does not allow adding or deleting entries. Like
+ normal configuration options, <filename>server-</filename>
+ sections in the <filename>gdm.conf-custom</filename> file
+ override values in the <filename>gdm.conf</filename> file. In
+ other words, if a <filename>server-Standard</filename> section is
+ defined in <filename>gdm.conf-custom</filename>, then that will
+ be used and the section in the <filename>gdm.conf</filename>
+ file will be ignored.
</para>
<variablelist>
@@ -3374,10 +3417,10 @@ XKeepsCrashing
useful to run an X terminal using GDM. When this is done you
should normally also add <filename>-terminate</filename> to the
command line of the server to make the server terminate after
- each session. otherwise the control of the slave will never
- come back to GDM and for example soft restarts won't work,
- since GDM assumes there is a login in progress for the entire
- time this server is active.
+ each session. Otherwise the control of the slave will never
+ come back to GDM and, for example, soft restarts won't work.
+ This is because GDM assumes there is a login in progress for
+ the entire time this server is active.
</para>
</listitem>
</varlistentry>
@@ -3393,23 +3436,35 @@ XKeepsCrashing
</para>
</listitem>
</varlistentry>
-
</variablelist>
</sect3>
<sect3 id="localservers">
- <title>Local Static X Server Configuration</title>
+ <title>Local Static X Display Configuration</title>
<para>
- The static X servers are servers that are always running, when the
- server ever dies, it is restarted. You can have as many local static
- servers as you wish. Each key in the <filename>[servers]</filename>
- section corresponds to the display number of the server to run. For
- example normally there is only one key, which is the key
- <filename>0</filename>, which corresponds to the display
- <filename>:0</filename>.
+ The static display configuration specifies what displays should be
+ always managed by GDM. GDM will restart the Xserver on the display
+ if it dies, for example. There may be as many static displays that
+ are managed as you wish, although typically each display is
+ associated with a real display. For example, if a machine has two
+ displays (say display ":0" and display ":1"), then this section can
+ be used to specify that a separate login screen be managed for each
+ screen. Each key in the <filename>[servers]</filename> section
+ corresponds to the display number to be managed. Normally there is
+ only one key, which is the key <filename>0<filename>, which
+ corresponds to the display <filename>:0</filename>.
+ </para>
+
+ <para>
+ The GUI configuration program allows users to edit the static
+ display configuration defined in the GDM configuration files
+ and allows the user to add or delete entries. Like normal
+ configuration options, the <filename>[servers]</filename>
+ section in the <filename>gdm.conf-custom</filename> file
+ overrides values in the <filename>gdm.conf</filename> file.
</para>
<variablelist>
@@ -3429,13 +3484,12 @@ XKeepsCrashing
The command can either be a path to an X executable, or a name
of one of the server definitions. This can be followed by some
arguments that should be passed to the X server when executed.
- </para>
-
- <para>
- The gdm daemon doesn't enforce the numbers to be in
- order or for them to be "packed". However when you use
- the GUI configurator, the servers will always start from
- 0 and go up by 1. That is, leaving no holes.
+ The gdm daemon doesn't enforce the numbers to be in order or
+ for them to be "packed". They keyword "inactive" can be used
+ instead of a command to specify that the display should be
+ not managed. This can be used in the
+ <filename>gdm.conf-custom</filename> to turn off a display
+ that is defined in the <filename>gdm.conf</filename> file.
</para>
<para>
@@ -3450,9 +3504,8 @@ XKeepsCrashing
virtual consoles to run the X server. In this case,
(if running XFree86) add "vt7" to the command line for example
to run on virtual console 7. However on Linux and
- FreeBSD this is normally
- done automatically if <filename>VTAllocation</filename> key
- is set.
+ FreeBSD this is normally done automatically if the
+ <filename>VTAllocation</filename> key is set.
</para>
<para>
@@ -3475,17 +3528,34 @@ XKeepsCrashing
<para>
There are some per user configuration settings that control how GDM
- behaves. Firstly there is the <filename>~/.dmrc</filename> file. In
+ behaves. GDM is picky about the file ownership and permissions of
+ the user files it will access, and will ignore files if they are not
+ owned by the user or files that have group/world write permission.
+ It will also ignore the user if the user's $HOME directory is not
+ owned by the user or if the user's $HOME directory has group/world
+ write permission. files must also be smaller than the
+ <filename>UserMaxFile</filename> value as defined in the GDM
+ configuration. If it seems that GDM is not properly accessing
+ user configuration settings, the problem is most likely
+ caused by one of these checks failing.
+ </para>
+
+ <para>
+ First there is the <filename>~/.dmrc</filename> file. In
theory this file should be shared between GDM and KDM, so users only
have to configure things once. This is a standard
<filename>.ini</filename> style configuration file. It has one section
- called <filename>[Desktop]</filename> and can have two keys,
- <filename>Session</filename>, which is the basename of the session
+ called <filename>[Desktop]</filename> which has two keys:
+ <filename>Session</filename> and <filename>Language</filename>.
+ </para>
+
+ <para>
+ The <filename>Session</filename> key specifies the basename of the session
<filename>.desktop</filename> file that the user wishes to normally use
- (but without the <filename>.desktop</filename> extension)
- and a <filename>Language</filename> key that is the language that the
- user wishes to use. If either of these keys is missing, the system
- default is used. The file would normally look as follows:
+ (without the <filename>.desktop</filename> extension, in other words).
+ The <filename>Language</filename> key specifies the language that the
+ user wishes to use by default. If either of these keys is missing, the
+ system default is used. The file would normally look as follows:
</para>
<screen>
@@ -3495,19 +3565,32 @@ Language=cs_CZ.UTF-8
</screen>
<para>
- The user can also configure a face image for the face browser. This is
- done by copying an image into a file called
- <filename>~/.face</filename>. This should be a standard image that
- GTK+ can read, such as PNG.
+ Normally GDM will write this file when the user logs in for the first
+ time, and rewrite it if the user chooses to change their default values
+ on a subsequent login.
+ </para>
+
+ <para>
+ If the GDM Face Browser is turned, then the file
+ <filename>$HOME/.face</filename> is accessed. This file should be a
+ standard image that GTK+ can read, such as PNG or JPEG. It also must
+ be smaller than the <filename>MaxIconWidth</filename> and
+ <filename>MaxIconHeight</filename> values defined in the GDM
+ configuration or it will be ignored. Users can run the
+ <command>gdmphotosetup</command> program to specify a face image
+ and it will copy the file to the $HOME/.face location and scale it
+ so its longest dimension is not larger than the
+ <filename>MaxIconWidth</filename> or <filename>MaxIconHeight</filename>
+ values. <command>gdmphotosetup</command> takes care to not change
+ the aspect ratio of the image.
</para>
<para>
Face images can also be placed in the global face directory, which is
- normally <filename>&lt;share&gt;/pixmaps/faces/</filename>
- (though this can be configured with the
- <filename>GlobalFaceDir</filename> configuration option) and the
- filename should be the name of the user, optionally with a
- <filename>.png</filename> appended.
+ specified by the <filename>GlobalFaceDir</filename> configuration
+ option ( normally <filename>&lt;share&gt;/pixmaps/faces/</filename>)
+ and the filename should be the name of the user, optionally with a
+ <filename>.png</filename>, <filename>.jpg</filename>, etc. appended.
</para>
</sect2>
@@ -3625,9 +3708,9 @@ CLOSE
<sect3 id="queryversion">
<title>VERSION</title>
<screen>
-VERSION: Query version
+VERSION: Query GDM version
Supported since: 2.2.4.0
-Arguments: None
+Arguments: None
Answers:
GDM &lt;gdm version&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3649,8 +3732,13 @@ AUTH_LOCAL: Setup this connection as authenticated for
Note: The AUTH LOCAL command requires the
--authenticate option, although only
FLEXI XSERVER uses this currently.
+Note: Since 2.6.0.6 you can also use a global
+ &lt;ServAuthDir&gt;/.cookie, which works for all
+ authentication except for SET_LOGOUT_ACTION and
+ QUERY_LOGOUT_ACTION and SET_SAFE_LOGOUT_ACTION
+ which require a logged in display.
Supported since: 2.2.4.0
-Arguments: &lt;xauth cookie&gt;
+Arguments: &lt;xauth cookie&gt;
&lt;xauth cookie&gt; is in hex form with no 0x prefix
Answers:
OK
@@ -3665,10 +3753,10 @@ Answers:
<sect3 id="flexixserver">
<title>FLEXI_XSERVER</title>
<screen>
-FLEXI_XSERVER: Start a new X flexible server
-Only supported on connection that passed AUTH_LOCAL
+FLEXI_XSERVER: Start a new X flexible server. Only supported on
+ connection that passed AUTH_LOCAL
Supported since: 2.2.4.0
-Arguments: &lt;xserver type&gt;
+Arguments: &lt;xserver type&gt;
If no arguments, starts the standard x server
Answers:
OK &lt;display&gt;
@@ -3688,8 +3776,8 @@ Answers:
<sect3 id="flexixnest">
<title>FLEXI_XNEST</title>
<screen>
-FLEXI_XNEXT: Start a new flexible Xnest server
-Note: Supported an older version from 2.2.4.0, later
+FLEXI_XNEXT: Start a new flexible Xnest server.
+Note: Supported on older version from 2.2.4.0, later
2.2.4.2, but since 2.3.90.4 you must supply 4
arguments or ERROR 100 will be returned. This
will start Xnest using the XAUTHORITY file
@@ -3706,8 +3794,8 @@ Note: The cookie should be the MIT-MAGIC-COOKIE-1,
use you should generate one first. The cookie
should be in hex form.
Supported since: 2.3.90.4
-Arguments: &lt;display to run on&gt; &lt;uid of requesting user&gt;
- &lt;xauth cookie for the display&gt; &lt;xauth file&gt;
+Arguments: &lt;display to run on&gt; &lt;uid of requesting user&gt;
+ &lt;xauth cookie for the display&gt; &lt;xauth file&gt;
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3727,12 +3815,13 @@ Answers:
<sect3 id="adddynamic">
<title>ADD_DYNAMIC_DISPLAY</title>
<screen>
-ADD_DYNAMIC_DISPLAY: Create a new server definition that will run on the
- specified display leaving, it in DISPLAY_CONFIG state.
+ADD_DYNAMIC_DISPLAY: Create a new server definition that will
+ run on the specified display leaving, it
+ in DISPLAY_CONFIG state.
Supported since: 2.8.0.0
-Arguments: &lt;display to run on&gt;=&lt;server&gt;
- Where &lt;server&gt; is either a configuration named in gdm.conf or
- a literal command name.
+Arguments: &lt;display to run on&gt;=&lt;server&gt;
+ Where &lt;server&gt; is either a configuration named in the
+ GDM configuration or a literal command name.
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3749,10 +3838,10 @@ Answers:
<sect3 id="releasedynamic">
<title>RELEASE_DYNAMIC_DISPLAYS</title>
<screen>
-RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in DISPLAY_CONFIG
- state
+RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in
+ DISPLAY_CONFIG state
Supported since: 2.8.0.0
-Arguments: None
+Arguments: None
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3766,10 +3855,10 @@ Answers:
<sect3 id="removedynamic">
<title>REMOVE_DYNAMIC_DISPLAY</title>
<screen>
-REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server and purging
- the display configuration
+REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server
+ and purging the display configuration
Supported since: 2.8.0.0
-Arguments: &lt;display to remove&gt;
+Arguments: &lt;display to remove&gt;
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3784,13 +3873,14 @@ Answers:
<sect3 id="attachedservers">
<title>ATTACHED_SERVERS</title>
<screen>
-ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP and xnest
- non-attached servers
+ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP
+ and xnest non-attached servers
+Note: This command used to be named CONSOLE_SERVERS,
+ which is still recognized for backwards
+ compatibility. The optional pattern argument
+ is supported as of version 2.8.0.0.
Supported since: 2.2.4.0
-Note: This command used to be named CONSOLE_SERVERS, which is still recognized
- for backwards compatibility. The optional pattern argument is supported
- as of version 2.8.0.0.
-Arguments: &lt;pattern&gt; (optional)
+Arguments: &lt;pattern&gt; (optional)
With no argument, all attached displays are returned. The optional
&lt;pattern&gt; is a string that may contain glob characters '*', '?', and
'[]'. Only displays that match the pattern will be returned.
@@ -3822,7 +3912,7 @@ ALL_SERVERS: List all displays, including console, remote, xnest.
by seeing if it is in the list. It is also somewhat
like the 'w' command but for graphical sessions.
Supported since: 2.4.2.96
-Arguments: None
+Arguments: None
Answers:
OK &lt;server&gt;;&lt;server&gt;;...
@@ -3843,7 +3933,7 @@ Answers:
GET_SERVER_LIST: Get a list of the server sections from
the configuration file.
Supported since: 2.13.0.4
-Arguments: None
+Arguments: None
Answers:
OK &lt;value&gt;;&lt;value&gt;;...
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3858,16 +3948,16 @@ Answers:
<sect3 id="getserverdetails">
<title>GET_SERVER_DETAILS</title>
<screen>
-GET_SERVER_DETAILS: Get detail information for a specific
- server. Key values include:
+GET_SERVER_DETAILS: Get detail information for a specific server.
+Supported since: 2.13.0.4
+Arguments: &lt;server&gt; &lt;key&gt;
+ Key values include:
NAME - Returns the server name
COMMAND - Returns the server command
FLEXIBLE - Returns "true" if flexible, "false" otherwise
CHOOSABLE - Returns "true" if choosable, "false" otherwise
HANDLED - Returns "true" if handled, "false" otherwise
CHOOSER - Returns "true" if chooser, "false" otherwise
-Supported since: 2.13.0.4
-Arguments: &lt;server&gt; &lt;key&gt;
Answers:
OK &lt;value&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3893,7 +3983,7 @@ GET_CONFIG: Get configuration value for key. Useful so
default value (i.e. you can use key "greeter/IncludeAll"
instead of having to use "greeter/IncludeAll=false".
Supported since: 2.6.0.9
-Arguments: &lt;key&gt;
+Arguments: &lt;key&gt;
Answers:
OK &lt;value&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3908,9 +3998,11 @@ Answers:
<title>GET_CONFIG_FILE</title>
<screen>
GET_CONFIG_FILE: Get config file location being used by
- the daemon.
+ the daemon. If the GDM daemon was started
+ with the --config option, it will return
+ the value passed in via the argument.
Supported since: 2.8.0.2
-Arguments: None
+Arguments: None
Answers:
OK &lt;full path to GDM configuration file&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -3924,61 +4016,67 @@ Answers:
<title>UPDATE_CONFIG</title>
<screen>
UPDATE_CONFIG: Tell the daemon to re-read a key from the
- gdm.conf configuration file. Any user can
- request that values are re-read but the daemon
- will only do so if the file has been modified
- since the last time it was read. Only users
- who can change the gdm.conf file (normally
- writable only by the root user) can actually
- modify the GDM configuration. This command
- is useful to cause the GDM to update itself
- to recognize a change made to the gdm.conf
- file by the root user.
-
- Starting with version 2.13, all GDM keys are
+ GDM configuration file. Any user can request
+ that values are re-read but the daemon will
+ only do so if the file has been modified
+ since GDM first read the file. Only users
+ who can change the GDM configuration file
+ (normally writable only by the root user) can
+ actually modify the GDM configuration. This
+ command is useful to cause the GDM to update
+ itself to recognize a change made to the GDM
+ configuration file by the root user.
+
+ Starting with version 2.13.0.0, all GDM keys are
supported except for the following:
- daemon/PidFile
- daemon/ConsoleNotify
- daemon/User
- daemon/Group
- daemon/LogDir
- daemon/ServAuthDir
- daemon/UserAuthDir
- daemon/UserAuthFile
- daemon/UserAuthFBDir
-
-Supported keys for previous versions of GDM:
-
- security/AllowRoot (2.3.90.2)
- security/AllowRemoteRoot (2.3.90.2)
- security/AllowRemoteAutoLogin (2.3.90.2)
- security/RetryDelay (2.3.90.2)
- security/DisallowTCP (2.4.2.0)
- daemon/Greeter (2.3.90.2)
- daemon/RemoteGreeter (2.3.90.2)
- xdmcp/Enable (2.3.90.2)
- xdmcp/Port (2.3.90.2)
- xdmcp/PARAMETERS (2.3.90.2) (pseudokey, all the parameters)
- xdmcp/MaxPending
- xdmcp/MaxSessions
- xdmcp/MaxWait
- xdmcp/DisplaysPerHost
- xdmcp/HonorIndirect
- xdmcp/MaxPendingIndirect
- xdmcp/MaxWaitIndirect
- xdmcp/PingIntervalSeconds (only affects new connections)
- daemon/TimedLogin (2.3.90.3)
- daemon/TimedLoginEnable (2.3.90.3)
- daemon/TimedLoginDelay (2.3.90.3)
- greeter/SystemMenu (2.3.90.3)
- greeter/ConfigAvailable (2.3.90.3)
- greeter/ChooserButton (2.4.2.0)
- greeter/SoundOnLoginFile (2.5.90.0)
- daemon/AddGtkModules (2.5.90.0)
- daemon/GtkModulesList (2.5.90.0)
+ daemon/PidFile
+ daemon/ConsoleNotify
+ daemon/User
+ daemon/Group
+ daemon/LogDir
+ daemon/ServAuthDir
+ daemon/UserAuthDir
+ daemon/UserAuthFile
+ daemon/UserAuthFBDir
+
+ GDM also supports the following Psuedokeys:
+
+ xdmcp/PARAMETERS (2.3.90.2) updates the following:
+ xdmcp/MaxPending
+ xdmcp/MaxSessions
+ xdmcp/MaxWait
+ xdmcp/DisplaysPerHost
+ xdmcp/HonorIndirect
+ xdmcp/MaxPendingIndirect
+ xdmcp/MaxWaitIndirect
+ xdmcp/PingIntervalSeconds (only affects new connections)
+
+ xservers/PARAMETERS (2.13.0.4) updates the following:
+ all [server-foo] sections.
+
+ Supported keys for previous versions of GDM:
+
+ security/AllowRoot (2.3.90.2)
+ security/AllowRemoteRoot (2.3.90.2)
+ security/AllowRemoteAutoLogin (2.3.90.2)
+ security/RetryDelay (2.3.90.2)
+ security/DisallowTCP (2.4.2.0)
+ daemon/Greeter (2.3.90.2)
+ daemon/RemoteGreeter (2.3.90.2)
+ xdmcp/Enable (2.3.90.2)
+ xdmcp/Port (2.3.90.2)
+ daemon/TimedLogin (2.3.90.3)
+ daemon/TimedLoginEnable (2.3.90.3)
+ daemon/TimedLoginDelay (2.3.90.3)
+ greeter/SystemMenu (2.3.90.3)
+ greeter/ConfigAvailable (2.3.90.3)
+ greeter/ChooserButton (2.4.2.0)
+ greeter/SoundOnLoginFile (2.5.90.0)
+ daemon/AddGtkModules (2.5.90.0)
+ daemon/GtkModulesList (2.5.90.0)
Supported since: 2.3.90.2
-Arguments: &lt;key&gt;
+Arguments: &lt;key&gt;
&lt;key&gt; is just the base part of the key such as
"security/AllowRemoteRoot"
Answers:
@@ -3998,7 +4096,7 @@ GREETERPIDS: List all greeter pids so that one can send HUP
to them for config rereading. Of course one
must be root to do that.
Supported since: 2.3.90.2
-Arguments: None
+Arguments: None
Answers:
OK &lt;pid&gt;;&lt;pid&gt;;...
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -4012,7 +4110,8 @@ Answers:
<title>QUERY_LOGOUT_ACTION</title>
<screen>
QUERY_LOGOUT_ACTION: Query which logout actions are possible
-Only supported on connections that passed AUTH_LOCAL.
+ Only supported on connections that passed
+ AUTH_LOCAL.
Supported since: 2.5.90.0
Answers:
OK &lt;action&gt;;&lt;action&gt;;...
@@ -4033,16 +4132,15 @@ Answers:
<sect3 id="setlogoutaction">
<title>SET_LOGOUT_ACTION</title>
<screen>
-SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend
- after slave process exits.
-Only supported on connections that passed AUTH_LOCAL.
+SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend after
+ slave process exits. Only supported on
+ connections that passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: &lt;action&gt;
+Arguments: &lt;action&gt;
NONE Set exit action to 'none'
HALT Set exit action to 'halt'
REBOOT Set exit action to 'reboot'
SUSPEND Set exit action to 'suspend'
-
Answers:
OK
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -4058,23 +4156,21 @@ Answers:
<title>SET_SAFE_LOGOUT_ACTION</title>
<screen>
SET_SAFE_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend
- after everybody logs out. If only
- one person logs out, then this is
- obviously the same as the
- SET_LOGOUT_ACTION. Note that
- SET_LOGOUT_ACTION has precedence over
- SET_SAFE_LOGOUT_ACTION if it is set to
- something other then NONE. If no one
- is logged in, then the action takes
- effect immediately.
-Only supported on connections that passed AUTH_LOCAL.
+ after everybody logs out. If only one
+ person logs out, then this is obviously
+ the same as the SET_LOGOUT_ACTION. Note
+ that SET_LOGOUT_ACTION has precedence
+ over SET_SAFE_LOGOUT_ACTION if it is set
+ to something other then NONE. If no one
+ is logged in, then the action takes effect
+ effect immediately. Only supported on
+ connections that passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: &lt;action&gt;
+Arguments: &lt;action&gt;
NONE Set exit action to 'none'
HALT Set exit action to 'halt'
REBOOT Set exit action to 'reboot'
SUSPEND Set exit action to 'suspend'
-
Answers:
OK
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -4095,10 +4191,10 @@ QUERY_VT: Ask the daemon about which VT we are currently on.
supported on Linux currently, other places will
just get ERROR 8. This is also the way to query
if VT support is available in the daemon in the
- first place.
-Only supported on connections that passed AUTH_LOCAL.
+ first place. Only supported on connections that
+ passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: None
+Arguments: None
Answers:
OK &lt;vt number&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -4117,9 +4213,9 @@ SET_VT: Change to the specified virtual terminal.
This is useful for logins which don't own /dev/console
but are still console logins. Only supported on Linux
currently, other places will just get ERROR 8.
-Only supported on connections that passed AUTH_LOCAL.
+ Only supported on connections that passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: &lt;vt&gt;
+Arguments: &lt;vt&gt;
Answers:
OK
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -4135,8 +4231,10 @@ Answers:
<sect3 id="close">
<title>CLOSE</title>
<screen>
-CLOSE Answers: None
+CLOSE: Close sockets connection
Supported since: 2.2.4.0
+Arguments: None
+Answers: None
</screen>
</sect3>
</sect2>
@@ -4358,11 +4456,11 @@ Supported since: 2.2.4.0
<para>
Some environments need the ability to tell GDM to create and manage new
displays on the fly, where it is not possible to list the possible
- displays in gdm.conf. The <command>gdmdynamic</command> command can be
- used to create a new display on a particular display number, run all
- newly created displays, or remove a display. The gdmdynamic command
- can also be used to list all attached displays, or only attached
- displays that match a pattern.
+ displays in GDM configuration files. The <command>gdmdynamic</command>
+ command can be used to create a new display on a particular display
+ number, run all newly created displays, or remove a display. The
+ <command>gdmdynamic</command> command can also be used to list all
+ attached displays, or only attached displays that match a pattern.
</para>
<variablelist>
@@ -4603,28 +4701,13 @@ remote-flexi - In remote (XDMCP) &amp; flexi mode.
<para>
<command>gdmsetup</command> runs a graphical application for modifying
- the GDM configuration file, gdm.conf. Normally on systems that support
+ the GDM configuration file. Normally on systems that support
the PAM userhelper, this is setup such that when you run
<command>gdmsetup</command> as an ordinary user, it will first
ask you for your root password before starting. Otherwise, this
application may only be run as root. This application supports
standard GNOME options.
</para>
-
- <variablelist>
- <title><command>gdmsetup</command> Command Line Options</title>
-
- <varlistentry>
- <term>--config=CONFIGFILE</term>
- <listitem>
- <para>
- Specify an alternative configuration file. By default,
- <command>gdmsetup</command> will edit the same configuration
- file being used by the GDM daemon.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
</sect3>
<sect3 id="gdmrestartcommandline">
@@ -5249,31 +5332,31 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
<para>
<filename>chooser</filename>, if ChooserButton is set to "true" in
- <filename>gdm.conf</filename> file.
+ the GDM configuration.
</para>
<para>
<filename>config</filename>, if ConfigAvailable is set to "true" in
- <filename>gdm.conf</filename> file.
+ the GDM configuration.
</para>
<para>
<filename>halt</filename>, if HaltDaemon is specified in
- <filename>gdm.conf</filename> file.
+ the GDM configuration.
</para>
<para>
<filename>reboot</filename>, if RebootCommand is specified in
- <filename>gdm.conf</filename> file.
+ the GDM configuration.
</para>
<para>
<filename>suspend</filename>, if SuspendCommand is specified in
- <filename>gdm.conf</filename> file.
+ the GDM configuration.
</para>
<para>
<filename>system</filename>, if SystemMenu is specified in
- <filename>gdm.conf</filename> file
+ the GDM configuration.
</para>
<para>
<filename>timed</filename>, if TimedLoginEnabled is set to "true" in
- <filename>gdm.conf</filename> file.
+ the GDM configuration.
</para>
<para>
@@ -5480,8 +5563,8 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
allows the user to change the visual appearance of the login UI
before logging in, for instance to use a higher-contrast color
scheme for better visibility. GDM only supports accessibility with
- the GTK+ Greeter, so the "Greeter" parameter in gdm.conf must be
- set to the GTK+ Greeter "gdmlogin".
+ the GTK+ Greeter, so the "Greeter" parameter in the GDM configuration
+ must be set to the GTK+ Greeter "gdmlogin".
</para>
<sect2 id="accessibilityconfig">
@@ -5490,20 +5573,21 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
In order to enable Accessible Login, the system administrator must
make some changes to the default login configuration by manually
modifying three human-readable configuration files, stored in
- gdm.conf, AccessKeyMouseEvents and AccessDwellMouseEvents.
+ the GDM configuration, AccessKeyMouseEvents and
+ AccessDwellMouseEvents.
</para>
<para>
In order to allow users to change the color and contrast scheme of
the login dialog, make sure the "AllowThemeChange" parameter in
- gdm.conf is set to "true".
+ the GDM configuration is set to "true".
</para>
<para>
To restrict user changes to the visual appearance to a subset of
- available themes, the "GtkThemesToAllow" parameter in gdm.conf can
- be set to a list of acceptable themes separated by commas. For
- example:
+ available themes, the "GtkThemesToAllow" parameter in the GDM
+ configuration can be set to a list of acceptable themes separated
+ by commas. For example:
</para>
<screen>GtkThemesToAllow=HighContrast,HighContrastInverse</screen>
@@ -5511,9 +5595,9 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
<para>
To enable the use of assistive technologies such as the Onscreen
Keyboard, Screen Reader, or Magnifier, the "AddGtkModules"
- parameter in gdm.conf must be uncommented and set to "true". Also
- the "GtkModulesList" parameter must be uncommented and set as
- follows:
+ parameter in the GDM configuration must be uncommented and set to
+ "true". Also the "GtkModulesList" parameter must be uncommented
+ and set as follows:
</para>
<screen>GtkModulesList=gail:atk-bridge:dwellmouselistener:keymouselistener</screen>
@@ -5578,6 +5662,17 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
</para>
<para>
+ Currently GDM does not remember what accessible technology
+ programs have been started when switching applications. So
+ if the user switches between the login program and the
+ chooser, for example, then it is necessary for the user to
+ redo the gesture. Users may need to also set up their default
+ session so that the assistive technologies required are
+ started automatically (or have appropriate key-bindings
+ defined to start them) after the user session has started.
+ </para>
+
+ <para>
There are some issues that cause some users to have problems
getting the gesture listeners to work. It is recommended that
people use GDM version 2.8.0.5 or later for best results.
@@ -5587,7 +5682,7 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
with a duration greater than 0 to always fail. A workaround
is to simply redefine all key gestures so they have zero length
duration. Some versions of GOK and gnopernicus will not launch
- unless the gdm user has a writable home directory. If you
+ unless the "gdm" user has a writable home directory. If you
see an hourglass cursor when you complete a gesture but the
program does not start, then you are likely having this problem.
Also note that some input devices require Xserver configuration
@@ -5597,12 +5692,14 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
<sect2 id="accessibilitysound">
<title>Accessibility Login Sound Configuration</title>
<para>
- By default, gdm requires a media application such as "sox" to be
- present to play login sounds. GDM defaults the location of this
- application to <filename>/usr/bin/play</filename> (or
+ By default, GDM requires a media application such as "sox" to be
+ present to play sounds for successful or failed login. GDM defaults
+ the location of this application to
+ <filename>/usr/bin/play</filename> (or
<filename>/usr/bin/audioplay</filename> on Solaris. This can
- be changed via the SoundProgram configuration option in
- <filename>gdm.conf</filename>.
+ be changed via the SoundProgram GDM configuration option.
+ Typically most text-to-speech programs (such as ORCA or
+ Gnopernicus) use a separate mechanism to play audio.
</para>
</sect2>
</sect1>
@@ -5624,7 +5721,7 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
this feature to be enabled, which is the normal case for Solaris.
This second feature has the side-effect of causing the Xserver to
always restart between sessions, which disables the
- AlwaysRestartServer gdm.conf configuration option.
+ AlwaysRestartServer configuration option.
</para>
<para>
diff --git a/docs/es/es.po b/docs/es/es.po
index c1f4d83b..b6adb4f5 100644
--- a/docs/es/es.po
+++ b/docs/es/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-12-12 22:55-0800\n"
+"POT-Creation-Date: 2005-12-20 00:07-0800\n"
"PO-Revision-Date: 2005-10-30 18:01+0100\n"
"Last-Translator: \n"
"Language-Team: <en@li.org>\n"
@@ -342,13 +342,21 @@ msgstr ""
#: ../C/gdm.xml:156 (para)
msgid ""
-"Upon startup the <command>gdm</command> daemon parses its config file "
-"<command>gdm.conf</command>. For each of the local displays <command>gdm</"
-"command> forks an Xserver and a slave process. The main <command>gdm</"
-"command> process will then listen to XDMCP requests, if so configured, from "
-"remote displays and monitor the local display sessions. The main daemon "
-"process will also allow starting of on new local Xservers on demand using "
-"the <command>gdmflexiserver</command> command."
+"Upon startup the <command>gdm</command> daemon parses the <filename>gdm."
+"conf</filename> and <filename>gdm.conf-custom</filename> configuration "
+"files. Configuration choices specified in <filename>gdm.conf-custom</"
+"filename> override values specified in the main <filename>gdm.conf</"
+"filename> file."
+msgstr ""
+
+#: ../C/gdm.xml:164 (para)
+#, fuzzy
+msgid ""
+"For each of the local displays <command>gdm</command> forks an Xserver and a "
+"slave process. The main <command>gdm</command> process will then listen to "
+"XDMCP requests, if so configured, from remote displays and monitor the local "
+"display sessions. The main daemon process will also allow starting of on new "
+"local Xservers on demand using the <command>gdmflexiserver</command> command."
msgstr ""
"Al iniciar el demonio <command>gdm</command> parsea su archivo de "
"configuración <command>gdm.conf</command>. Para cada una de las pantallas "
@@ -359,7 +367,7 @@ msgstr ""
"inicio de servidores X locales según la demanda usando el comando "
"<command>gdmflexiserver</command> "
-#: ../C/gdm.xml:167 (para)
+#: ../C/gdm.xml:173 (para)
msgid ""
"The <command>gdm</command> slave process opens the display and starts "
"<command>gdmlogin</command>, the graphical login application. "
@@ -379,7 +387,7 @@ msgstr ""
"<command>gdmgreeter</command> a veces se le denomina el Interfaz con temas, "
"mientras que <command>gdmlogin</command> se le denomina el Interfaz GTK+."
-#: ../C/gdm.xml:179 (para)
+#: ../C/gdm.xml:185 (para)
msgid ""
"GDM relies heavily on the presence of PAM, Pluggable Authentication Modules, "
"but supports regular crypt() and shadow passwords on legacy systems."
@@ -387,7 +395,7 @@ msgstr ""
"GDM depende de la presencia de PAM, Pluggable Authentication Modules, pero "
"soporta contraseñas heredades en crypt() y en shadow."
-#: ../C/gdm.xml:185 (para)
+#: ../C/gdm.xml:191 (para)
msgid ""
"Remote displays can connect to the XDMCP port on the GDM host. <command>gdm</"
"command> will grant access to hosts specified in the GDM service section in "
@@ -401,7 +409,7 @@ msgstr ""
"soporta el control de acceso en pantallas remotas en sistemas sin TCP "
"Wrappers. El soporte de XDMCP se puede desactivar completamente, sin embargo."
-#: ../C/gdm.xml:193 (para)
+#: ../C/gdm.xml:199 (para)
msgid ""
"GDM includes several measures making it more resistant to denial of service "
"attacks on the XDMCP service. A lot of the protocol parameters, handshaking "
@@ -414,7 +422,7 @@ msgstr ""
"predeterminado debería funcionar en la mayoría de sistemas, sin embargo. No "
"los cambie a menos que sepa lo que está haciendo."
-#: ../C/gdm.xml:201 (para)
+#: ../C/gdm.xml:207 (para)
msgid ""
"In general GDM is very reluctant regarding reading/writing of user files. "
"For instance it refuses to touch anything but regular files. Links, sockets "
@@ -428,7 +436,7 @@ msgstr ""
"parámetro RelaxPermissions determina si GDM debe aceptar archivos "
"escribibles por el grupo del usuario u otros. Éstos se ignoran por omisión."
-#: ../C/gdm.xml:209 (para)
+#: ../C/gdm.xml:215 (para)
msgid ""
"All operations on user files are done with the effective user id of the "
"user. If the sanity check fails on the user's <filename>.Xauthority</"
@@ -439,7 +447,7 @@ msgstr ""
"<filename>.Xauthority</filename> del usuario, se crea una cookie de "
"resguardo en <filename>/tmp</filename>"
-#: ../C/gdm.xml:216 (para)
+#: ../C/gdm.xml:222 (para)
msgid ""
"Note that normally it is assumed that the home directory is only readable by "
"the user. However NFS traffic really goes \"over the wire\" and thus can be "
@@ -463,7 +471,7 @@ msgstr ""
"cambiarse poniendo a «false» <filename>NeverPlaceCookiesOnNFS</filename> en "
"la sección <filename>[security]</filename>"
-#: ../C/gdm.xml:230 (para)
+#: ../C/gdm.xml:236 (para)
msgid ""
"GDM implements only the MIT-MAGIC-COOKIE-1 authorization scheme, see the "
"XDMCP section for more information about this, especially relating to using "
@@ -473,7 +481,7 @@ msgstr ""
"sección XDMCP para más información acerca de esto, especialmente relacionada "
"con el uso de X sobre red."
-#: ../C/gdm.xml:236 (para)
+#: ../C/gdm.xml:242 (para)
msgid ""
"Finally, the sysadmin can specify the maximum file size GDM should accept, "
"and, if the face browser is enabled, a tunable maximum icon size is also "
@@ -488,7 +496,7 @@ msgstr ""
"Mirar iconos en directorios personales, escalarlos y renderizarlos puede "
"llevar mucho tiempo."
-#: ../C/gdm.xml:245 (para)
+#: ../C/gdm.xml:251 (para)
msgid ""
"GDM also has a unix domain socket which can be used to control certain "
"aspects of behavior, or to query information about running servers or logged "
@@ -505,11 +513,11 @@ msgstr ""
"comando <command>gdmflexiserver</command> usa éste, para por ejemplo, "
"lanzar servidores X bajo demanda para el usuario."
-#: ../C/gdm.xml:258 (title)
+#: ../C/gdm.xml:264 (title)
msgid "Different Display Types"
msgstr "Tipos de pantalla diferentes"
-#: ../C/gdm.xml:260 (para)
+#: ../C/gdm.xml:266 (para)
msgid ""
"GDM allows 3 different display types. First local static X servers. These "
"are always run, and when they die or are killed, they are restarted. GDM can "
@@ -523,7 +531,7 @@ msgstr ""
"gestionar además servidores en los cuales no gestiona la entrada él mismo, "
"permitiendo usar GDM para construir terminales X,"
-#: ../C/gdm.xml:268 (para)
+#: ../C/gdm.xml:274 (para)
msgid ""
"Next GDM supports flexible or on demand servers which can be started via the "
"socket protocol with the <command>gdmflexiserver</command> command. This "
@@ -546,7 +554,7 @@ msgstr ""
"command> normalmente bloquea la sesión actual con un salvapantallas aantes "
"de iniciar un servidor nuevo."
-#: ../C/gdm.xml:281 (para)
+#: ../C/gdm.xml:287 (para)
msgid ""
"Last display type is the XDMCP remote displays that are described in the "
"next section. Remote hosts can connect to GDM and present the login screen "
@@ -560,11 +568,11 @@ msgstr ""
"estas sesiones, como el menú Acciones, que permite apagar, reiniciar o "
"configurar GDM no se mostrarán."
-#: ../C/gdm.xml:292 (title)
+#: ../C/gdm.xml:298 (title)
msgid "XDMCP"
msgstr "XDMCP"
-#: ../C/gdm.xml:296 (para)
+#: ../C/gdm.xml:302 (para)
msgid ""
"GDM also supports the X Display Manager Protocol (XDMCP) for managing remote "
"displays."
@@ -572,7 +580,7 @@ msgstr ""
"GDM además soporta el X Display Manager Protocol (XDMCP) para gestionar "
"pantallas remotas."
-#: ../C/gdm.xml:301 (para)
+#: ../C/gdm.xml:307 (para)
msgid ""
"GDM listens to UDP port 177 and will respond to QUERY and BROADCAST_QUERY "
"requests by sending a WILLING packet to the originator."
@@ -580,7 +588,7 @@ msgstr ""
"GDM escucha en el puerto UDP 177 y responderá a las peticiones QUERY y "
"BROADCAST_QUERY enviando un paquete WILLING al originador."
-#: ../C/gdm.xml:306 (para)
+#: ../C/gdm.xml:312 (para)
msgid ""
"GDM can also be configured to honor INDIRECT queries and present a host "
"chooser to the remote display. GDM will remember the user's choice and "
@@ -598,7 +606,7 @@ msgstr ""
"Esta extensión está soportada sólo si ambos demonios son GDM. Es "
"transparente y será ignorada por XDM u otros demonios que implementan XDMCP."
-#: ../C/gdm.xml:316 (para)
+#: ../C/gdm.xml:322 (para)
msgid ""
"GDM only supports the MIT-MAGIC-COOKIE-1 authentication system. Normally "
"little is gained from the other schemes, and no effort has been made to "
@@ -624,7 +632,7 @@ msgstr ""
"GDM. Podría pensar en XDMCP como una clase de telnet gráfico que tiene los "
"mismos problemas de seguridad."
-#: ../C/gdm.xml:331 (para)
+#: ../C/gdm.xml:337 (para)
msgid ""
"On the upside, GDM's random number generation is very anal and GDM goes to "
"extraordinary measures to truly get a 128 bit random number, using hardware "
@@ -651,7 +659,7 @@ msgstr ""
"(vea la clave de configuración de <filename>UserAuthDir</filename>). Así que "
"sea cuidadoso acerca de donde usa su display X remoto."
-#: ../C/gdm.xml:345 (para)
+#: ../C/gdm.xml:351 (para)
msgid ""
"Since it is fairly easy to do denial of service attacks on the XDMCP "
"service, GDM incorporates a few features to guard against attacks. Please "
@@ -662,7 +670,7 @@ msgstr ""
"dichos ataques. Por vavor lea la sección de referencias de XDMCP de abajo "
"para más información."
-#: ../C/gdm.xml:351 (para)
+#: ../C/gdm.xml:357 (para)
msgid ""
"Even though GDM tries to outsmart potential attackers, it is still advised "
"that you block UDP port 177 on your firewall unless you really need it. GDM "
@@ -678,7 +686,7 @@ msgstr ""
"controlados. Además cada conexión remota toma muchos recursos, así que es "
"más fácil hacer un DoS a un servidor XDMCP que a un servidor web."
-#: ../C/gdm.xml:360 (para)
+#: ../C/gdm.xml:366 (para)
msgid ""
"In addition to UDP port 177, you should also block all the X server ports "
"(TCP ports 6000 + display number) on the firewall as well. Do note that "
@@ -692,7 +700,7 @@ msgstr ""
"más altos (por ejemplo, el material de servidor bajo demanda). X no es un "
"protocolo muy seguro para dejarlo en la red, y XDMCP es incluso menos seguro."
-#: ../C/gdm.xml:368 (para)
+#: ../C/gdm.xml:374 (para)
msgid ""
"Even though your display is protected by cookies the XEvents and thus the "
"keystrokes typed when entering passwords will still go over the wire in "
@@ -710,7 +718,7 @@ msgstr ""
"de directorios personales NFS debería usar <filename>UserAuthDir</filename> "
"y enviarlas a algún directorio local temporal."
-#: ../C/gdm.xml:378 (para)
+#: ../C/gdm.xml:384 (para)
msgid ""
"XDMCP is primarily useful for running thin clients such as in terminal labs. "
"Those thin clients will only ever need the network to access the server, and "
@@ -726,11 +734,11 @@ msgstr ""
"desde el mundo exterior, y sólo pueda conectarse al servidor. El único punto "
"desde el que necesita acceder desde fuera es el servidor."
-#: ../C/gdm.xml:389 (title)
+#: ../C/gdm.xml:395 (title)
msgid "XDMCP Access Control"
msgstr "Control de acceso XDMCP"
-#: ../C/gdm.xml:393 (para)
+#: ../C/gdm.xml:399 (para)
msgid ""
"XDMCP access control is done using TCP wrappers. It is possible to compile "
"GDM without TCP wrappers however, so you should test your configuration to "
@@ -740,7 +748,7 @@ msgstr ""
"compilar GDM sin TCP wrappers sin embargo, así que debería comprobar su "
"configuración para ver si funciona."
-#: ../C/gdm.xml:399 (para)
+#: ../C/gdm.xml:405 (para)
msgid ""
"You should use the daemon name <command>gdm</command> in the <filename>&lt;"
"etc&gt;/hosts.allow</filename> and <filename>&lt;etc&gt;hosts.deny</"
@@ -752,23 +760,23 @@ msgstr ""
"etc&gt;hosts.deny</filename>. Por ejemplo para denegar la entrada a equipos "
"de <filename>.evil.domain</filename> , añada"
-#: ../C/gdm.xml:406 (screen)
+#: ../C/gdm.xml:412 (screen)
#, no-wrap
msgid "gdm: .evil.domain"
msgstr "gdm: .dominio.maligno"
-#: ../C/gdm.xml:407 (para)
+#: ../C/gdm.xml:413 (para)
msgid ""
"to <filename>&lt;etc&gt;/hosts.deny</filename>. You may also need to add"
msgstr ""
"a <filename>&lt;etc&gt;/hosts.deny</filename>. También necesitará añadir "
-#: ../C/gdm.xml:411 (screen)
+#: ../C/gdm.xml:417 (screen)
#, no-wrap
msgid "gdm: .your.domain"
msgstr "gdm: .su.dominio"
-#: ../C/gdm.xml:412 (para)
+#: ../C/gdm.xml:418 (para)
msgid ""
"to your <filename>&lt;etc&gt;/hosts.allow</filename> if you normally "
"disallow all services from all hosts. See the <ulink type=\"help\" url=\"man:"
@@ -779,7 +787,7 @@ msgstr ""
"type=\"help\" url=\"man:hosts.allow\">hosts.allow(5)</ulink> para más "
"detalles."
-#: ../C/gdm.xml:419 (para)
+#: ../C/gdm.xml:425 (para)
msgid ""
"Even though GDM now tries very hard to ignore things coming from banned "
"hosts you should not rely on the TCP Wrappers for complete protection. It is "
@@ -791,11 +799,11 @@ msgstr ""
"Es mejor bloquear el puerto 177 UDP (y todos los puertos X que sean puertos "
"TCP 6000 + el número del display por supuesto) en su cortafuegos."
-#: ../C/gdm.xml:429 (title)
+#: ../C/gdm.xml:435 (title)
msgid "The GDM Face Browser"
msgstr "El visor de rostros de GDM"
-#: ../C/gdm.xml:431 (para)
+#: ../C/gdm.xml:437 (para)
msgid ""
"GDM supports a face browser which will display a list of users who can login "
"and an icon for each user. This feature can be used with the GTK+ Greeter if "
@@ -810,7 +818,7 @@ msgstr ""
"el Interfaz con Temas si usa un tema de GDM que incluya un tipo de elemento "
"\"userlist\", tal como \"happygnome-list\""
-#: ../C/gdm.xml:441 (para)
+#: ../C/gdm.xml:447 (para)
msgid ""
"By default, the face browser is disabled since revealing usernames on the "
"login screen is not appropriate on many systems for security reasons and "
@@ -826,7 +834,7 @@ msgstr ""
"command>. Esta característica es más práctica de usar en un sistema con un "
"número pequeño de usuarios."
-#: ../C/gdm.xml:450 (para)
+#: ../C/gdm.xml:456 (para)
msgid ""
"The icons used by GDM can be installed globally by the sysadmin or can be "
"located in the users' home directories. If installed globally they should be "
@@ -849,7 +857,7 @@ msgstr ""
"embargo, el demonio, proximiza las fotografías de los usuarios al interfaz y "
"debido a esto no tienen que ser leíbles por el usuario GDM sino por el root."
-#: ../C/gdm.xml:463 (para)
+#: ../C/gdm.xml:469 (para)
msgid ""
"Users may run the <command>gdmphotosetup</command> command to configure the "
"image to use for their userid. This program properly scales the file down if "
@@ -870,7 +878,7 @@ msgstr ""
"estén escaladas de forma adecuada así que un usuario puede crear su archivo "
"<filename>~/.face</filename> a mano."
-#: ../C/gdm.xml:475 (para)
+#: ../C/gdm.xml:481 (para)
msgid ""
"GDM will first look for the user's face image in <filename>~/.face</"
"filename>. If not found, it will try <filename>~/.face.icon</filename>. If "
@@ -887,7 +895,7 @@ msgstr ""
"photo</filename> los cuales están obsoletos y se soportan por compatibilidad "
"hacia atrás."
-#: ../C/gdm.xml:486 (para)
+#: ../C/gdm.xml:492 (para)
msgid ""
"If a user has no defined face image, GDM will use the \"stock_person\" icon "
"defined in the current GTK+ theme. If no such image is defined, it will "
@@ -900,20 +908,20 @@ msgstr ""
"configuración <filename>DefaultFace</filename> como resguardo, normalmente /"
"usr/share/pixmaps/nobody.png."
-#: ../C/gdm.xml:494 (para)
+#: ../C/gdm.xml:500 (para)
+#, fuzzy
msgid ""
"Please note that loading and scaling face icons located in user home "
"directories can be a very time consuming task. Since it not practical to "
"load images over NIS or NFS, GDM does not attempt to load face images from "
"remote home directories. Furthermore, GDM will give up loading face images "
"after 5 seconds of activity and will only display the users whose pictures "
-"it has gotten so far. The <filename>gdm.conf</filename><filename>Include</"
-"filename> option can be used to specify a set of users who should appear on "
-"the face browser. As long as the users to include is of a reasonable size, "
-"there should not be a problem with GDM being unable to access the face "
-"images. To work around these problems, it is recommended to place face "
-"images in the directory specified by the <filename>GlobalFaceDir</filename> "
-"configuration option."
+"it has gotten so far. The <filename>Include</filename> configuration option "
+"can be used to specify a set of users who should appear on the face browser. "
+"As long as the users to include is of a reasonable size, there should not be "
+"a problem with GDM being unable to access the face images. To work around "
+"these problems, it is recommended to place face images in the directory "
+"specified by the <filename>GlobalFaceDir</filename> configuration option."
msgstr ""
"Note que cargar y escalar los iconos de rostros situados en los directorios "
"personales de los usuarios puede ser una tarea que consuma mucho tiempo. "
@@ -929,7 +937,7 @@ msgstr ""
"las imágenes de rostros en el directorio especificado por la opción de "
"configuración <filename>GlobalFaceDir</filename>."
-#: ../C/gdm.xml:510 (para)
+#: ../C/gdm.xml:516 (para)
msgid ""
"To control the users who get displayed in the face browser, there are a "
"number of configuration options that can be used. If the "
@@ -953,7 +961,7 @@ msgstr ""
"sea inferior a <filename>MinimalUID</filename> se filtrarán con "
"independencia de lo que esté establecido en <filename>IncludeAll</filename>."
-#: ../C/gdm.xml:524 (para)
+#: ../C/gdm.xml:530 (para)
msgid ""
"When the browser is turned on, valid usernames on the computer are "
"inherently exposed to a potential intruder. This may be a bad idea if you "
@@ -968,11 +976,11 @@ msgstr ""
"embargo nunca debería ejecutar XDMCP en una red abierta bajo ninguna "
"circunstancia."
-#: ../C/gdm.xml:534 (title)
+#: ../C/gdm.xml:540 (title)
msgid "The GTK+ Greeter"
msgstr "El interfaz GTK+"
-#: ../C/gdm.xml:536 (para)
+#: ../C/gdm.xml:542 (para)
msgid ""
"The GTK+ Greeter is the default graphical user interface that is presented "
"to the user. The greeter contains a menu at the top, an optional face "
@@ -982,7 +990,7 @@ msgstr ""
"usuario. El interfaz contiene un menú en la parte superior, un visor de "
"rostros opcional, un logo opcional y un widget para entrada de texto."
-#: ../C/gdm.xml:542 (para)
+#: ../C/gdm.xml:548 (para)
msgid ""
"The text entry field is used for entering logins, passwords, passphrases "
"etc. <command>gdmlogin</command> is controlled by the underlying daemon and "
@@ -1000,7 +1008,7 @@ msgstr ""
"la etiqueta sobre la entrada de texto para corresponder con el valor que el "
"sistema de autenticación quiere que el usuario introduzca."
-#: ../C/gdm.xml:552 (para)
+#: ../C/gdm.xml:558 (para)
msgid ""
"The menu bar in the top of the greeter enables the user to select the "
"requested session type/desktop environment, select an appropriate locale/"
@@ -1009,7 +1017,7 @@ msgid ""
"XDMCP chooser."
msgstr ""
-#: ../C/gdm.xml:560 (para)
+#: ../C/gdm.xml:566 (para)
msgid ""
"The greeter can optionally display a logo in the login window. The image "
"must be in a format readable to the gdk-pixbuf library (GIF, JPG, PNG, TIFF, "
@@ -1017,11 +1025,11 @@ msgid ""
"<filename>Logo</filename> option in the reference section below for details."
msgstr ""
-#: ../C/gdm.xml:571 (title)
+#: ../C/gdm.xml:577 (title)
msgid "The Themed Greeter"
msgstr "El interfaz con temas"
-#: ../C/gdm.xml:573 (para)
+#: ../C/gdm.xml:579 (para)
msgid ""
"The Themed Greeter is a greeter interface that takes up the whole screen and "
"is very themable. Themes can be selected and new themes can be installed by "
@@ -1033,7 +1041,7 @@ msgstr ""
"aplicación de configuración o estableciendo la clave de configuración "
"<filename>GraphicalTheme</filename>."
-#: ../C/gdm.xml:580 (para)
+#: ../C/gdm.xml:586 (para)
msgid ""
"The look and feel of this greeter is really controlled by the theme and so "
"the user interface elements that are present may be different. The only "
@@ -1045,7 +1053,7 @@ msgstr ""
"diferentes. La única cosa que debe estar presente siempre es el campo de "
"entrada de texto tal como se describe arriba en el interfaz GTK+."
-#: ../C/gdm.xml:587 (para)
+#: ../C/gdm.xml:593 (para)
msgid ""
"You can always get a menu of available actions by pressing the F10 key. This "
"can be useful if the theme doesn't provide certain buttons when you really "
@@ -1055,11 +1063,11 @@ msgstr ""
"F10. Esto puede ser útil si el tema no proporciona ciertos botones cuando "
"realmente quiere hacer alguna acción."
-#: ../C/gdm.xml:596 (title)
+#: ../C/gdm.xml:602 (title)
msgid "Logging"
msgstr "Registro de actividad"
-#: ../C/gdm.xml:598 (para)
+#: ../C/gdm.xml:604 (para)
msgid ""
"GDM itself will use syslog to log errors or status. It can also log "
"debugging information, which can be useful for tracking down problems if GDM "
@@ -1070,7 +1078,7 @@ msgstr ""
"encontrar problemas si GDM no funciona apropiadamente. Esto puede activarse "
"en el archivo de configuración."
-#: ../C/gdm.xml:605 (para)
+#: ../C/gdm.xml:611 (para)
msgid ""
"Output from the various X servers is stored in the GDM log directory, which "
"is configurable, but is usually <filename>&lt;var&gt;/log/gdm/</filename>. "
@@ -1081,7 +1089,7 @@ msgid ""
"logs to view what the X server said when it started up."
msgstr ""
-#: ../C/gdm.xml:617 (para)
+#: ../C/gdm.xml:623 (para)
msgid ""
"The output from the user session is redirected to <filename>~/.xsession-"
"errors</filename> before even the <filename>PreSession</filename> script is "
@@ -1093,7 +1101,7 @@ msgid ""
"problem this way."
msgstr ""
-#: ../C/gdm.xml:629 (para)
+#: ../C/gdm.xml:635 (para)
msgid ""
"You can suppress the 10 second warning by returning code 66 from the "
"<filename>Xsession</filename>script or from your session binary (the default "
@@ -1104,7 +1112,7 @@ msgid ""
"redundant."
msgstr ""
-#: ../C/gdm.xml:639 (para)
+#: ../C/gdm.xml:645 (para)
msgid ""
"The session output is piped through the GDM daemon and so the <filename>~/."
"xsession-errors</filename> file is capped at about 200 kilobytes by GDM to "
@@ -1117,7 +1125,7 @@ msgid ""
"was redirected in the old fashioned way from the script."
msgstr ""
-#: ../C/gdm.xml:652 (para)
+#: ../C/gdm.xml:658 (para)
msgid ""
"Note that some distributors seem to override the <filename>~/.xsession-"
"errors</filename> redirection and do it themselves in their own Xsession "
@@ -1130,7 +1138,7 @@ msgid ""
"especially on how to handle multiple display managers using the same script."
msgstr ""
-#: ../C/gdm.xml:666 (para)
+#: ../C/gdm.xml:672 (para)
msgid ""
"Note that if the session is a failsafe session, or if GDM can't open this "
"file for some reason, then a fallback file will be created in the <filename>/"
@@ -1138,18 +1146,18 @@ msgid ""
"filename> where the <filename>XXXXXX</filename> are some random characters."
msgstr ""
-#: ../C/gdm.xml:674 (para)
+#: ../C/gdm.xml:680 (para)
msgid ""
"If you run a system with quotas set, it would be good to delete the "
"<filename>~/.xsession-errors</filename> in the <filename>PostSession</"
"filename> script. Such that this log file doesn't unnecessarily stay around."
msgstr ""
-#: ../C/gdm.xml:684 (title)
+#: ../C/gdm.xml:690 (title)
msgid "Security and the GDM User"
msgstr ""
-#: ../C/gdm.xml:686 (para)
+#: ../C/gdm.xml:692 (para)
msgid ""
"The GDM daemon normally runs as root, as does the slave. However GDM should "
"also have a dedicated user id and a group id which it uses for its graphical "
@@ -1158,7 +1166,7 @@ msgid ""
"[daemon]</filename> section of the configuration file."
msgstr ""
-#: ../C/gdm.xml:695 (para)
+#: ../C/gdm.xml:701 (para)
msgid ""
"The GDM user, and group, which are normally just <command>gdm</command> "
"should not be user or group of any particular privilege. The reason for "
@@ -1167,7 +1175,7 @@ msgid ""
"cannot access root on the computer."
msgstr ""
-#: ../C/gdm.xml:704 (para)
+#: ../C/gdm.xml:710 (para)
msgid ""
"It should however be noted that the GDM user and group have some privileges "
"that make them somewhat dangerous. For one they have access to the server "
@@ -1179,7 +1187,7 @@ msgid ""
"<filename>nobody</filename>."
msgstr ""
-#: ../C/gdm.xml:716 (para)
+#: ../C/gdm.xml:722 (para)
msgid ""
"The server authorization directory (the <filename>ServAuthDir</filename>) is "
"used for a host of random internal data in addition to the X server "
@@ -1190,7 +1198,7 @@ msgid ""
"files from this directory, such as the X server authorization files."
msgstr ""
-#: ../C/gdm.xml:728 (para)
+#: ../C/gdm.xml:734 (para)
msgid ""
"GDM by default doesn't trust the server authorization directory and treats "
"it in the same way as the temporary directory with respect to creating "
@@ -1200,7 +1208,7 @@ msgid ""
"by root."
msgstr ""
-#: ../C/gdm.xml:737 (para)
+#: ../C/gdm.xml:743 (para)
msgid ""
"Anybody found not using a dedicated user for GDM should be whacked over the "
"head with a large, blunt, heavy and rusty object, although the rusty "
@@ -1208,11 +1216,11 @@ msgid ""
"develop rust."
msgstr ""
-#: ../C/gdm.xml:748 (title)
+#: ../C/gdm.xml:754 (title)
msgid "Configuration"
msgstr "Configuración"
-#: ../C/gdm.xml:750 (para)
+#: ../C/gdm.xml:756 (para)
msgid ""
"This section will cover the configuration of GDM and the format of the "
"configuration file. However you can use the <command>gdmsetup</command> "
@@ -1222,53 +1230,53 @@ msgid ""
"in this section."
msgstr ""
-#: ../C/gdm.xml:759 (para)
+#: ../C/gdm.xml:765 (para)
msgid ""
-"The configuration files (especially the <filename>gdm.conf</filename> file) "
-"contain lots of useful comments and examples, so also read this for more "
-"information about changing your setup."
+"The configuration files (especially the <filename>gdm.conf</filename> and "
+"<filename>gdm.conf-custom</filename> files) contain lots of useful comments "
+"and examples, so also read this for more information about changing your "
+"setup."
msgstr ""
-#: ../C/gdm.xml:765 (para)
+#: ../C/gdm.xml:772 (para)
msgid ""
"Some keys in the configuration file as shipped are commented out while "
"others are set. This is done so that defaults can be easily changed in the "
-"future for some keys. If you wish to set such a key you must first remove "
-"the leading hash mark that marks it as a comment."
+"future for some keys. GDM considers lines that start with the \"#\" "
+"character a comment, and these lines will be ignored by GDM."
msgstr ""
-#: ../C/gdm.xml:772 (para)
+#: ../C/gdm.xml:779 (para)
msgid ""
-"The <filename>gdm.conf</filename> file contains the main configuration "
-"choices for GDM."
+"The <filename>gdm.conf</filename> file contains the default configuration "
+"choices for GDM, and should not be modified by the user. The <filename>gdm."
+"conf-custom</filename> file is where users may specify their custom "
+"configuration choices. Configuration options specified in the <filename>gdm."
+"conf-custom</filename> file override the values in the main <filename>gdm."
+"conf</filename> file. Running the <command>gdmsetup</command> command will "
+"cause the <filename>gdm.conf-custom</filename> to be modified with the "
+"user's configuration choices and will cause any running GDM GUI programs to "
+"automatically update."
msgstr ""
-"El archivo de configuración <filename>gdm.conf</filename> contiene las "
-"opciones de configuración principales de GDM."
-#: ../C/gdm.xml:777 (para)
+#: ../C/gdm.xml:792 (para)
msgid ""
-"GDM may be configured to support both system-wide configuration if built "
-"with the <command>--with-configdir</command> option. This allows the gdm."
-"conf file to be installed to a directory that can be mounted across multiple-"
-"systems. Regardless of whether this option is used, GDM will first look for "
-"the gdm.conf file in the <filename>&lt;etc&gt;/gdm</filename> directory. "
-"This way machine-specific configuration always overrides the system-wide "
-"defaults. The gdm --config option may also be used to specify the "
-"configuration file location. All GDM utilities (such as <command>gdmchooser</"
-"command>, <command>gdmsetup</command>, etc.) query the GDM daemon process "
-"and will use the same configuration file as being used by the daemon. The "
-"GDM2 daemon must be restarted to change the configuration file being used. "
-"GDM 2.8.0.1 and earlier only supported machine-specific configuration."
+"GDM may be configured to support system-wide configuration if built with the "
+"<command>--with-configdir</command> option. This allows the gdm.conf file to "
+"be installed to a directory that can be mounted across multiple-systems. The "
+"GDM --config option may also be used to specify the configuration file "
+"location. The GDM2 daemon must be restarted to change the configuration file "
+"being used."
msgstr ""
-#: ../C/gdm.xml:794 (para)
+#: ../C/gdm.xml:802 (para)
msgid ""
"<filename>factory-gdm.conf</filename> is the configuration file as shipped "
"with the daemon. This can be useful if you wish to revert to the default "
"configuration."
msgstr ""
-#: ../C/gdm.xml:800 (para)
+#: ../C/gdm.xml:808 (para)
msgid ""
"The other GDM configuration files are located, by default, in the "
"<filename>&lt;etc&gt;/gdm/</filename> folder or its subdirectories. However, "
@@ -1277,11 +1285,11 @@ msgid ""
"any location."
msgstr ""
-#: ../C/gdm.xml:808 (para)
+#: ../C/gdm.xml:816 (para)
msgid "This is a listing of the config directory contents:"
msgstr ""
-#: ../C/gdm.xml:812 (screen)
+#: ../C/gdm.xml:820 (screen)
#, no-wrap
msgid ""
"\n"
@@ -1296,7 +1304,7 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:824 (para)
+#: ../C/gdm.xml:832 (para)
msgid ""
"<filename>locale.alias</filename> is a file which looks much like the system "
"locale alias but in fact it is not the same. These are the languages that "
@@ -1304,20 +1312,20 @@ msgid ""
"they actually exist before presenting them to the user."
msgstr ""
-#: ../C/gdm.xml:832 (para)
+#: ../C/gdm.xml:840 (para)
msgid ""
"The <filename>Init</filename>, <filename>PreSession</filename>, "
"<filename>PostSession</filename>, and <filename>PostLogin</filename> scripts "
"are described later in this section."
msgstr ""
-#: ../C/gdm.xml:838 (para)
+#: ../C/gdm.xml:846 (para)
msgid ""
"<filename>Xsession</filename> is a script which sets up a user session and "
"then executes the users choice of session."
msgstr ""
-#: ../C/gdm.xml:843 (para)
+#: ../C/gdm.xml:851 (para)
msgid ""
"<filename>XKeepsCrashing</filename> is a script which gets run when the X "
"server keeps crashing and we cannot recover. The shipped default script will "
@@ -1325,14 +1333,7 @@ msgid ""
"application provided the person on the console knows the root password."
msgstr ""
-#: ../C/gdm.xml:851 (para)
-msgid ""
-"<filename>gdm.conf</filename> configuration settings are used by most GDM "
-"applications since a number of configuration settings are used by each "
-"program."
-msgstr ""
-
-#: ../C/gdm.xml:857 (para)
+#: ../C/gdm.xml:859 (para)
msgid ""
"Accessibility modules are configured in the <filename>modules/</filename> "
"subdirectory, and are a separate topic. Read the default files provided, "
@@ -1342,7 +1343,7 @@ msgid ""
"revert to default config."
msgstr ""
-#: ../C/gdm.xml:866 (para)
+#: ../C/gdm.xml:868 (para)
msgid ""
"Files describing available GDM session follow the freedesktop.org desktop "
"file specification and are <filename>.desktop</filename>-style files are "
@@ -1364,7 +1365,7 @@ msgid ""
"<filename>&lt;etc&gt;/dm/Sessions/</filename> was being read."
msgstr ""
-#: ../C/gdm.xml:889 (para)
+#: ../C/gdm.xml:891 (para)
msgid ""
"A session can be disabled (if it was installed in <filename>/usr/share/"
"xsessions/</filename>) by adding an identically named <filename>.desktop</"
@@ -1373,18 +1374,18 @@ msgid ""
"<filename>Hidden=true</filename> in that file."
msgstr ""
-#: ../C/gdm.xml:898 (title)
+#: ../C/gdm.xml:900 (title)
msgid "The Script Directories"
msgstr ""
-#: ../C/gdm.xml:900 (para)
+#: ../C/gdm.xml:902 (para)
msgid ""
"In this section we will explain the <filename>Init</filename>, "
"<filename>PostLogin</filename>, <filename>PreSession</filename> and "
"<filename>PostSession</filename> directories as they are very similar."
msgstr ""
-#: ../C/gdm.xml:906 (para)
+#: ../C/gdm.xml:908 (para)
msgid ""
"When the X server has been successfully started, GDM will try to run the "
"script called <filename>Init/&lt;displayname&gt;</filename>. I.e. "
@@ -1400,15 +1401,14 @@ msgid ""
"the background etc. goes in this file too."
msgstr ""
-#: ../C/gdm.xml:924 (para)
+#: ../C/gdm.xml:926 (para)
msgid ""
"It is up to the sysadmin to decide whether clients started by the Init "
"script should be killed before starting the user session. This is controlled "
-"with the <filename>KillInitClients</filename> option in <filename>gdm.conf</"
-"filename>."
+"with the <filename>KillInitClients</filename> configuration option."
msgstr ""
-#: ../C/gdm.xml:931 (para)
+#: ../C/gdm.xml:933 (para)
msgid ""
"When the user has been successfully authenticated GDM tries the scripts in "
"the <filename>PostLogin</filename> directory in the same manner as for the "
@@ -1422,7 +1422,7 @@ msgid ""
"failsafe session however."
msgstr ""
-#: ../C/gdm.xml:945 (para)
+#: ../C/gdm.xml:947 (para)
msgid ""
"After the user session has been setup from the GDM side of things, GDM will "
"run the scripts in the <filename>PreSession</filename> directory, again in "
@@ -1437,7 +1437,7 @@ msgid ""
"accounting application."
msgstr ""
-#: ../C/gdm.xml:960 (para)
+#: ../C/gdm.xml:962 (para)
msgid ""
"After this the base <filename>Xsession</filename> script is run with the "
"selected session executable as the first argument. This is run as the user, "
@@ -1450,7 +1450,7 @@ msgid ""
"the file <filename>~/.dmrc</filename> for the stored preference."
msgstr ""
-#: ../C/gdm.xml:973 (para)
+#: ../C/gdm.xml:975 (para)
msgid ""
"This script should really load the users profile and generally do all the "
"voodoo that is needed to launch a session. Since many systems reset the "
@@ -1461,7 +1461,7 @@ msgid ""
"is not set."
msgstr ""
-#: ../C/gdm.xml:983 (para)
+#: ../C/gdm.xml:985 (para)
msgid ""
"When the user terminates his session, the <filename>PostSession</filename> "
"script will be run. Again operation is similar to <filename>Init</filename>, "
@@ -1476,14 +1476,14 @@ msgid ""
"accounting application."
msgstr ""
-#: ../C/gdm.xml:998 (para)
+#: ../C/gdm.xml:1000 (para)
msgid ""
"Note that the <filename>PostSession</filename> script will be run even when "
"the display fails to respond due to an I/O error or similar. Thus, there is "
"no guarantee that X applications will work during script execution."
msgstr ""
-#: ../C/gdm.xml:1005 (para)
+#: ../C/gdm.xml:1007 (para)
msgid ""
"Except for the <filename>Xsession</filename> script all of these scripts "
"will also have the environment variable <filename>$RUNNING_UNDER_GDM</"
@@ -1496,7 +1496,7 @@ msgid ""
"KDM in future versions."
msgstr ""
-#: ../C/gdm.xml:1019 (para)
+#: ../C/gdm.xml:1021 (para)
msgid ""
"Neither of the <filename>Init</filename>, <filename>PostLogin</filename>, "
"<filename>PreSession</filename> or <filename>PostSession</filename> scripts "
@@ -1505,64 +1505,89 @@ msgid ""
"filename> file."
msgstr ""
-#: ../C/gdm.xml:1030 (title)
-msgid "The Configuration File - <filename>gdm.conf</filename>"
+#: ../C/gdm.xml:1032 (title)
+msgid ""
+"The Configuration File - <filename>gdm.conf</filename> and <filename>gdm."
+"conf-custom</filename>"
+msgstr ""
+
+#: ../C/gdm.xml:1035 (para)
+msgid ""
+"GDM uses two configuration files: <filename>gdm.conf</filename> and "
+"<filename>gdm.conf-custom</filename>. The <filename>gdm.conf</filename> file "
+"contains the default configuration choices for GDM, and should not be "
+"modified by the user. The <filename>gdm.conf-custom</filename> file is where "
+"users may specify their custom configuration choices. Configuration options "
+"specified in the <filename>gdm.conf-custom</filename> file override the "
+"values in the main <filename>gdm.conf</filename> file. If a configuration "
+"option is not defined in either file, GDM will default to the value "
+"described in the comments in the <filename>gdm.conf</filename> file."
msgstr ""
-#: ../C/gdm.xml:1032 (para)
+#: ../C/gdm.xml:1050 (para)
msgid ""
-"The daemon and the accompanying utilities use a common configuration file: "
-"<filename>gdm.conf</filename>. GDM may be configured to support both system-"
-"wide configuration if built with the <command>--with-configdir</command> "
-"option. This allows the gdm.conf file to be installed to a directory that "
-"can be mounted across multiple-systems. Regardless of whether this option is "
-"used, GDM will first look for the gdm.conf file in the <filename>&lt;etc&gt;/"
-"gdm</filename> directory. This way machine-specific configuration always "
-"overrides the system-wide defaults. The gdm --config option may instead be "
-"used to specify a configuration file installed to another location. All GDM "
-"utilities (such as All GDM utilities (such as <command>gdmchooser</command>, "
-"<command>gdmsetup</command>, etc.) query the GDM daemon process and will use "
-"the same configuration file as being used by the daemon. The GDM2 daemon "
-"must be restarted to change the configuration file being used. GDM 2.8.0.1 "
-"and earlier only supported machine-specific configuration."
+"Running the <command>gdmsetup</command> command will cause the <filename>gdm."
+"conf-custom</filename> to be modified with the user's configuration choices."
msgstr ""
-#: ../C/gdm.xml:1052 (para)
+#: ../C/gdm.xml:1056 (para)
msgid ""
-"The configuration file is divided into sections each containing variables "
-"that define the behavior for a specific part of the GDM suite. The file is "
-"fairly well commented as well."
+"Previous to GDM 2.13.0.4 only the <filename>gdm.conf</filename> existed. If "
+"upgrading to the new version of GDM, install will check to see if your "
+"<filename>gdm.conf</filename> file is different than your <filename>factory-"
+"gdm.conf</filename> file. If so, your <filename>gdm.conf</filename> file "
+"will be automatically copied to <filename>gdm.conf-custom</filename> to "
+"preserve your configuration changes."
msgstr ""
-#: ../C/gdm.xml:1058 (para)
+#: ../C/gdm.xml:1066 (para)
msgid ""
-"<filename>gdm.conf</filename> follows the standard <filename>.ini</filename> "
-"style configuration file syntax. Keywords in brackets define sections, "
-"strings before an equal sign (=) are variables and the data after equal sign "
-"represents their value. Empty lines or lines starting with the hash mark (#) "
-"are ignored. The graphical configurator will try to preserve both comments "
-"(lines with a hash mark) and the overall structure of the file so you can "
-"intermix using the GUI or hand editing the configuration file."
+"GDM may be configured to support system-wide configuration if built with the "
+"<command>--with-configdir</command> option. This allows the <filename>gdm."
+"conf</filename> file to be installed to a directory that can be mounted "
+"across multiple-systems. The GDM --config option may instead be used to "
+"specify a configuration file installed to another location. The GDM2 daemon "
+"must be restarted to change the configuration file being used."
msgstr ""
-#: ../C/gdm.xml:1070 (title)
+#: ../C/gdm.xml:1076 (para)
+msgid ""
+"Both configuration files are divided into sections each containing variables "
+"that define the behavior for a specific part of the GDM suite. Refer to the "
+"comments in the <filename>gdm.conf</filename> file for additional "
+"information about each configuration setting."
+msgstr ""
+
+#: ../C/gdm.xml:1083 (para)
+msgid ""
+"The <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename> "
+"files follow the standard <filename>.ini</filename> style configuration file "
+"syntax. Keywords in brackets define sections, strings before an equal sign "
+"(=) are variables and the data after equal sign represents their value. "
+"Empty lines or lines starting with the hash mark (#) are ignored. The "
+"graphical configurator will try to preserve both comments (lines with a hash "
+"mark) and the overall structure of the file so you can intermix using the "
+"GUI or hand editing the configuration file."
+msgstr ""
+
+#: ../C/gdm.xml:1096 (title)
msgid "Daemon Configuration"
msgstr "Configuración del demonio"
-#: ../C/gdm.xml:1073 (title)
+#: ../C/gdm.xml:1099 (title)
msgid "[daemon]"
msgstr "[daemon]"
-#: ../C/gdm.xml:1076 (term)
+#: ../C/gdm.xml:1102 (term)
msgid "AddGtkModules"
msgstr "AddGtkModules"
-#: ../C/gdm.xml:1078 (synopsis)
+#: ../C/gdm.xml:1104 (synopsis)
#, no-wrap
msgid "AddGtkModules=false"
msgstr "AddGtkModules=false"
-#: ../C/gdm.xml:1079 (para)
+#: ../C/gdm.xml:1105 (para)
msgid ""
"If true, then enables <command>gdmgreeter</command> or <command>gdmlogin</"
"command> to be launched with additional Gtk+ modules. This is useful when "
@@ -1570,22 +1595,22 @@ msgid ""
"\"trusted\" modules should be used to minimize security issues."
msgstr ""
-#: ../C/gdm.xml:1086 (para)
+#: ../C/gdm.xml:1112 (para)
msgid ""
"Usually this is used for accessibility modules. The modules which are loaded "
"are specified with the <filename>GtkModulesList</filename> key."
msgstr ""
-#: ../C/gdm.xml:1095 (term)
+#: ../C/gdm.xml:1121 (term)
msgid "AlwaysRestartServer"
msgstr "AlwaysRestartServer"
-#: ../C/gdm.xml:1097 (synopsis)
+#: ../C/gdm.xml:1123 (synopsis)
#, no-wrap
msgid "AlwaysRestartServer=false"
msgstr "AlwaysRestartServer=false"
-#: ../C/gdm.xml:1098 (para)
+#: ../C/gdm.xml:1124 (para)
msgid ""
"If true, then gdm never tries to reuse existing X servers by reinitializing "
"them. It will just kill the existing server and start over. Normally, just "
@@ -1594,16 +1619,16 @@ msgid ""
"and this configuration setting is ignored."
msgstr ""
-#: ../C/gdm.xml:1110 (term)
+#: ../C/gdm.xml:1136 (term)
msgid "AutomaticLoginEnable"
msgstr "AutomaticLoginEnable"
-#: ../C/gdm.xml:1112 (synopsis)
+#: ../C/gdm.xml:1138 (synopsis)
#, no-wrap
msgid "AutomaticLoginEnable=false"
msgstr "AutomaticLoginEnable=false"
-#: ../C/gdm.xml:1113 (para)
+#: ../C/gdm.xml:1139 (para)
msgid ""
"If the user given in AutomaticLogin should be logged in upon first bootup. "
"No password will be asked. This is useful for single user workstations where "
@@ -1611,16 +1636,16 @@ msgid ""
"terminals, although there see <filename>TimedLogin</filename>."
msgstr ""
-#: ../C/gdm.xml:1124 (term)
+#: ../C/gdm.xml:1150 (term)
msgid "AutomaticLogin"
msgstr "AutomaticLogin"
-#: ../C/gdm.xml:1126 (synopsis)
+#: ../C/gdm.xml:1152 (synopsis)
#, no-wrap
msgid "AutomaticLogin="
msgstr "AutomaticLogin="
-#: ../C/gdm.xml:1127 (para)
+#: ../C/gdm.xml:1153 (para)
msgid ""
"This user should be automatically logged in on first bootup. "
"AutomaticLoginEnable must be true and this must be a valid user for this to "
@@ -1628,23 +1653,23 @@ msgid ""
"to do it even if you set it up."
msgstr ""
-#: ../C/gdm.xml:1135 (para)
+#: ../C/gdm.xml:1161 (para)
msgid "The following control chars are recognized within the specified name:"
msgstr ""
-#: ../C/gdm.xml:1140 (para) ../C/gdm.xml:3092
+#: ../C/gdm.xml:1166 (para) ../C/gdm.xml:3121
msgid "the `' character"
msgstr ""
-#: ../C/gdm.xml:1144 (para)
+#: ../C/gdm.xml:1170 (para)
msgid "d display's name"
msgstr "d nombre del display"
-#: ../C/gdm.xml:1148 (para)
+#: ../C/gdm.xml:1174 (para)
msgid "h display's hostname"
msgstr "h nombre de host del display"
-#: ../C/gdm.xml:1152 (para)
+#: ../C/gdm.xml:1178 (para)
msgid ""
"Alternatively, the name may end with a vertical bar |, the pipe symbol. The "
"name is then used as a application to execute which returns the desired "
@@ -1654,16 +1679,16 @@ msgid ""
"user to automatically login for each display."
msgstr ""
-#: ../C/gdm.xml:1165 (term)
+#: ../C/gdm.xml:1191 (term)
msgid "BaseXsession"
msgstr "BaseXsession"
-#: ../C/gdm.xml:1167 (synopsis)
+#: ../C/gdm.xml:1193 (synopsis)
#, no-wrap
msgid "BaseXsession=&lt;etc&gt;/gdm/Xsession"
msgstr "BaseXsession=&lt;etc&gt;/gdm/Xsession"
-#: ../C/gdm.xml:1168 (para)
+#: ../C/gdm.xml:1194 (para)
msgid ""
"This is the base X session file. When a user logs in, this script will be "
"run with the selected session as the first argument. The selected session "
@@ -1671,7 +1696,7 @@ msgid ""
"filename> file of the session."
msgstr ""
-#: ../C/gdm.xml:1176 (para)
+#: ../C/gdm.xml:1202 (para)
msgid ""
"If you wish to use the same script for several different display managers, "
"and wish to have some of the script run only for GDM, then you can check the "
@@ -1683,7 +1708,7 @@ msgid ""
"non-system default language."
msgstr ""
-#: ../C/gdm.xml:1189 (para)
+#: ../C/gdm.xml:1215 (para)
msgid ""
"This script should take care of doing the \"login\" for the user and so it "
"should source the <filename>&lt;etc&gt;/profile</filename> and friends. The "
@@ -1695,30 +1720,30 @@ msgid ""
"bash_profile</filename>, however broken that is."
msgstr ""
-#: ../C/gdm.xml:1205 (term)
+#: ../C/gdm.xml:1231 (term)
msgid "Chooser"
msgstr "Chooser"
-#: ../C/gdm.xml:1207 (synopsis)
+#: ../C/gdm.xml:1233 (synopsis)
#, no-wrap
msgid "Chooser=&lt;bin&gt;/gdmchooser"
msgstr "Chooser=&lt;bin&gt;/gdmchooser"
-#: ../C/gdm.xml:1208 (para)
+#: ../C/gdm.xml:1234 (para)
msgid ""
"Full path and name of the chooser executable followed by optional arguments."
msgstr ""
-#: ../C/gdm.xml:1216 (term)
+#: ../C/gdm.xml:1242 (term)
msgid "Configurator"
msgstr "Configurator"
-#: ../C/gdm.xml:1218 (synopsis)
+#: ../C/gdm.xml:1244 (synopsis)
#, no-wrap
msgid "Configurator=&lt;bin&gt;/gdmsetup --disable-sound --disable-crash-dialog"
msgstr "Configurator=&lt;bin&gt;/gdmsetup --disable-sound --disable-crash-dialog"
-#: ../C/gdm.xml:1219 (para)
+#: ../C/gdm.xml:1245 (para)
msgid ""
"The pathname to the configurator binary. If the greeter "
"<filename>ConfigAvailable</filename> option is set to true then run this "
@@ -1727,95 +1752,96 @@ msgid ""
"to happen from a remote display."
msgstr ""
-#: ../C/gdm.xml:1231 (term)
+#: ../C/gdm.xml:1257 (term)
msgid "ConsoleCannotHandle"
msgstr "ConsoleCannotHandle"
-#: ../C/gdm.xml:1233 (synopsis)
+#: ../C/gdm.xml:1259 (synopsis)
#, no-wrap
msgid "ConsoleCannotHandle=am,ar,az,bn,el,fa,gu,hi,ja,ko,ml,mr,pa,ta,zh"
msgstr "ConsoleCannotHandle=am,ar,az,bn,el,fa,gu,hi,ja,ko,ml,mr,pa,ta,zh"
-#: ../C/gdm.xml:1234 (para)
+#: ../C/gdm.xml:1260 (para)
msgid ""
"These are the languages that the console cannot handle because of font "
"issues. Here we mean the text console, not X. This is only used when there "
"are errors to report and we cannot start X."
msgstr ""
-#: ../C/gdm.xml:1244 (term)
+#: ../C/gdm.xml:1270 (term)
msgid "ConsoleNotify"
msgstr "ConsoleNotify"
-#: ../C/gdm.xml:1246 (synopsis)
+#: ../C/gdm.xml:1272 (synopsis)
#, no-wrap
msgid "ConsoleNotify=true"
msgstr "ConsoleNotify=true"
-#: ../C/gdm.xml:1247 (para)
+#: ../C/gdm.xml:1273 (para)
msgid ""
"If false, gdm will not display a message dialog on the console when an error "
"happens."
msgstr ""
-#: ../C/gdm.xml:1255 (term)
+#: ../C/gdm.xml:1281 (term)
msgid "DefaultPath"
msgstr "DefaultPath"
-#: ../C/gdm.xml:1257 (synopsis)
+#: ../C/gdm.xml:1283 (synopsis)
#, no-wrap
msgid "DefaultPath=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin"
msgstr "DefaultPath=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin"
-#: ../C/gdm.xml:1258 (para)
+#: ../C/gdm.xml:1284 (para)
msgid ""
"Specifies the path which will be set in the user's session. This value will "
"be overridden with the value from /etc/default/login if it contains "
"\"ROOT=&lt;pathname&gt;\". If the /etc/default/login file exists, but "
-"contains no value for ROOT, the gdm.conf value will be used."
+"contains no value for ROOT, the value as defined in the GDM configuration "
+"will be be used."
msgstr ""
-#: ../C/gdm.xml:1269 (term)
+#: ../C/gdm.xml:1296 (term)
msgid "DefaultSession"
msgstr "DefaultSession"
-#: ../C/gdm.xml:1271 (synopsis)
+#: ../C/gdm.xml:1298 (synopsis)
#, no-wrap
msgid "DefaultSession=gnome.desktop"
msgstr "DefaultSession=gnome.desktop"
-#: ../C/gdm.xml:1272 (para)
+#: ../C/gdm.xml:1299 (para)
msgid ""
"The session that is used by default if the user does not have a saved "
"preference and has picked 'Last' from the list of sessions. Note that 'Last' "
"need not be displayed, see the <filename>ShowLastSession</filename> key."
msgstr ""
-#: ../C/gdm.xml:1283 (term)
+#: ../C/gdm.xml:1310 (term)
msgid "DisplayInitDir"
msgstr "DisplayInitDir"
-#: ../C/gdm.xml:1285 (synopsis)
+#: ../C/gdm.xml:1312 (synopsis)
#, no-wrap
msgid "DisplayInitDir=&lt;etc&gt;/gdm/Init"
msgstr "DisplayInitDir=&lt;etc&gt;/gdm/Init"
-#: ../C/gdm.xml:1286 (para)
+#: ../C/gdm.xml:1313 (para)
msgid ""
"Directory containing the display init scripts. See the ``The Script "
"Directories'' section for more info."
msgstr ""
-#: ../C/gdm.xml:1294 (term)
+#: ../C/gdm.xml:1321 (term)
msgid "DisplayLastLogin"
msgstr "DisplayLastLogin"
-#: ../C/gdm.xml:1296 (synopsis)
+#: ../C/gdm.xml:1323 (synopsis)
#, no-wrap
msgid "DisplayLastLogin=true"
msgstr "DisplayLastLogin=true"
-#: ../C/gdm.xml:1297 (para)
+#: ../C/gdm.xml:1324 (para)
msgid ""
"If true then the last login information is printed to the user before being "
"prompted for password. While this gives away some info on what users are on "
@@ -1825,7 +1851,7 @@ msgid ""
"This was added in version 2.5.90.0."
msgstr ""
-#: ../C/gdm.xml:1306 (para)
+#: ../C/gdm.xml:1333 (para)
msgid ""
"This is for making GDM conformant to CSC-STD-002-85, although that is purely "
"theoretical now. Someone should read that spec and ensure that this actually "
@@ -1834,16 +1860,16 @@ msgid ""
"info."
msgstr ""
-#: ../C/gdm.xml:1318 (term)
+#: ../C/gdm.xml:1345 (term)
msgid "DoubleLoginWarning"
msgstr "DoubleLoginWarning"
-#: ../C/gdm.xml:1320 (synopsis)
+#: ../C/gdm.xml:1347 (synopsis)
#, no-wrap
msgid "DoubleLoginWarning=true"
msgstr "DoubleLoginWarning=true"
-#: ../C/gdm.xml:1321 (para)
+#: ../C/gdm.xml:1348 (para)
msgid ""
"If true, GDM will warn the user if they are already logged in on another "
"virtual terminal. On systems where GDM supports checking the X virtual "
@@ -1851,16 +1877,16 @@ msgid ""
"terminal instead of logging in."
msgstr ""
-#: ../C/gdm.xml:1331 (term)
+#: ../C/gdm.xml:1358 (term)
msgid "DynamicXServers"
msgstr "DynamicXServers"
-#: ../C/gdm.xml:1333 (synopsis)
+#: ../C/gdm.xml:1360 (synopsis)
#, no-wrap
msgid "DynamicXServers=false"
msgstr "DynamicXServers=false"
-#: ../C/gdm.xml:1334 (para)
+#: ../C/gdm.xml:1361 (para)
msgid ""
"If true, the GDM daemon will honor requests to manage displays via the "
"<filename>/tmp/.gdm_socket</filename> socket connection. Displays can be "
@@ -1869,16 +1895,16 @@ msgid ""
"messages."
msgstr ""
-#: ../C/gdm.xml:1346 (term)
+#: ../C/gdm.xml:1373 (term)
msgid "FailsafeXServer"
msgstr "FailsafeXServer"
-#: ../C/gdm.xml:1348 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:1375 (synopsis)
+#, fuzzy, no-wrap
msgid "FailsafeXServer="
-msgstr ""
+msgstr "FailsafeXServer"
-#: ../C/gdm.xml:1349 (para)
+#: ../C/gdm.xml:1376 (para)
msgid ""
"An X command line in case we can't start the normal X server. should "
"probably be some sort of a script that runs an appropriate low resolution "
@@ -1886,48 +1912,48 @@ msgid ""
"<filename>XKeepsCrashing</filename> script is run."
msgstr ""
-#: ../C/gdm.xml:1360 (term)
+#: ../C/gdm.xml:1387 (term)
msgid "FirstVT"
msgstr "FirstVT"
-#: ../C/gdm.xml:1362 (synopsis)
+#: ../C/gdm.xml:1389 (synopsis)
#, no-wrap
msgid "FirstVT=7"
msgstr "FirstVT=7"
-#: ../C/gdm.xml:1363 (para)
+#: ../C/gdm.xml:1390 (para)
msgid ""
"On systems where GDM supports automatic VT (virtual terminal) allocation, "
"this is the first vt to try. Usually standard text logins are run on the "
"lower vts. See also <filename>VTAllocation</filename>."
msgstr ""
-#: ../C/gdm.xml:1373 (term)
+#: ../C/gdm.xml:1400 (term)
msgid "FlexibleXServers"
msgstr "FlexibleXServers"
-#: ../C/gdm.xml:1375 (synopsis)
+#: ../C/gdm.xml:1402 (synopsis)
#, no-wrap
msgid "FlexibleXServers=5"
msgstr "FlexibleXServers=5"
-#: ../C/gdm.xml:1376 (para)
+#: ../C/gdm.xml:1403 (para)
msgid ""
"The maximum number of allowed flexible servers. These are servers that can "
"be run using the <filename>/tmp/.gdm_socket</filename> socket connection. "
"This is used for both full servers and for Xnest servers."
msgstr ""
-#: ../C/gdm.xml:1386 (term)
+#: ../C/gdm.xml:1413 (term)
msgid "FlexiReapDelayMinutes"
msgstr "FlexiReapDelayMinutes"
-#: ../C/gdm.xml:1388 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:1415 (synopsis)
+#, fuzzy, no-wrap
msgid "FlexiReapDelayMinutes=5"
-msgstr ""
+msgstr "FlexiReapDelayMinutes"
-#: ../C/gdm.xml:1389 (para)
+#: ../C/gdm.xml:1416 (para)
msgid ""
"After how many minutes of inactivity at the login screen should a flexi "
"server be reaped. This is only in effect before a user logs in. Also it does "
@@ -1935,32 +1961,32 @@ msgid ""
"to 0. This was added in version 2.5.90.0."
msgstr ""
-#: ../C/gdm.xml:1400 (term)
+#: ../C/gdm.xml:1427 (term)
msgid "Greeter"
msgstr "Greeter"
-#: ../C/gdm.xml:1402 (synopsis)
+#: ../C/gdm.xml:1429 (synopsis)
#, no-wrap
msgid "Greeter=&lt;bin&gt;/gdmlogin"
msgstr "Greeter=&lt;bin&gt;/gdmlogin"
-#: ../C/gdm.xml:1403 (para)
+#: ../C/gdm.xml:1430 (para)
msgid ""
"Full path and name of the greeter executable followed by optional arguments. "
"This is the greeter used for all servers except for the XDMCP remote "
"servers. See also <filename>RemoteGreeter</filename>"
msgstr ""
-#: ../C/gdm.xml:1413 (term)
+#: ../C/gdm.xml:1440 (term)
msgid "Group"
msgstr "Group"
-#: ../C/gdm.xml:1415 (synopsis)
+#: ../C/gdm.xml:1442 (synopsis)
#, no-wrap
msgid "Group=gdm"
msgstr "Group=gdm"
-#: ../C/gdm.xml:1416 (para)
+#: ../C/gdm.xml:1443 (para)
msgid ""
"The group name under which <command>gdmlogin</command>, <command>gdmgreeter</"
"command>, <command>gdmchooser</command> and the internal failsafe GTK+ "
@@ -1972,16 +1998,17 @@ msgid ""
"<filename>root.gdm</filename> and 1770."
msgstr ""
-#: ../C/gdm.xml:1433 (term)
+#: ../C/gdm.xml:1460 (term)
+#, fuzzy
msgid "GtkModulesList"
-msgstr ""
+msgstr "AddGtkModules"
-#: ../C/gdm.xml:1435 (synopsis)
+#: ../C/gdm.xml:1462 (synopsis)
#, no-wrap
msgid "GtkModulesList=module-1:module-2:..."
msgstr "GtkModulesList=module-1:module-2:..."
-#: ../C/gdm.xml:1436 (para)
+#: ../C/gdm.xml:1463 (para)
msgid ""
"A colon separated list of Gtk+ modules that <command>gdmgreeter</command> or "
"<command>gdmlogin</command> will be invoked with if <filename>AddGtkModules</"
@@ -1989,16 +2016,16 @@ msgid ""
"interface."
msgstr ""
-#: ../C/gdm.xml:1447 (term)
+#: ../C/gdm.xml:1474 (term)
msgid "HaltCommand"
msgstr "HaltCommand"
-#: ../C/gdm.xml:1449 (synopsis)
+#: ../C/gdm.xml:1476 (synopsis)
#, no-wrap
msgid "HaltCommand=/sbin/shutdown -h now"
msgstr "HaltCommand=/sbin/shutdown -h now"
-#: ../C/gdm.xml:1450 (para)
+#: ../C/gdm.xml:1477 (para)
msgid ""
"Full path and arguments to command to be executed when user selects Shutdown "
"from the Actions menu. This can be a ';' separated list of commands to try. "
@@ -2007,105 +2034,106 @@ msgid ""
"explicitly to an empty value."
msgstr ""
-#: ../C/gdm.xml:1462 (term)
+#: ../C/gdm.xml:1489 (term)
msgid "KillInitClients"
msgstr "KillInitClients"
-#: ../C/gdm.xml:1464 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:1491 (synopsis)
+#, fuzzy, no-wrap
msgid "KillInitClients=true"
-msgstr ""
+msgstr "KillInitClients"
-#: ../C/gdm.xml:1465 (para)
+#: ../C/gdm.xml:1492 (para)
msgid ""
"Determines whether GDM should kill X clients started by the init scripts "
"when the user logs in."
msgstr ""
-#: ../C/gdm.xml:1473 (term)
+#: ../C/gdm.xml:1500 (term)
+#, fuzzy
msgid "LogDir"
-msgstr ""
+msgstr "Registro de actividad"
-#: ../C/gdm.xml:1475 (synopsis)
+#: ../C/gdm.xml:1502 (synopsis)
#, no-wrap
msgid "LogDir=&lt;var&gt;/log/gdm"
msgstr "LogDir=&lt;var&gt;/log/gdm"
-#: ../C/gdm.xml:1476 (para)
+#: ../C/gdm.xml:1503 (para)
msgid ""
"Directory containing the log files for the individual displays. By default "
"this is the same as the ServAuthDir."
msgstr ""
-#: ../C/gdm.xml:1484 (term)
+#: ../C/gdm.xml:1511 (term)
msgid "PidFile"
msgstr "PidFile"
-#: ../C/gdm.xml:1486 (synopsis)
+#: ../C/gdm.xml:1513 (synopsis)
#, no-wrap
msgid "PidFile=&lt;var&gt;/run/gdm.pid"
msgstr "PidFile=&lt;var&gt;/run/gdm.pid"
-#: ../C/gdm.xml:1487 (para)
+#: ../C/gdm.xml:1514 (para)
msgid "Name of the file containing the <filename>gdm</filename> process id."
msgstr ""
-#: ../C/gdm.xml:1495 (term)
+#: ../C/gdm.xml:1522 (term)
msgid "PostLoginScriptDir"
msgstr "PostLoginScriptDir"
-#: ../C/gdm.xml:1497 (synopsis)
+#: ../C/gdm.xml:1524 (synopsis)
#, no-wrap
msgid "PostLoginScriptDir=&lt;etc&gt;/gdm/PostLogin"
msgstr "PostLoginScriptDir=&lt;etc&gt;/gdm/PostLogin"
-#: ../C/gdm.xml:1498 (para)
+#: ../C/gdm.xml:1525 (para)
msgid ""
"Directory containing the scripts run right after the user logs in, but "
"before any session setup is done. See the ``The Script Directories'' section "
"for more info."
msgstr ""
-#: ../C/gdm.xml:1507 (term)
+#: ../C/gdm.xml:1534 (term)
msgid "PostSessionScriptDir"
msgstr "PostSessionScriptDir"
-#: ../C/gdm.xml:1509 (synopsis)
+#: ../C/gdm.xml:1536 (synopsis)
#, no-wrap
msgid "PostSessionScriptDir=&lt;etc&gt;/gdm/PostSession"
msgstr "PostSessionScriptDir=&lt;etc&gt;/gdm/PostSession"
-#: ../C/gdm.xml:1510 (para)
+#: ../C/gdm.xml:1537 (para)
msgid ""
"Directory containing the scripts run after the user logs out. See the ``The "
"Script Directories'' section for more info."
msgstr ""
-#: ../C/gdm.xml:1518 (term)
+#: ../C/gdm.xml:1545 (term)
msgid "PreSessionScriptDir"
msgstr "PreSessionScriptDir"
-#: ../C/gdm.xml:1520 (synopsis)
+#: ../C/gdm.xml:1547 (synopsis)
#, no-wrap
msgid "PreSessionScriptDir=&lt;etc&gt;/gdm/PreSession"
msgstr "PreSessionScriptDir=&lt;etc&gt;/gdm/PreSession"
-#: ../C/gdm.xml:1521 (para)
+#: ../C/gdm.xml:1548 (para)
msgid ""
"Directory containing the scripts run before the user logs in. See the ``The "
"Script Directories'' section for more info."
msgstr ""
-#: ../C/gdm.xml:1529 (term)
+#: ../C/gdm.xml:1556 (term)
msgid "RebootCommand"
msgstr "RebootCommand"
-#: ../C/gdm.xml:1531 (synopsis)
+#: ../C/gdm.xml:1558 (synopsis)
#, no-wrap
msgid "RebootCommand=/sbin/shutdown -r now"
msgstr "RebootCommand=/sbin/shutdown -r now"
-#: ../C/gdm.xml:1532 (para)
+#: ../C/gdm.xml:1559 (para)
msgid ""
"Full path and optional arguments to the command to be executed when user "
"selects Reboot from the Actions menu. This can be a ';' separated list of "
@@ -2114,16 +2142,16 @@ msgid ""
"this explicitly to an empty value."
msgstr ""
-#: ../C/gdm.xml:1544 (term)
+#: ../C/gdm.xml:1571 (term)
msgid "RemoteGreeter"
msgstr "RemoteGreeter"
-#: ../C/gdm.xml:1546 (synopsis)
+#: ../C/gdm.xml:1573 (synopsis)
#, no-wrap
msgid "RemoteGreeter=&lt;bin&gt;/gdmlogin"
msgstr "RemoteGreeter=&lt;bin&gt;/gdmlogin"
-#: ../C/gdm.xml:1547 (para)
+#: ../C/gdm.xml:1574 (para)
msgid ""
"Full path and name of the greeter executable followed by optional arguments. "
"This is used for all remote XDMCP sessions. It is useful to have the less "
@@ -2131,34 +2159,35 @@ msgid ""
"main greeter. See also the <filename>Greeter</filename> key."
msgstr ""
-#: ../C/gdm.xml:1558 (term)
+#: ../C/gdm.xml:1585 (term)
msgid "RootPath"
msgstr "RootPath"
-#: ../C/gdm.xml:1560 (synopsis)
+#: ../C/gdm.xml:1587 (synopsis)
#, no-wrap
msgid "RootPath=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin"
msgstr "RootPath=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin"
-#: ../C/gdm.xml:1561 (para)
+#: ../C/gdm.xml:1588 (para)
msgid ""
"Specifies the path which will be set in the root's session and the {Init,"
"PostLogin,PreSession,PostSession} scripts executed by GDM. This value will "
"be overridden with the value from /etc/default/login if it contains "
"\"SUROOT=&lt;pathname&gt;\". If the /etc/default/login file exists, but "
-"contains no value for SUROOT, the gdm.conf value will be used."
+"contains no value for SUROOT, the value as defined in the GDM configuration "
+"will be used."
msgstr ""
-#: ../C/gdm.xml:1573 (term)
+#: ../C/gdm.xml:1601 (term)
msgid "ServAuthDir"
msgstr "ServAuthDir"
-#: ../C/gdm.xml:1575 (synopsis)
+#: ../C/gdm.xml:1603 (synopsis)
#, no-wrap
msgid "ServAuthDir=&lt;var&gt;/gdm"
msgstr "ServAuthDir=&lt;var&gt;/gdm"
-#: ../C/gdm.xml:1576 (para)
+#: ../C/gdm.xml:1604 (para)
msgid ""
"Directory containing the X authentication files for the individual displays. "
"Should be owned by <filename>root.gdm</filename> with permissions 1770, "
@@ -2175,48 +2204,48 @@ msgid ""
"directory can connect to any display on this computer."
msgstr ""
-#: ../C/gdm.xml:1598 (term)
+#: ../C/gdm.xml:1626 (term)
msgid "SessionDesktopDir"
msgstr "SessionDesktopDir"
-#: ../C/gdm.xml:1600 (synopsis)
+#: ../C/gdm.xml:1628 (synopsis)
#, no-wrap
msgid "SessionDesktopDir=&lt;etc&gt;/X11/sessions/:&lt;etc&gt;/dm/Sessions/:&lt;/usr/share&gt;/xsessions/"
msgstr "SessionDesktopDir=&lt;etc&gt;/X11/sessions/:&lt;etc&gt;/dm/Sessions/:&lt;/usr/share&gt;/xsessions/"
-#: ../C/gdm.xml:1601 (para)
+#: ../C/gdm.xml:1629 (para)
msgid ""
"Directory containing the <filename>.desktop</filename> files which are the "
"available sessions on the system. Since 2.4.4.2 this is treated like a PATH "
"type variable and the first file found is used."
msgstr ""
-#: ../C/gdm.xml:1611 (term)
+#: ../C/gdm.xml:1639 (term)
msgid "SoundProgram"
msgstr "SoundProgram"
-#: ../C/gdm.xml:1613 (synopsis)
+#: ../C/gdm.xml:1641 (synopsis)
#, no-wrap
msgid "SoundProgram=/usr/bin/play"
msgstr "SoundProgram=/usr/bin/play"
-#: ../C/gdm.xml:1614 (para)
+#: ../C/gdm.xml:1642 (para)
msgid ""
"Application to use when playing a sound. Currently used for playing the "
"login sound, see the <filename>SoundOnLoginFile</filename> key. Supported "
"since 2.5.90.0."
msgstr ""
-#: ../C/gdm.xml:1624 (term)
+#: ../C/gdm.xml:1652 (term)
msgid "StandardXServer"
msgstr "StandardXServer"
-#: ../C/gdm.xml:1626 (synopsis)
+#: ../C/gdm.xml:1654 (synopsis)
#, no-wrap
msgid "StandardXServer=/usr/X11R6/bin/X"
msgstr "StandardXServer=/usr/X11R6/bin/X"
-#: ../C/gdm.xml:1627 (para)
+#: ../C/gdm.xml:1655 (para)
msgid ""
"Full path and arguments to the standard X server command. This is used when "
"gdm cannot find any other definition, and it's used as the default and "
@@ -2224,16 +2253,16 @@ msgid ""
"sort of X server."
msgstr ""
-#: ../C/gdm.xml:1638 (term)
+#: ../C/gdm.xml:1666 (term)
msgid "SuspendCommand"
msgstr "SuspendCommand"
-#: ../C/gdm.xml:1640 (synopsis)
+#: ../C/gdm.xml:1668 (synopsis)
#, no-wrap
msgid "SuspendCommand="
msgstr "SuspendCommand="
-#: ../C/gdm.xml:1641 (para)
+#: ../C/gdm.xml:1669 (para)
msgid ""
"Full path and arguments to command to be executed when user selects Suspend "
"from the Actions menu. If empty there is no such menu item. Note that the "
@@ -2241,16 +2270,16 @@ msgid ""
"explicitly to an empty value."
msgstr ""
-#: ../C/gdm.xml:1652 (term)
+#: ../C/gdm.xml:1680 (term)
msgid "TimedLoginEnable"
msgstr "TimedLoginEnable"
-#: ../C/gdm.xml:1654 (synopsis)
+#: ../C/gdm.xml:1682 (synopsis)
#, no-wrap
msgid "TimedLoginEnable=false"
msgstr "TimedLoginEnable=false"
-#: ../C/gdm.xml:1655 (para)
+#: ../C/gdm.xml:1683 (para)
msgid ""
"If the user given in <filename>TimedLogin</filename> should be logged in "
"after a number of seconds (set with <filename>TimedLoginDelay</filename>) of "
@@ -2261,16 +2290,16 @@ msgid ""
"this user so you should be careful."
msgstr ""
-#: ../C/gdm.xml:1670 (term)
+#: ../C/gdm.xml:1698 (term)
msgid "TimedLogin"
msgstr "TimedLogin"
-#: ../C/gdm.xml:1672 (synopsis)
+#: ../C/gdm.xml:1700 (synopsis)
#, no-wrap
msgid "TimedLogin="
msgstr "TimedLogin="
-#: ../C/gdm.xml:1673 (para)
+#: ../C/gdm.xml:1701 (para)
msgid ""
"This is the user that should be logged in after a specified number of "
"seconds of inactivity. This can never be \"root\" and gdm will refuse to log "
@@ -2279,31 +2308,31 @@ msgid ""
"are supported."
msgstr ""
-#: ../C/gdm.xml:1685 (term)
+#: ../C/gdm.xml:1713 (term)
msgid "TimedLoginDelay"
msgstr "TimedLoginDelay"
-#: ../C/gdm.xml:1687 (synopsis)
+#: ../C/gdm.xml:1715 (synopsis)
#, no-wrap
msgid "TimedLoginDelay=30"
msgstr "TimedLoginDelay=30"
-#: ../C/gdm.xml:1688 (para)
+#: ../C/gdm.xml:1716 (para)
msgid ""
"This is the delay before the <filename>TimedLogin</filename> user will be "
"logged in. It must be greater then or equal to 10."
msgstr ""
-#: ../C/gdm.xml:1696 (term)
+#: ../C/gdm.xml:1724 (term)
msgid "User"
msgstr "User"
-#: ../C/gdm.xml:1698 (synopsis)
+#: ../C/gdm.xml:1726 (synopsis)
#, no-wrap
msgid "User=gdm"
msgstr "User=gdm"
-#: ../C/gdm.xml:1699 (para)
+#: ../C/gdm.xml:1727 (para)
msgid ""
"The username under which <command>gdmlogin</command>, <command>gdmgreeter</"
"command>, <command>gdmchooser</command> and the internal failsafe GTK+ "
@@ -2313,16 +2342,16 @@ msgid ""
"dedicated user."
msgstr ""
-#: ../C/gdm.xml:1713 (term)
+#: ../C/gdm.xml:1741 (term)
msgid "UserAuthDir"
msgstr "UserAuthDir"
-#: ../C/gdm.xml:1715 (synopsis)
+#: ../C/gdm.xml:1743 (synopsis)
#, no-wrap
msgid "UserAuthDir="
msgstr "UserAuthDir="
-#: ../C/gdm.xml:1716 (para)
+#: ../C/gdm.xml:1744 (para)
msgid ""
"The directory where user's <filename>.Xauthority</filename> file should be "
"saved. When nothing is specified the user's home directory is used. This is "
@@ -2330,7 +2359,7 @@ msgid ""
"filename>."
msgstr ""
-#: ../C/gdm.xml:1723 (para)
+#: ../C/gdm.xml:1751 (para)
msgid ""
"If you do not use the tilde expansion, then the filename created will be "
"random, like in <filename>UserAuthFBDir</filename>. This way many users can "
@@ -2342,7 +2371,7 @@ msgid ""
"filename> directory."
msgstr ""
-#: ../C/gdm.xml:1736 (para)
+#: ../C/gdm.xml:1764 (para)
msgid ""
"Normally if this is the users home directory GDM will still refuse to put "
"cookies there if it thinks it is NFS (by testing root-squashing). This can "
@@ -2350,44 +2379,44 @@ msgid ""
"<filename>[security]</filename> section to false."
msgstr ""
-#: ../C/gdm.xml:1747 (term)
+#: ../C/gdm.xml:1775 (term)
msgid "UserAuthFBDir"
msgstr "UserAuthFBDir"
-#: ../C/gdm.xml:1749 (synopsis)
+#: ../C/gdm.xml:1777 (synopsis)
#, no-wrap
msgid "UserAuthFBDir=/tmp"
msgstr "UserAuthFBDir=/tmp"
-#: ../C/gdm.xml:1750 (para)
+#: ../C/gdm.xml:1778 (para)
msgid ""
"If GDM fails to update the user's <filename>.Xauthority</filename> file a "
"fallback cookie is created in this directory."
msgstr ""
-#: ../C/gdm.xml:1759 (term)
+#: ../C/gdm.xml:1787 (term)
msgid "UserAuthFile"
msgstr "UserAuthFile"
-#: ../C/gdm.xml:1761 (synopsis)
+#: ../C/gdm.xml:1789 (synopsis)
#, no-wrap
msgid "UserAuthFile=.Xauthority"
msgstr "UserAuthFile=.Xauthority"
-#: ../C/gdm.xml:1762 (para)
+#: ../C/gdm.xml:1790 (para)
msgid "Name of the file used for storing user cookies."
msgstr ""
-#: ../C/gdm.xml:1769 (term)
+#: ../C/gdm.xml:1797 (term)
msgid "VTAllocation"
msgstr "VTAllocation"
-#: ../C/gdm.xml:1771 (synopsis)
+#: ../C/gdm.xml:1799 (synopsis)
#, no-wrap
msgid "VTAllocation=true"
msgstr "VTAllocation=true"
-#: ../C/gdm.xml:1772 (para)
+#: ../C/gdm.xml:1800 (para)
msgid ""
"On systems where GDM supports automatic VT (virtual terminal) allocation "
"(currently Linux and FreeBSD only), you can have GDM automatically append "
@@ -2396,16 +2425,16 @@ msgid ""
"<filename>FirstVT</filename>."
msgstr ""
-#: ../C/gdm.xml:1784 (term)
+#: ../C/gdm.xml:1812 (term)
msgid "XKeepsCrashing"
msgstr "XKeepsCrashing"
-#: ../C/gdm.xml:1786 (synopsis)
+#: ../C/gdm.xml:1814 (synopsis)
#, no-wrap
msgid "XKeepsCrashing=&lt;etc&gt;/gdm/XKeepsCrashing"
msgstr "XKeepsCrashing=&lt;etc&gt;/gdm/XKeepsCrashing"
-#: ../C/gdm.xml:1787 (para)
+#: ../C/gdm.xml:1815 (para)
msgid ""
"A script to run in case X keeps crashing. This is for running An X "
"configuration or whatever else to make the X configuration work. See the "
@@ -2415,22 +2444,22 @@ msgid ""
"date for your particular system."
msgstr ""
-#: ../C/gdm.xml:1796 (para)
+#: ../C/gdm.xml:1824 (para)
msgid ""
"In case <filename>FailsafeXServer</filename> is setup, that will be tried "
"first. and this only used as a backup if even that server keeps crashing."
msgstr ""
-#: ../C/gdm.xml:1805 (term)
+#: ../C/gdm.xml:1833 (term)
msgid "Xnest"
msgstr "Xnest"
-#: ../C/gdm.xml:1807 (synopsis)
+#: ../C/gdm.xml:1835 (synopsis)
#, no-wrap
msgid "Xnest=/usr/bin/X11/Xnest (/usr/openwin/bin/Xnest on Solaris)"
msgstr "Xnest=/usr/bin/X11/Xnest (/usr/openwin/bin/Xnest on Solaris)"
-#: ../C/gdm.xml:1808 (para)
+#: ../C/gdm.xml:1836 (para)
msgid ""
"The full path and arguments to the Xnest command. This is used for the "
"flexible Xnest servers. This way the user can start new login screens in a "
@@ -2438,59 +2467,59 @@ msgid ""
"packages installed for this to work."
msgstr ""
-#: ../C/gdm.xml:1822 (title)
+#: ../C/gdm.xml:1850 (title)
msgid "Security Options"
msgstr "Opciones de seguridad"
-#: ../C/gdm.xml:1825 (title)
+#: ../C/gdm.xml:1853 (title)
msgid "[security]"
msgstr "[security]"
-#: ../C/gdm.xml:1828 (term)
+#: ../C/gdm.xml:1856 (term)
msgid "AllowRoot"
msgstr "AllowRoot"
-#: ../C/gdm.xml:1830 (synopsis)
+#: ../C/gdm.xml:1858 (synopsis)
#, no-wrap
msgid "AllowRoot=true"
msgstr "AllowRoot=true"
-#: ../C/gdm.xml:1831 (para)
+#: ../C/gdm.xml:1859 (para)
msgid ""
"Allow root (privileged user) to log in through GDM. Set this to false if you "
"want to disallow such logins."
msgstr ""
-#: ../C/gdm.xml:1835 (para)
+#: ../C/gdm.xml:1863 (para)
msgid ""
"On systems that support PAM, this parameter is not as useful as you can use "
"PAM to do the same thing, and in fact do even more. However it is still "
"followed, so you should probably leave it true for PAM systems."
msgstr ""
-#: ../C/gdm.xml:1845 (term)
+#: ../C/gdm.xml:1873 (term)
msgid "AllowRemoteRoot"
msgstr "AllowRemoteRoot"
-#: ../C/gdm.xml:1847 (synopsis)
+#: ../C/gdm.xml:1875 (synopsis)
#, no-wrap
msgid "AllowRemoteRoot=false"
msgstr "AllowRemoteRoot=false"
-#: ../C/gdm.xml:1848 (para)
+#: ../C/gdm.xml:1876 (para)
msgid ""
"Allow root (privileged user) to log in remotely through GDM. This value "
"should be set to true to allow such logins. Remote logins are any logins "
"that come in through the XDMCP."
msgstr ""
-#: ../C/gdm.xml:1853 (para)
+#: ../C/gdm.xml:1881 (para)
msgid ""
"On systems that support PAM, this parameter is not as useful since you can "
"use PAM to do the same thing, and do even more."
msgstr ""
-#: ../C/gdm.xml:1858 (para)
+#: ../C/gdm.xml:1886 (para)
msgid ""
"This value will be overridden and set to false if the /etc/default/login "
"file exists and contains \"CONSOLE=/dev/login\", and set to true if the /etc/"
@@ -2498,37 +2527,38 @@ msgid ""
"CONSOLE."
msgstr ""
-#: ../C/gdm.xml:1869 (term)
+#: ../C/gdm.xml:1897 (term)
+#, fuzzy
msgid "AllowRemoteAutoLogin"
-msgstr ""
+msgstr "AllowRemoteAutoLogin=false"
-#: ../C/gdm.xml:1871 (synopsis)
+#: ../C/gdm.xml:1899 (synopsis)
#, no-wrap
msgid "AllowRemoteAutoLogin=false"
msgstr "AllowRemoteAutoLogin=false"
-#: ../C/gdm.xml:1872 (para)
+#: ../C/gdm.xml:1900 (para)
msgid ""
"Allow the timed login to work remotely. That is, remote connections through "
"XDMCP will be allowed to log into the \"TimedLogin\" user by letting the "
"login window time out, just like the local user on the first console."
msgstr ""
-#: ../C/gdm.xml:1878 (para)
+#: ../C/gdm.xml:1906 (para)
msgid ""
"Note that this can make a system quite insecure, and thus is off by default."
msgstr ""
-#: ../C/gdm.xml:1886 (term)
+#: ../C/gdm.xml:1914 (term)
msgid "CheckDirOwner"
msgstr "CheckDirOwner"
-#: ../C/gdm.xml:1888 (synopsis)
+#: ../C/gdm.xml:1916 (synopsis)
#, no-wrap
msgid "CheckDirOwner=true"
msgstr "CheckDirOwner=true"
-#: ../C/gdm.xml:1889 (para)
+#: ../C/gdm.xml:1917 (para)
msgid ""
"By default GDM checks the ownership of the home directories before writing "
"to them, this prevents security issues in case of bad setup. However in some "
@@ -2539,16 +2569,17 @@ msgid ""
"Supported since 2.6.0.4."
msgstr ""
-#: ../C/gdm.xml:1903 (term)
+#: ../C/gdm.xml:1931 (term)
+#, fuzzy
msgid "DisallowTCP"
-msgstr ""
+msgstr "DisallowTCP=true"
-#: ../C/gdm.xml:1905 (synopsis)
+#: ../C/gdm.xml:1933 (synopsis)
#, no-wrap
msgid "DisallowTCP=true"
msgstr "DisallowTCP=true"
-#: ../C/gdm.xml:1906 (para)
+#: ../C/gdm.xml:1934 (para)
msgid ""
"If true, then always append <filename>-nolisten tcp</filename> to the "
"command line of local X servers, thus disallowing TCP connection. This is "
@@ -2557,16 +2588,16 @@ msgid ""
"though no known security problems exist."
msgstr ""
-#: ../C/gdm.xml:1919 (term)
+#: ../C/gdm.xml:1947 (term)
msgid "NeverPlaceCookiesOnNFS"
msgstr "NeverPlaceCookiesOnNFS"
-#: ../C/gdm.xml:1921 (synopsis)
+#: ../C/gdm.xml:1949 (synopsis)
#, no-wrap
msgid "NeverPlaceCookiesOnNFS=true"
msgstr "NeverPlaceCookiesOnNFS=true"
-#: ../C/gdm.xml:1922 (para)
+#: ../C/gdm.xml:1950 (para)
msgid ""
"Normally if this is true (which is by default), GDM will not place cookies "
"into the users home directory if this directory is on NFS. Well, GDM will "
@@ -2576,89 +2607,90 @@ msgid ""
"option appeared in version 2.4.4.4 and is ignored in previous versions."
msgstr ""
-#: ../C/gdm.xml:1936 (term)
+#: ../C/gdm.xml:1964 (term)
msgid "PasswordRequired"
msgstr "PasswordRequired"
-#: ../C/gdm.xml:1938 (synopsis)
+#: ../C/gdm.xml:1966 (synopsis)
#, no-wrap
msgid "PasswordRequired=false"
msgstr "PasswordRequired=false"
-#: ../C/gdm.xml:1939 (para)
+#: ../C/gdm.xml:1967 (para)
msgid ""
"If true, this will cause PAM_DISALLOW_NULL_AUTHTOK to be passed as a flag to "
"pam_authenticate and pam_acct_mgmt, disallowing NULL password. This setting "
"will only take effect if PAM is being used by GDM. This value will be "
"overridden with the value from /etc/default/login if it contains \"PASSREQ="
"[YES|NO]\". If the /etc/default/login file exists, but contains no value for "
-"PASSREQ, the gdm.conf value will be used."
+"PASSREQ, the value as defined in the GDM configuration will be used."
msgstr ""
-#: ../C/gdm.xml:1953 (term)
+#: ../C/gdm.xml:1981 (term)
msgid "RelaxPermissions"
msgstr "RelaxPermissions"
-#: ../C/gdm.xml:1955 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:1983 (synopsis)
+#, fuzzy, no-wrap
msgid "RelaxPermissions=0"
-msgstr ""
+msgstr "RelaxPermissions"
-#: ../C/gdm.xml:1956 (para)
+#: ../C/gdm.xml:1984 (para)
msgid ""
"By default GDM ignores files and directories writable to other users than "
"the owner."
msgstr ""
-#: ../C/gdm.xml:1961 (para)
+#: ../C/gdm.xml:1989 (para)
msgid ""
"Changing the value of RelaxPermissions makes it possible to alter this "
"behavior:"
msgstr ""
-#: ../C/gdm.xml:1966 (para)
+#: ../C/gdm.xml:1994 (para)
msgid "0 - Paranoia option. Only accepts user owned files and directories."
msgstr ""
-#: ../C/gdm.xml:1970 (para)
+#: ../C/gdm.xml:1998 (para)
msgid "1 - Allow group writable files and directories."
msgstr ""
-#: ../C/gdm.xml:1973 (para)
+#: ../C/gdm.xml:2001 (para)
msgid "2 - Allow world writable files and directories."
msgstr ""
-#: ../C/gdm.xml:1980 (term)
+#: ../C/gdm.xml:2008 (term)
msgid "RetryDelay"
msgstr ""
-#: ../C/gdm.xml:1982 (synopsis)
+#: ../C/gdm.xml:2010 (synopsis)
#, no-wrap
msgid "RetryDelay=1"
msgstr ""
-#: ../C/gdm.xml:1983 (para)
+#: ../C/gdm.xml:2011 (para)
msgid ""
"The number of seconds GDM should wait before reactivating the entry field "
"after a failed login."
msgstr ""
-#: ../C/gdm.xml:1991 (term)
+#: ../C/gdm.xml:2019 (term)
+#, fuzzy
msgid "UserMaxFile"
-msgstr ""
+msgstr "UserAuthFile"
-#: ../C/gdm.xml:1993 (synopsis)
+#: ../C/gdm.xml:2021 (synopsis)
#, no-wrap
msgid "UserMaxFile=65536"
msgstr ""
-#: ../C/gdm.xml:1994 (para)
+#: ../C/gdm.xml:2022 (para)
msgid ""
"GDM will refuse to read/write files bigger than this number (specified in "
"bytes)."
msgstr ""
-#: ../C/gdm.xml:1999 (para)
+#: ../C/gdm.xml:2027 (para)
msgid ""
"In addition to the size check GDM is extremely picky about accessing files "
"in user directories. It will not follow symlinks and can optionally refuse "
@@ -2666,24 +2698,24 @@ msgid ""
"<filename>RelaxPermissions</filename> option for more info."
msgstr ""
-#: ../C/gdm.xml:2013 (title)
+#: ../C/gdm.xml:2041 (title)
msgid "XDCMP Support"
msgstr ""
-#: ../C/gdm.xml:2016 (title)
+#: ../C/gdm.xml:2044 (title)
msgid "[xdmcp]"
msgstr ""
-#: ../C/gdm.xml:2019 (term)
+#: ../C/gdm.xml:2047 (term)
msgid "DisplaysPerHost"
msgstr ""
-#: ../C/gdm.xml:2021 (synopsis)
+#: ../C/gdm.xml:2049 (synopsis)
#, no-wrap
msgid "DisplaysPerHost=1"
msgstr ""
-#: ../C/gdm.xml:2022 (para)
+#: ../C/gdm.xml:2050 (para)
msgid ""
"To prevent attackers from filling up the pending queue, GDM will only allow "
"one connection for each remote computer. If you want to provide display "
@@ -2691,64 +2723,69 @@ msgid ""
"<filename>DisplaysPerHost</filename> value accordingly."
msgstr ""
-#: ../C/gdm.xml:2030 (para)
+#: ../C/gdm.xml:2058 (para)
msgid ""
"Note that the number of connections from the local computer is unlimited. "
"Only remote connections are limited by this number."
msgstr ""
-#: ../C/gdm.xml:2038 (term) ../C/gdm.xml:3280
+#: ../C/gdm.xml:2066 (term) ../C/gdm.xml:3309
msgid "Enable"
msgstr ""
-#: ../C/gdm.xml:2040 (synopsis) ../C/gdm.xml:3282
-#, no-wrap
+#: ../C/gdm.xml:2068 (synopsis) ../C/gdm.xml:3311
+#, fuzzy, no-wrap
msgid "Enable=false"
-msgstr ""
+msgstr "TimedLoginEnable=false"
-#: ../C/gdm.xml:2041 (para)
+#: ../C/gdm.xml:2069 (para)
msgid ""
"Setting this to true enables XDMCP support allowing remote displays/X "
"terminals to be managed by GDM."
msgstr ""
-#: ../C/gdm.xml:2046 (para)
+#: ../C/gdm.xml:2074 (para)
msgid ""
"<filename>gdm</filename> listens for requests on UDP port 177. See the Port "
"option for more information."
msgstr ""
-#: ../C/gdm.xml:2051 (para)
+#: ../C/gdm.xml:2079 (para)
msgid ""
"If GDM is compiled to support it, access from remote displays can be "
"controlled using the TCP Wrappers library. The service name is "
"<filename>gdm</filename>"
msgstr ""
-#: ../C/gdm.xml:2057 (para)
+#: ../C/gdm.xml:2085 (para)
+#, fuzzy
msgid ""
"You should add <screen>gdm:.my.domain</screen> to your <filename>&lt;etc&gt;/"
"hosts.allow</filename>, depending on your TCP Wrappers configuration. See "
"the <ulink type=\"help\" url=\"man:hosts.allow\">hosts.allow(5)</ulink> man "
"page for details."
msgstr ""
+"a su <filename>&lt;etc&gt;/hosts.allow</filename> si normalmente no permite "
+"todos los servicios desde todos los equipos. Vea la página del manual <ulink "
+"type=\"help\" url=\"man:hosts.allow\">hosts.allow(5)</ulink> para más "
+"detalles."
-#: ../C/gdm.xml:2066 (para)
+#: ../C/gdm.xml:2094 (para)
msgid ""
"Please note that XDMCP is not a particularly secure protocol and that it is "
"a good idea to block UDP port 177 on your firewall unless you really need it."
msgstr ""
-#: ../C/gdm.xml:2075 (term)
+#: ../C/gdm.xml:2103 (term)
msgid "EnableProxy"
msgstr ""
-#: ../C/gdm.xml:2077 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:2105 (synopsis)
+#, fuzzy, no-wrap
msgid "EnableProxy=false"
-msgstr ""
+msgstr "TimedLoginEnable=false"
-#: ../C/gdm.xml:2078 (para)
+#: ../C/gdm.xml:2106 (para)
msgid ""
"Setting this to true enables support for running XDMCP sessions on a local "
"proxy X server. This may improve the performance of XDMCP sessions, "
@@ -2756,128 +2793,129 @@ msgid ""
"completed without going over the network."
msgstr ""
-#: ../C/gdm.xml:2085 (para)
+#: ../C/gdm.xml:2113 (para)
msgid ""
"Note, however, that this mode will significantly increase the burden on the "
"server hosting the XDMCP sessions"
msgstr ""
-#: ../C/gdm.xml:2089 (para)
+#: ../C/gdm.xml:2117 (para)
msgid ""
"See the <filename>FlexiProxy</filename> and <filename>FlexiProxyDisconnect</"
"filename> options for further details on how to configure support for this "
"feature."
msgstr ""
-#: ../C/gdm.xml:2098 (term)
+#: ../C/gdm.xml:2126 (term)
msgid "HonorIndirect"
msgstr ""
-#: ../C/gdm.xml:2100 (synopsis)
+#: ../C/gdm.xml:2128 (synopsis)
#, no-wrap
msgid "HonorIndirect=true"
msgstr ""
-#: ../C/gdm.xml:2101 (para)
+#: ../C/gdm.xml:2129 (para)
msgid ""
"Enables XDMCP INDIRECT choosing (i.e. remote execution of "
"<filename>gdmchooser</filename>) for X-terminals which don't supply their "
"own display browser."
msgstr ""
-#: ../C/gdm.xml:2110 (term)
+#: ../C/gdm.xml:2138 (term)
msgid "MaxPending"
msgstr ""
-#: ../C/gdm.xml:2112 (synopsis)
+#: ../C/gdm.xml:2140 (synopsis)
#, no-wrap
msgid "MaxPending=4"
msgstr ""
-#: ../C/gdm.xml:2113 (para)
+#: ../C/gdm.xml:2141 (para)
msgid ""
"To avoid denial of service attacks, GDM has fixed size queue of pending "
"connections. Only MaxPending displays can start at the same time."
msgstr ""
-#: ../C/gdm.xml:2119 (para)
+#: ../C/gdm.xml:2147 (para)
msgid ""
"Please note that this parameter does *not* limit the number of remote "
"displays which can be managed. It only limits the number of displays "
"initiating a connection simultaneously."
msgstr ""
-#: ../C/gdm.xml:2128 (term)
+#: ../C/gdm.xml:2156 (term)
msgid "MaxPendingIndirect"
msgstr ""
-#: ../C/gdm.xml:2130 (synopsis)
+#: ../C/gdm.xml:2158 (synopsis)
#, no-wrap
msgid "MaxPendingIndirect=4"
msgstr ""
-#: ../C/gdm.xml:2131 (para)
+#: ../C/gdm.xml:2159 (para)
msgid ""
"GDM will only provide <filename>MaxPendingIndirect</filename> displays with "
"host choosers simultaneously. If more queries from different hosts come in, "
"the oldest ones will be forgotten."
msgstr ""
-#: ../C/gdm.xml:2141 (term)
+#: ../C/gdm.xml:2169 (term)
+#, fuzzy
msgid "MaxSessions"
-msgstr ""
+msgstr "RelaxPermissions"
-#: ../C/gdm.xml:2143 (synopsis)
+#: ../C/gdm.xml:2171 (synopsis)
#, no-wrap
msgid "MaxSessions=16"
msgstr ""
-#: ../C/gdm.xml:2144 (para)
+#: ../C/gdm.xml:2172 (para)
msgid ""
"Determines the maximum number of remote display connections which will be "
"managed simultaneously. I.e. the total number of remote displays that can "
"use your host."
msgstr ""
-#: ../C/gdm.xml:2153 (term)
+#: ../C/gdm.xml:2181 (term)
msgid "MaxWait"
msgstr ""
-#: ../C/gdm.xml:2155 (synopsis)
+#: ../C/gdm.xml:2183 (synopsis)
#, no-wrap
msgid "MaxWait=30"
msgstr ""
-#: ../C/gdm.xml:2156 (para)
+#: ../C/gdm.xml:2184 (para)
msgid ""
"When GDM is ready to manage a display an ACCEPT packet is sent to it "
"containing a unique session id which will be used in future XDMCP "
"conversations."
msgstr ""
-#: ../C/gdm.xml:2162 (para)
+#: ../C/gdm.xml:2190 (para)
msgid ""
"GDM will then place the session id in the pending queue waiting for the "
"display to respond with a MANAGE request."
msgstr ""
-#: ../C/gdm.xml:2167 (para)
+#: ../C/gdm.xml:2195 (para)
msgid ""
"If no response is received within MaxWait seconds, GDM will declare the "
"display dead and erase it from the pending queue freeing up the slot for "
"other displays."
msgstr ""
-#: ../C/gdm.xml:2176 (term)
+#: ../C/gdm.xml:2204 (term)
msgid "MaxWaitIndirect"
msgstr ""
-#: ../C/gdm.xml:2178 (synopsis)
+#: ../C/gdm.xml:2206 (synopsis)
#, no-wrap
msgid "MaxWaitIndirect=30"
msgstr ""
-#: ../C/gdm.xml:2179 (para)
+#: ../C/gdm.xml:2207 (para)
msgid ""
"The MaxWaitIndirect parameter determines the maximum number of seconds "
"between the time where a user chooses a host and the subsequent indirect "
@@ -2888,31 +2926,31 @@ msgid ""
"<filename>MaxPendingIndirect</filename>."
msgstr ""
-#: ../C/gdm.xml:2193 (term)
+#: ../C/gdm.xml:2221 (term)
msgid "Port"
msgstr ""
-#: ../C/gdm.xml:2195 (synopsis)
+#: ../C/gdm.xml:2223 (synopsis)
#, no-wrap
msgid "Port=177"
msgstr ""
-#: ../C/gdm.xml:2196 (para)
+#: ../C/gdm.xml:2224 (para)
msgid ""
"The UDP port number <filename>gdm</filename> should listen to for XDMCP "
"requests. Don't change this unless you know what you are doing."
msgstr ""
-#: ../C/gdm.xml:2205 (term)
+#: ../C/gdm.xml:2233 (term)
msgid "PingIntervalSeconds"
msgstr ""
-#: ../C/gdm.xml:2207 (synopsis)
+#: ../C/gdm.xml:2235 (synopsis)
#, no-wrap
msgid "PingIntervalSeconds=15"
msgstr ""
-#: ../C/gdm.xml:2208 (para)
+#: ../C/gdm.xml:2236 (para)
msgid ""
"Interval in which to ping the X server in seconds. If the X server doesn't "
"return before the next time we ping it, the connection is stopped and the "
@@ -2920,7 +2958,7 @@ msgid ""
"PingTimeout, but in seconds."
msgstr ""
-#: ../C/gdm.xml:2216 (para)
+#: ../C/gdm.xml:2244 (para)
msgid ""
"Note that GDM in the past used to have a <filename>PingInterval</filename> "
"configuration key which was also in minutes. For most purposes you'd want "
@@ -2930,23 +2968,23 @@ msgid ""
"you would want to end the session."
msgstr ""
-#: ../C/gdm.xml:2229 (term)
+#: ../C/gdm.xml:2257 (term)
msgid "ProxyReconnect"
msgstr ""
-#: ../C/gdm.xml:2231 (synopsis)
+#: ../C/gdm.xml:2259 (synopsis)
#, no-wrap
msgid "FlexiProxyReconnect="
msgstr ""
-#: ../C/gdm.xml:2232 (para)
+#: ../C/gdm.xml:2260 (para)
msgid ""
"Setting this option enables experimental support for session migration with "
"XDMCP sessions. This enables users to disconnect from their session and "
"later reconnect to that same session, possibly from a different terminal."
msgstr ""
-#: ../C/gdm.xml:2238 (para)
+#: ../C/gdm.xml:2266 (para)
msgid ""
"In order to use this feature, you must have a nested X server available "
"which supports disconnecting from its parent X server and reconnecting to "
@@ -2955,38 +2993,38 @@ msgid ""
"are busy implementing it."
msgstr ""
-#: ../C/gdm.xml:2245 (para)
+#: ../C/gdm.xml:2273 (para)
msgid ""
"This option should be set to the path of a command which will handle "
"reconnecting the XDMCP proxy to another backend display. A sample "
"implementation for use with DMX is supplied."
msgstr ""
-#: ../C/gdm.xml:2254 (term)
+#: ../C/gdm.xml:2282 (term)
msgid "ProxyXServer"
msgstr ""
-#: ../C/gdm.xml:2256 (synopsis)
+#: ../C/gdm.xml:2284 (synopsis)
#, no-wrap
msgid "ProxyXServer="
msgstr ""
-#: ../C/gdm.xml:2257 (para)
+#: ../C/gdm.xml:2285 (para)
msgid ""
"The X server command line for a XDMCP proxy. Any nested X server like Xnest, "
"Xephr or Xdmx should work fairly well."
msgstr ""
-#: ../C/gdm.xml:2265 (term)
+#: ../C/gdm.xml:2293 (term)
msgid "Willing"
msgstr ""
-#: ../C/gdm.xml:2267 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:2295 (synopsis)
+#, fuzzy, no-wrap
msgid "Willing=&lt;etc&gt;/gdm/Xwilling"
-msgstr ""
+msgstr "BaseXsession=&lt;etc&gt;/gdm/Xsession"
-#: ../C/gdm.xml:2268 (para)
+#: ../C/gdm.xml:2296 (para)
msgid ""
"When the server sends a WILLING packet back after a QUERY it sends a string "
"that gives the current status of this server. The default message is the "
@@ -2998,24 +3036,25 @@ msgid ""
"with QUERY packets."
msgstr ""
-#: ../C/gdm.xml:2287 (title)
+#: ../C/gdm.xml:2315 (title)
+#, fuzzy
msgid "Common GUI Configuration Options"
-msgstr ""
+msgstr "Configuración del demonio"
-#: ../C/gdm.xml:2290 (title)
+#: ../C/gdm.xml:2318 (title)
msgid "[gui]"
msgstr ""
-#: ../C/gdm.xml:2293 (term)
+#: ../C/gdm.xml:2321 (term)
msgid "AllowGtkThemeChange"
msgstr ""
-#: ../C/gdm.xml:2295 (synopsis)
+#: ../C/gdm.xml:2323 (synopsis)
#, no-wrap
msgid "AllowGtkThemeChange=true"
msgstr ""
-#: ../C/gdm.xml:2296 (para)
+#: ../C/gdm.xml:2324 (para)
msgid ""
"If to allow changing the GTK+ (widget) theme from the greeter. Currently "
"this only affects the standard greeter as the graphical greeter does not yet "
@@ -3024,48 +3063,48 @@ msgid ""
"Supported since 2.5.90.2."
msgstr ""
-#: ../C/gdm.xml:2308 (term)
+#: ../C/gdm.xml:2336 (term)
msgid "GtkRC"
msgstr ""
-#: ../C/gdm.xml:2310 (synopsis)
+#: ../C/gdm.xml:2338 (synopsis)
#, no-wrap
msgid "GtkRC="
msgstr ""
-#: ../C/gdm.xml:2311 (para)
+#: ../C/gdm.xml:2339 (para)
msgid ""
"Path to a <filename>gtkrc</filename> to read when GDM puts up a window. You "
"should really now use the <filename>GtkTheme</filename> key for just setting "
"a theme."
msgstr ""
-#: ../C/gdm.xml:2320 (term)
+#: ../C/gdm.xml:2348 (term)
msgid "GtkTheme"
msgstr ""
-#: ../C/gdm.xml:2322 (synopsis)
+#: ../C/gdm.xml:2350 (synopsis)
#, no-wrap
msgid "GtkTheme=Default"
msgstr ""
-#: ../C/gdm.xml:2323 (para)
+#: ../C/gdm.xml:2351 (para)
msgid ""
"A name of an installed theme to use by default. It will be used in the "
"greeter, chooser and all other GUI windows put up by GDM. Supported since "
"2.5.90.2."
msgstr ""
-#: ../C/gdm.xml:2332 (term)
+#: ../C/gdm.xml:2360 (term)
msgid "GtkThemesToAllow"
msgstr ""
-#: ../C/gdm.xml:2334 (synopsis)
+#: ../C/gdm.xml:2362 (synopsis)
#, no-wrap
msgid "GtkThemesToAllow=all"
msgstr ""
-#: ../C/gdm.xml:2335 (para)
+#: ../C/gdm.xml:2363 (para)
msgid ""
"Comma separated list of themes to allow. These must be the names of the "
"themes installed in the standard locations for gtk themes. You can also "
@@ -3073,56 +3112,56 @@ msgid ""
"<filename>AllowGtkThemeChange</filename> key. Supported since 2.5.90.2."
msgstr ""
-#: ../C/gdm.xml:2347 (term)
+#: ../C/gdm.xml:2375 (term)
msgid "MaxIconWidth"
msgstr ""
-#: ../C/gdm.xml:2349 (synopsis)
+#: ../C/gdm.xml:2377 (synopsis)
#, no-wrap
msgid "MaxIconWidth=128"
msgstr ""
-#: ../C/gdm.xml:2350 (para)
+#: ../C/gdm.xml:2378 (para)
msgid ""
"Specifies the maximum icon width (in pixels) that the face browser will "
"display. Icons larger than this will be scaled. This also affects icons in "
"the XDMCP chooser."
msgstr ""
-#: ../C/gdm.xml:2359 (term)
+#: ../C/gdm.xml:2387 (term)
msgid "MaxIconHeight"
msgstr ""
-#: ../C/gdm.xml:2361 (synopsis)
+#: ../C/gdm.xml:2389 (synopsis)
#, no-wrap
msgid "MaxIconHeight=128"
msgstr ""
-#: ../C/gdm.xml:2362 (para)
+#: ../C/gdm.xml:2390 (para)
msgid ""
"Specifies the maximum icon height (in pixels) that the face browser will "
"display. Icons larger than this will be scaled. This also affects icons in "
"the XDMCP chooser."
msgstr ""
-#: ../C/gdm.xml:2375 (title)
+#: ../C/gdm.xml:2403 (title)
msgid "Greeter Configuration"
msgstr "Configuración del interfaz"
-#: ../C/gdm.xml:2378 (title)
+#: ../C/gdm.xml:2406 (title)
msgid "[greeter]"
msgstr "[greeter]"
-#: ../C/gdm.xml:2381 (term)
+#: ../C/gdm.xml:2409 (term)
msgid "BackgroundColor"
msgstr "BackgroundColor"
-#: ../C/gdm.xml:2383 (synopsis)
+#: ../C/gdm.xml:2411 (synopsis)
#, fuzzy, no-wrap
msgid "BackgroundColor=#76848F"
msgstr "BackgroundColor"
-#: ../C/gdm.xml:2384 (para)
+#: ../C/gdm.xml:2412 (para)
msgid ""
"If the BackgroundType is 2, use this color in the background of the greeter. "
"Also use it as the back of transparent images set on the background and if "
@@ -3130,31 +3169,31 @@ msgid ""
"affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2395 (term)
+#: ../C/gdm.xml:2423 (term)
msgid "BackgroundProgramInitialDelay"
msgstr "BackgroundProgramInitialDelay"
-#: ../C/gdm.xml:2397 (synopsis)
+#: ../C/gdm.xml:2425 (synopsis)
#, no-wrap
msgid "BackgroundProgramInitialDelay=30"
msgstr "BackgroundProgramInitialDelay=30"
-#: ../C/gdm.xml:2398 (para)
+#: ../C/gdm.xml:2426 (para)
msgid ""
"The background application will be started after at least that many seconds "
"of inactivity."
msgstr ""
-#: ../C/gdm.xml:2406 (term)
+#: ../C/gdm.xml:2434 (term)
msgid "RestartBackgroundProgram"
msgstr "RestartBackgroundProgram"
-#: ../C/gdm.xml:2408 (synopsis)
+#: ../C/gdm.xml:2436 (synopsis)
#, no-wrap
msgid "RestartBackgroundProgram=true"
msgstr "RestartBackgroundProgram=true"
-#: ../C/gdm.xml:2409 (para)
+#: ../C/gdm.xml:2437 (para)
msgid ""
"If set the background application will be restarted when it has exited, "
"after the delay described below has elapsed. This option can be useful when "
@@ -3162,46 +3201,46 @@ msgid ""
"computer."
msgstr ""
-#: ../C/gdm.xml:2419 (term)
+#: ../C/gdm.xml:2447 (term)
msgid "BackgroundProgramRestartDelay"
msgstr "BackgroundProgramRestartDelay"
-#: ../C/gdm.xml:2421 (synopsis)
+#: ../C/gdm.xml:2449 (synopsis)
#, no-wrap
msgid "BackgroundProgramRestartDelay=30"
msgstr "BackgroundProgramRestartDelay=30"
-#: ../C/gdm.xml:2422 (para)
+#: ../C/gdm.xml:2450 (para)
msgid ""
"The background application will be restarted after at least that many "
"seconds of inactivity."
msgstr ""
-#: ../C/gdm.xml:2430 (term)
+#: ../C/gdm.xml:2458 (term)
msgid "BackgroundImage"
msgstr "BackgroundImage"
-#: ../C/gdm.xml:2432 (synopsis)
+#: ../C/gdm.xml:2460 (synopsis)
#, no-wrap
msgid "BackgroundImage=somefile.png"
msgstr "BackgroundImage=somefile.png"
-#: ../C/gdm.xml:2433 (para)
+#: ../C/gdm.xml:2461 (para)
msgid ""
"If the BackgroundType is 1, then display this file as the background in the "
"greeter. This only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2442 (term)
+#: ../C/gdm.xml:2470 (term)
msgid "BackgroundProgram"
msgstr "BackgroundProgram"
-#: ../C/gdm.xml:2444 (synopsis)
+#: ../C/gdm.xml:2472 (synopsis)
#, no-wrap
msgid "BackgroundProgram=/usr/bin/xeyes"
msgstr "BackgroundProgram=/usr/bin/xeyes"
-#: ../C/gdm.xml:2445 (para)
+#: ../C/gdm.xml:2473 (para)
msgid ""
"If set this command will be run in the background while the login window is "
"being displayed. Note that not all applications will run this way, since GDM "
@@ -3210,61 +3249,61 @@ msgid ""
"affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2457 (term)
+#: ../C/gdm.xml:2485 (term)
msgid "BackgroundRemoteOnlyColor"
msgstr "BackgroundRemoteOnlyColor"
-#: ../C/gdm.xml:2459 (synopsis)
+#: ../C/gdm.xml:2487 (synopsis)
#, no-wrap
msgid "BackgroundRemoteOnlyColor=true"
msgstr "BackgroundRemoteOnlyColor=true"
-#: ../C/gdm.xml:2460 (para)
+#: ../C/gdm.xml:2488 (para)
msgid ""
"On remote displays only set the color background. This is to make network "
"load lighter. The <filename>BackgroundProgram</filename> is also not run. "
"This only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2470 (term)
+#: ../C/gdm.xml:2498 (term)
msgid "BackgroundScaleToFit"
msgstr "BackgroundScaleToFit"
-#: ../C/gdm.xml:2472 (synopsis)
+#: ../C/gdm.xml:2500 (synopsis)
#, no-wrap
msgid "BackgroundScaleToFit=true"
msgstr "BackgroundScaleToFit=true"
-#: ../C/gdm.xml:2473 (para)
+#: ../C/gdm.xml:2501 (para)
msgid ""
"Scale background image to fit the screen. This only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2481 (term)
+#: ../C/gdm.xml:2509 (term)
msgid "BackgroundType"
msgstr "BackgroundType"
-#: ../C/gdm.xml:2483 (synopsis)
+#: ../C/gdm.xml:2511 (synopsis)
#, no-wrap
msgid "BackgroundType=2"
msgstr "BackgroundType=2"
-#: ../C/gdm.xml:2484 (para)
+#: ../C/gdm.xml:2512 (para)
msgid ""
"The type of background to set. 0 is none, 1 is image and color, 2 is color "
"and 3 is image. This only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2492 (term)
+#: ../C/gdm.xml:2520 (term)
msgid "Browser"
msgstr "Browser"
-#: ../C/gdm.xml:2494 (synopsis)
+#: ../C/gdm.xml:2522 (synopsis)
#, no-wrap
msgid "Browser=true"
msgstr "Browser=true"
-#: ../C/gdm.xml:2495 (para)
+#: ../C/gdm.xml:2523 (para)
msgid ""
"Set to true to enable the face browser. See the ``The GTK+ Greeter'' section "
"for more information on the face browser. This option only works for the GTK"
@@ -3272,32 +3311,32 @@ msgid ""
"theme which includes a face browser"
msgstr ""
-#: ../C/gdm.xml:2506 (term)
+#: ../C/gdm.xml:2534 (term)
msgid "ChooserButton"
msgstr "ChooserButton"
-#: ../C/gdm.xml:2508 (synopsis)
+#: ../C/gdm.xml:2536 (synopsis)
#, no-wrap
msgid "ChooserButton=true"
msgstr "ChooserButton=true"
-#: ../C/gdm.xml:2509 (para)
+#: ../C/gdm.xml:2537 (para)
msgid ""
"If true, add a chooser button to the Actions menu that will restart the "
"current server with a chooser. XDMCP does not need to be enabled on the "
"local computer for this to work."
msgstr ""
-#: ../C/gdm.xml:2518 (term)
+#: ../C/gdm.xml:2546 (term)
msgid "ConfigAvailable"
msgstr ""
-#: ../C/gdm.xml:2520 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:2548 (synopsis)
+#, fuzzy, no-wrap
msgid "ConfigAvailable=false"
-msgstr ""
+msgstr "TimedLoginEnable=false"
-#: ../C/gdm.xml:2521 (para)
+#: ../C/gdm.xml:2549 (para)
msgid ""
"If true, allows the configurator to be run from the greeter. Note that the "
"user will need to type in the root password before the configurator will be "
@@ -3305,16 +3344,18 @@ msgid ""
"<filename>Configurator</filename> option in the daemon section."
msgstr ""
-#: ../C/gdm.xml:2533 (term)
+#: ../C/gdm.xml:2561 (term)
+#, fuzzy
msgid "DefaultFace"
-msgstr ""
+msgstr "DefaultPath"
-#: ../C/gdm.xml:2535 (synopsis)
+#: ../C/gdm.xml:2563 (synopsis)
#, no-wrap
msgid "DefaultFace=&lt;share&gt;/pixmaps/nophoto.png"
msgstr ""
-#: ../C/gdm.xml:2536 (para)
+#: ../C/gdm.xml:2564 (para)
+#, fuzzy
msgid ""
"If a user has no defined face image, GDM will use the \"stock_person\" icon "
"defined in the current GTK+ theme. If no such image is defined, the image "
@@ -3322,17 +3363,22 @@ msgid ""
"be in an gdk-pixbuf supported format and the file must be readable to the "
"GDM user."
msgstr ""
+"Si un usuario no tiene una imagen de rostro definida, GDM usará el icono "
+"\"stock_person\" definido en el tema GTK+ actual. Si dicha imagen no está "
+"definida, entonces usará la imagen especificada en la opción de "
+"configuración <filename>DefaultFace</filename> como resguardo, normalmente /"
+"usr/share/pixmaps/nobody.png."
-#: ../C/gdm.xml:2548 (term)
+#: ../C/gdm.xml:2576 (term)
msgid "Include"
msgstr ""
-#: ../C/gdm.xml:2550 (synopsis)
+#: ../C/gdm.xml:2578 (synopsis)
#, no-wrap
msgid "Include="
msgstr ""
-#: ../C/gdm.xml:2551 (para)
+#: ../C/gdm.xml:2579 (para)
msgid ""
"Comma separated list of users to be included in the face browser and in the "
"<command>gdmsetup</command> selection list for Automatic/Timed login. See "
@@ -3340,16 +3386,16 @@ msgid ""
"<filename>MinimalUID</filename>."
msgstr ""
-#: ../C/gdm.xml:2563 (term)
+#: ../C/gdm.xml:2591 (term)
msgid "Exclude"
msgstr ""
-#: ../C/gdm.xml:2565 (synopsis)
+#: ../C/gdm.xml:2593 (synopsis)
#, no-wrap
msgid "Exclude=bin,daemon,adm,lp,sync,shutdown,halt,mail,..."
msgstr ""
-#: ../C/gdm.xml:2566 (para)
+#: ../C/gdm.xml:2594 (para)
msgid ""
"Comma separated list of users to be excluded from the face browser and from "
"the <command>gdmsetup</command> selection list for Automatic/Timed login. "
@@ -3358,16 +3404,16 @@ msgid ""
"filename>, and <filename>MinimalUID</filename>."
msgstr ""
-#: ../C/gdm.xml:2579 (term)
+#: ../C/gdm.xml:2607 (term)
msgid "IncludeAll"
msgstr ""
-#: ../C/gdm.xml:2581 (synopsis)
+#: ../C/gdm.xml:2609 (synopsis)
#, no-wrap
msgid "IncludeAll=false"
msgstr ""
-#: ../C/gdm.xml:2582 (para)
+#: ../C/gdm.xml:2610 (para)
msgid ""
"By default, an empty include list means display no users. By setting "
"IncludeAll to true, the password file will be scanned and all users will be "
@@ -3378,67 +3424,67 @@ msgid ""
"filename>, and <filename>MinimalUID</filename>."
msgstr ""
-#: ../C/gdm.xml:2598 (term)
+#: ../C/gdm.xml:2626 (term)
msgid "GlobalFaceDir"
msgstr ""
-#: ../C/gdm.xml:2600 (synopsis)
+#: ../C/gdm.xml:2628 (synopsis)
#, no-wrap
msgid "GlobalFaceDir=&lt;share&gt;/pixmaps/faces/"
msgstr ""
-#: ../C/gdm.xml:2601 (para)
+#: ../C/gdm.xml:2629 (para)
msgid ""
"Systemwide directory for face files. The sysadmin can place icons for users "
"here without touching their homedirs. Faces are named after their users' "
"logins."
msgstr ""
-#: ../C/gdm.xml:2607 (para)
+#: ../C/gdm.xml:2635 (para)
msgid ""
"I.e. <filename>&lt;GlobalFaceDir&gt;/johndoe</filename> would contain the "
"face icon for the user ``johndoe''. No image format extension should be "
"specified."
msgstr ""
-#: ../C/gdm.xml:2613 (para)
+#: ../C/gdm.xml:2641 (para)
msgid ""
"The face images must be stored in gdk-pixbuf supported formats and they must "
"be readable for the GDM user."
msgstr ""
-#: ../C/gdm.xml:2618 (para)
+#: ../C/gdm.xml:2646 (para)
msgid ""
"A user's own icon file will always take precedence over the sysadmin "
"provided one."
msgstr ""
-#: ../C/gdm.xml:2626 (term)
+#: ../C/gdm.xml:2654 (term)
msgid "GraphicalTheme"
msgstr ""
-#: ../C/gdm.xml:2628 (synopsis)
+#: ../C/gdm.xml:2656 (synopsis)
#, no-wrap
msgid "GraphicalTheme=circles"
msgstr ""
-#: ../C/gdm.xml:2629 (para)
+#: ../C/gdm.xml:2657 (para)
msgid ""
"The graphical theme that the Themed Greeter should use. it should refer to a "
"directory in the theme directory set by <filename>GraphicalThemeDir</"
"filename>."
msgstr ""
-#: ../C/gdm.xml:2638 (term)
+#: ../C/gdm.xml:2666 (term)
msgid "GraphicalThemes"
msgstr ""
-#: ../C/gdm.xml:2640 (synopsis)
+#: ../C/gdm.xml:2668 (synopsis)
#, no-wrap
msgid "GraphicalThemes=circles"
msgstr ""
-#: ../C/gdm.xml:2641 (para)
+#: ../C/gdm.xml:2669 (para)
msgid ""
"The graphical themes that the Themed Greeter should use is the Mode is set "
"on Random Themes. This is a \"/:\" delimited list. It should refer to a "
@@ -3447,16 +3493,16 @@ msgid ""
"set to true."
msgstr ""
-#: ../C/gdm.xml:2652 (term)
+#: ../C/gdm.xml:2680 (term)
msgid "GraphicalThemeRand"
msgstr ""
-#: ../C/gdm.xml:2654 (synopsis)
+#: ../C/gdm.xml:2682 (synopsis)
#, no-wrap
msgid "GraphicalThemeRand=false"
msgstr ""
-#: ../C/gdm.xml:2655 (para)
+#: ../C/gdm.xml:2683 (para)
msgid ""
"Whether the graphical greeter will use Only One Theme or Random Theme mode. "
"Only One Theme mode uses themes listed by <filename>GraphicalTheme</"
@@ -3466,44 +3512,44 @@ msgid ""
"mode."
msgstr ""
-#: ../C/gdm.xml:2667 (term)
+#: ../C/gdm.xml:2695 (term)
msgid "GraphicalThemeDir"
msgstr ""
-#: ../C/gdm.xml:2669 (synopsis)
+#: ../C/gdm.xml:2697 (synopsis)
#, no-wrap
msgid "GraphicalThemeDir=&lt;share&gt;/gdm/themes/"
msgstr ""
-#: ../C/gdm.xml:2670 (para)
+#: ../C/gdm.xml:2698 (para)
msgid "The directory where themes for the Themed Greeter are installed."
msgstr ""
-#: ../C/gdm.xml:2678 (term)
+#: ../C/gdm.xml:2706 (term)
msgid "GraphicalThemedColor"
msgstr ""
-#: ../C/gdm.xml:2680 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:2708 (synopsis)
+#, fuzzy, no-wrap
msgid "GraphicalThemedColor=#76848F"
-msgstr ""
+msgstr "BackgroundColor"
-#: ../C/gdm.xml:2681 (para)
+#: ../C/gdm.xml:2709 (para)
msgid ""
"Use this color in the background of the Themed Greeter. This only affects "
"the Themed Greeter."
msgstr ""
-#: ../C/gdm.xml:2689 (term)
+#: ../C/gdm.xml:2717 (term)
msgid "InfoMsgFile"
msgstr ""
-#: ../C/gdm.xml:2691 (synopsis)
+#: ../C/gdm.xml:2719 (synopsis)
#, no-wrap
msgid "InfoMsgFile=/path/to/infofile"
msgstr ""
-#: ../C/gdm.xml:2692 (para)
+#: ../C/gdm.xml:2720 (para)
msgid ""
"If present and /path/to/infofile specifies an existing and readable text "
"file (e.g. &lt;etc&gt;/infomsg.txt) the contents of the file will be "
@@ -3511,16 +3557,16 @@ msgid ""
"works both with the standard and the themable greeters."
msgstr ""
-#: ../C/gdm.xml:2703 (term)
+#: ../C/gdm.xml:2731 (term)
msgid "InfoMsgFont"
msgstr ""
-#: ../C/gdm.xml:2705 (synopsis)
+#: ../C/gdm.xml:2733 (synopsis)
#, no-wrap
msgid "InfoMsgFont=fontspec"
msgstr ""
-#: ../C/gdm.xml:2706 (para)
+#: ../C/gdm.xml:2734 (para)
msgid ""
"If present and InfoMsgFile (see above) is used, this specifies the font to "
"use when displaying the contents of the InfoMsgFile text file. For example "
@@ -3528,138 +3574,140 @@ msgid ""
"works both with the standard and the themable greeters."
msgstr ""
-#: ../C/gdm.xml:2718 (term)
+#: ../C/gdm.xml:2746 (term)
msgid "LocaleFile"
msgstr ""
-#: ../C/gdm.xml:2720 (synopsis)
+#: ../C/gdm.xml:2748 (synopsis)
#, no-wrap
msgid "LocaleFile=&lt;etc&gt;/gdm/locale.alias"
msgstr ""
-#: ../C/gdm.xml:2721 (para)
+#: ../C/gdm.xml:2749 (para)
msgid ""
"File in format similar to the GNU locale format with entries for all "
"supported languages on the system. The format is described above or in a "
"comment inside that file."
msgstr ""
-#: ../C/gdm.xml:2730 (term)
+#: ../C/gdm.xml:2758 (term)
+#, fuzzy
msgid "LockPosition"
-msgstr ""
+msgstr "PositionX"
-#: ../C/gdm.xml:2732 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:2760 (synopsis)
+#, fuzzy, no-wrap
msgid "LockPosition=true"
-msgstr ""
+msgstr "SetPosition=true"
-#: ../C/gdm.xml:2733 (para)
+#: ../C/gdm.xml:2761 (para)
msgid ""
"If true the position of the login window of the GTK+ Greeter cannot be "
"changed even if the title bar is turned on."
msgstr ""
-#: ../C/gdm.xml:2741 (term)
+#: ../C/gdm.xml:2769 (term)
msgid "Logo"
msgstr ""
-#: ../C/gdm.xml:2743 (synopsis)
+#: ../C/gdm.xml:2771 (synopsis)
#, no-wrap
msgid "Logo=&lt;share&gt;/pixmaps/gnome-logo-large.png"
msgstr ""
-#: ../C/gdm.xml:2744 (para)
+#: ../C/gdm.xml:2772 (para)
msgid ""
"Image file to display in the logo box. The file must be in an gdk-pixbuf "
"supported format and it must be readable by the GDM user. If no file is "
"specified the logo feature is disabled. This only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2755 (term)
+#: ../C/gdm.xml:2783 (term)
#, fuzzy
msgid "ChooserButtonLogo"
msgstr "ChooserButton"
-#: ../C/gdm.xml:2757 (synopsis)
+#: ../C/gdm.xml:2785 (synopsis)
#, no-wrap
msgid "ChooserButtonLogo=&lt;share&gt;/pixmaps/gnome-logo-large.png"
msgstr ""
-#: ../C/gdm.xml:2758 (para)
+#: ../C/gdm.xml:2786 (para)
msgid ""
-"Image file to display in the file chooser button in gdmsetup. This key is "
-"modified by gdmsetup and should not be manually modified by the user. This "
-"only affects the Login Window Preferences (gdmsetup)."
+"Image file to display in the file chooser button in <command>gdmsetup</"
+"command>. This key is modified by <command>gdmsetup</command> and should not "
+"be manually modified by the user. This only affects the Login Window "
+"Preferences (<command>gdmsetup</command>)."
msgstr ""
-#: ../C/gdm.xml:2768 (term)
+#: ../C/gdm.xml:2797 (term)
msgid "MinimalUID"
msgstr ""
-#: ../C/gdm.xml:2770 (synopsis)
+#: ../C/gdm.xml:2799 (synopsis)
#, no-wrap
msgid "MinimalUID=100"
msgstr ""
-#: ../C/gdm.xml:2771 (para)
+#: ../C/gdm.xml:2800 (para)
msgid ""
"The minimal UID that GDM should consider a user. All users with a lower UID "
"will be excluded from the face browser. See also <filename>Include</"
"filename>, <filename>Exclude</filename>, and <filename>IncludeAll</filename>."
msgstr ""
-#: ../C/gdm.xml:2782 (term)
+#: ../C/gdm.xml:2811 (term)
msgid "PositionX"
msgstr "PositionX"
-#: ../C/gdm.xml:2784 (synopsis)
+#: ../C/gdm.xml:2813 (synopsis)
#, no-wrap
msgid "PositionX=200"
msgstr "PositionX=200"
-#: ../C/gdm.xml:2785 (para)
+#: ../C/gdm.xml:2814 (para)
msgid "The horizontal position of the login window of the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2793 (term)
+#: ../C/gdm.xml:2822 (term)
msgid "PositionY"
msgstr "PositionY"
-#: ../C/gdm.xml:2795 (synopsis)
+#: ../C/gdm.xml:2824 (synopsis)
#, no-wrap
msgid "PositionY=100"
msgstr "PositionY=100"
-#: ../C/gdm.xml:2796 (para)
+#: ../C/gdm.xml:2825 (para)
msgid "The vertical position of the login window of the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2804 (term)
+#: ../C/gdm.xml:2833 (term)
msgid "Quiver"
msgstr "Quiver"
-#: ../C/gdm.xml:2806 (synopsis)
+#: ../C/gdm.xml:2835 (synopsis)
#, no-wrap
msgid "Quiver=true"
msgstr "Quiver=true"
-#: ../C/gdm.xml:2807 (para)
+#: ../C/gdm.xml:2836 (para)
msgid ""
"Controls whether <command>gdmlogin</command> should shake the display when "
"an incorrect username/password is entered. This only affects the GTK+ "
"Greeter."
msgstr ""
-#: ../C/gdm.xml:2817 (term)
+#: ../C/gdm.xml:2846 (term)
msgid "DefaultRemoteWelcome"
msgstr "DefaultRemoteWelcome"
-#: ../C/gdm.xml:2819 (synopsis)
+#: ../C/gdm.xml:2848 (synopsis)
#, no-wrap
msgid "DefaultRemoteWelcome=true"
msgstr "DefaultRemoteWelcome=true"
-#: ../C/gdm.xml:2820 (para)
+#: ../C/gdm.xml:2849 (para)
msgid ""
"If set to true, the value \"Welcome to %n\" is used for the "
"<filename>RemoteWelcome</filename>. This value is translated into the "
@@ -3668,76 +3716,78 @@ msgid ""
"<filename>Welcome</filename> setting is used."
msgstr ""
-#: ../C/gdm.xml:2831 (term)
+#: ../C/gdm.xml:2860 (term)
msgid "RemoteWelcome"
msgstr "RemoteWelcome"
-#: ../C/gdm.xml:2833 (synopsis)
+#: ../C/gdm.xml:2862 (synopsis)
#, no-wrap
msgid "RemoteWelcome=Welcome to n"
msgstr "RemoteWelcome=Welcome to n"
-#: ../C/gdm.xml:2834 (para)
+#: ../C/gdm.xml:2863 (para)
msgid ""
"Controls which text to display next to the logo image in the greeter for "
"remote XDMCP sessions. The same expansion is done here as in the "
"<filename>Welcome</filename> string."
msgstr ""
-#: ../C/gdm.xml:2843 (term)
+#: ../C/gdm.xml:2872 (term)
msgid "RunBackgroundProgramAlways"
msgstr "RunBackgroundProgramAlways"
-#: ../C/gdm.xml:2845 (synopsis)
+#: ../C/gdm.xml:2874 (synopsis)
#, no-wrap
msgid "RunBackgroundProgramAlways=false"
msgstr "RunBackgroundProgramAlways=false"
-#: ../C/gdm.xml:2846 (para)
+#: ../C/gdm.xml:2875 (para)
msgid ""
"If this is true then the background application is run always, otherwise it "
"is only run when the <filename>BackgroundType</filename> is 0 (None) This "
"only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:2856 (term)
+#: ../C/gdm.xml:2885 (term)
msgid "SetPosition"
msgstr "SetPosition"
-#: ../C/gdm.xml:2858 (synopsis)
+#: ../C/gdm.xml:2887 (synopsis)
#, no-wrap
msgid "SetPosition=true"
msgstr "SetPosition=true"
-#: ../C/gdm.xml:2859 (para)
+#: ../C/gdm.xml:2888 (para)
msgid ""
"If true the position of the login window of the GTK+ Greeter is determined "
"by <filename>PositionX</filename> / <filename>PositionY</filename>."
msgstr ""
-#: ../C/gdm.xml:2868 (term)
+#: ../C/gdm.xml:2897 (term)
+#, fuzzy
msgid "ShowGnomeFailsafeSession"
-msgstr ""
+msgstr "ShowXtermFailsafeSession"
-#: ../C/gdm.xml:2870 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:2899 (synopsis)
+#, fuzzy, no-wrap
msgid "ShowGnomeFailsafeSession=true"
-msgstr ""
+msgstr "ShowXtermFailsafeSession=true"
-#: ../C/gdm.xml:2871 (para)
+#: ../C/gdm.xml:2900 (para)
msgid "Should the greeter show the Gnome Failsafe session in th sessions list."
msgstr ""
-#: ../C/gdm.xml:2879 (term)
+#: ../C/gdm.xml:2908 (term)
+#, fuzzy
msgid "ShowLastSession"
-msgstr ""
+msgstr "ShowLastSession=true"
-#: ../C/gdm.xml:2881 (synopsis)
+#: ../C/gdm.xml:2910 (synopsis)
#, no-wrap
msgid "ShowLastSession=true"
msgstr "ShowLastSession=true"
-#: ../C/gdm.xml:2882 (para)
+#: ../C/gdm.xml:2911 (para)
msgid ""
"Should the greeter show the 'Last' session in the session list. If this is "
"off, then GDM is in the so called 'switchdesk' mode which for example Red "
@@ -3747,76 +3797,76 @@ msgid ""
"really circumvents saving of the last session."
msgstr ""
-#: ../C/gdm.xml:2895 (term)
+#: ../C/gdm.xml:2924 (term)
msgid "ShowXtermFailsafeSession"
msgstr "ShowXtermFailsafeSession"
-#: ../C/gdm.xml:2897 (synopsis)
+#: ../C/gdm.xml:2926 (synopsis)
#, no-wrap
msgid "ShowXtermFailsafeSession=true"
msgstr "ShowXtermFailsafeSession=true"
-#: ../C/gdm.xml:2898 (para)
+#: ../C/gdm.xml:2927 (para)
msgid ""
"Should the greeter show the Xterm Failsafe session in the sessions list."
msgstr ""
-#: ../C/gdm.xml:2906 (term)
+#: ../C/gdm.xml:2935 (term)
msgid "SoundOnLogin"
msgstr ""
-#: ../C/gdm.xml:2908 (synopsis)
+#: ../C/gdm.xml:2937 (synopsis)
#, no-wrap
msgid "SoundOnLogin=true"
msgstr ""
-#: ../C/gdm.xml:2909 (para)
+#: ../C/gdm.xml:2938 (para)
msgid ""
"If true, the greeter will play a sound or beep when it is ready for a login. "
"See also the <filename>SoundOnLoginFile</filename> key. Supported since "
"2.5.90.0."
msgstr ""
-#: ../C/gdm.xml:2919 (term)
+#: ../C/gdm.xml:2948 (term)
msgid "SoundOnLoginSuccess"
msgstr ""
-#: ../C/gdm.xml:2921 (synopsis)
+#: ../C/gdm.xml:2950 (synopsis)
#, no-wrap
msgid "SoundOnLoginSuccess=true"
msgstr ""
-#: ../C/gdm.xml:2922 (para)
+#: ../C/gdm.xml:2951 (para)
msgid ""
"If true, the greeter will play a sound after a successful login attempt. See "
"also the <filename>SoundOnLoginSuccessFile</filename> key."
msgstr ""
-#: ../C/gdm.xml:2931 (term)
+#: ../C/gdm.xml:2960 (term)
msgid "SoundOnLoginFailure"
msgstr ""
-#: ../C/gdm.xml:2933 (synopsis)
+#: ../C/gdm.xml:2962 (synopsis)
#, no-wrap
msgid "SoundOnLoginFailure=true"
msgstr ""
-#: ../C/gdm.xml:2934 (para)
+#: ../C/gdm.xml:2963 (para)
msgid ""
"If true, the greeter will play a sound after a failed login attempt. See "
"also the <filename>SoundOnLoginFailureFile</filename> key."
msgstr ""
-#: ../C/gdm.xml:2943 (term)
+#: ../C/gdm.xml:2972 (term)
msgid "SoundOnLoginFile"
msgstr ""
-#: ../C/gdm.xml:2945 (synopsis)
+#: ../C/gdm.xml:2974 (synopsis)
#, no-wrap
msgid "SoundOnLoginFile=/path/to/sound.wav"
msgstr ""
-#: ../C/gdm.xml:2946 (para)
+#: ../C/gdm.xml:2975 (para)
msgid ""
"The file that will be played using the specified sound application (by "
"default that is <filename>/usr/bin/play</filename>) instead of a beep when "
@@ -3825,16 +3875,16 @@ msgid ""
"2.5.90.0."
msgstr ""
-#: ../C/gdm.xml:2958 (term)
+#: ../C/gdm.xml:2987 (term)
msgid "SoundOnLoginSuccessFile"
msgstr ""
-#: ../C/gdm.xml:2960 (synopsis)
+#: ../C/gdm.xml:2989 (synopsis)
#, no-wrap
msgid "SoundOnLoginSuccessFile=/path/to/sound.wav"
msgstr ""
-#: ../C/gdm.xml:2961 (para)
+#: ../C/gdm.xml:2990 (para)
msgid ""
"The file that will be played using the specified sound application (by "
"default that is <filename>/usr/bin/play</filename>) after a successful login "
@@ -3842,16 +3892,16 @@ msgid ""
"<filename>SoundProgram</filename> key."
msgstr ""
-#: ../C/gdm.xml:2972 (term)
+#: ../C/gdm.xml:3001 (term)
msgid "SoundOnLoginFailureFile"
msgstr ""
-#: ../C/gdm.xml:2974 (synopsis)
+#: ../C/gdm.xml:3003 (synopsis)
#, no-wrap
msgid "SoundOnLoginFailureFile=/path/to/sound.wav"
msgstr ""
-#: ../C/gdm.xml:2975 (para)
+#: ../C/gdm.xml:3004 (para)
msgid ""
"The file that will be played using the specified sound application (by "
"default that is <filename>/usr/bin/play</filename>) after a failed login "
@@ -3859,16 +3909,16 @@ msgid ""
"<filename>SoundProgram</filename> key."
msgstr ""
-#: ../C/gdm.xml:2986 (term)
+#: ../C/gdm.xml:3015 (term)
msgid "SystemMenu"
msgstr ""
-#: ../C/gdm.xml:2988 (synopsis)
+#: ../C/gdm.xml:3017 (synopsis)
#, no-wrap
msgid "SystemMenu=true"
msgstr ""
-#: ../C/gdm.xml:2989 (para)
+#: ../C/gdm.xml:3018 (para)
msgid ""
"Turns the Actions menu (which used to be called System menu) on or off. If "
"this is off then one of the actions will be available anywhere. These "
@@ -3880,7 +3930,7 @@ msgid ""
"users having any sort of console privileges."
msgstr ""
-#: ../C/gdm.xml:3002 (para)
+#: ../C/gdm.xml:3031 (para)
msgid ""
"Note that if this is off none of the actions will be available even if a "
"theme for a graphical greeter mistakenly shows them. Also note that "
@@ -3888,37 +3938,37 @@ msgid ""
"buttons and you may have to press F10 to see the menu."
msgstr ""
-#: ../C/gdm.xml:3013 (term)
+#: ../C/gdm.xml:3042 (term)
msgid "TitleBar"
msgstr ""
-#: ../C/gdm.xml:3015 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:3044 (synopsis)
+#, fuzzy, no-wrap
msgid "TitleBar=true"
-msgstr ""
+msgstr "Quiver=true"
-#: ../C/gdm.xml:3016 (para)
+#: ../C/gdm.xml:3045 (para)
msgid ""
"Display the title bar in the greeter. This only affects the GTK+ Greeter."
msgstr ""
-#: ../C/gdm.xml:3024 (term)
+#: ../C/gdm.xml:3053 (term)
msgid "Use24Clock"
msgstr ""
-#: ../C/gdm.xml:3026 (synopsis)
+#: ../C/gdm.xml:3055 (synopsis)
#, no-wrap
msgid "Use24Clock=auto"
msgstr ""
-#: ../C/gdm.xml:3027 (para)
+#: ../C/gdm.xml:3056 (para)
msgid ""
"Select the use of 24 hour clock. Some locales do not support 12 hour format "
"(like Finnish, that is <filename>fi_FI</filename>), and in those locales "
"this setting has no effect at all."
msgstr ""
-#: ../C/gdm.xml:3033 (para)
+#: ../C/gdm.xml:3062 (para)
msgid ""
"Possible values are \"auto\" (default), \"true\", and \"false\". If this is "
"set to \"auto\" or left empty, then time format is chosen from locale "
@@ -3929,154 +3979,158 @@ msgid ""
"library manual."
msgstr ""
-#: ../C/gdm.xml:3048 (term)
+#: ../C/gdm.xml:3077 (term)
msgid "UseCirclesInEntry"
msgstr ""
-#: ../C/gdm.xml:3050 (synopsis)
+#: ../C/gdm.xml:3079 (synopsis)
#, no-wrap
msgid "UseCirclesInEntry=false"
msgstr ""
-#: ../C/gdm.xml:3051 (para)
+#: ../C/gdm.xml:3080 (para)
msgid ""
"Use circles instead of asterisks in the password entry. This may not work "
"with all fonts however."
msgstr ""
-#: ../C/gdm.xml:3059 (term)
+#: ../C/gdm.xml:3088 (term)
msgid "UseInvisibleInEntry"
msgstr ""
-#: ../C/gdm.xml:3061 (synopsis)
+#: ../C/gdm.xml:3090 (synopsis)
#, no-wrap
msgid "UseInvisibleInEntry=false"
msgstr ""
-#: ../C/gdm.xml:3062 (para)
+#: ../C/gdm.xml:3091 (para)
msgid ""
"Do not show any visual feedback is the password entry. This is the standard "
"in console and xdm. Settings this option discards the \"UseCirclesInEntry\" "
"option."
msgstr ""
-#: ../C/gdm.xml:3071 (term)
+#: ../C/gdm.xml:3100 (term)
+#, fuzzy
msgid "DefaultWelcome"
-msgstr ""
+msgstr "DefaultRemoteWelcome"
-#: ../C/gdm.xml:3073 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:3102 (synopsis)
+#, fuzzy, no-wrap
msgid "DefaultWelcome=true"
-msgstr ""
+msgstr "DefaultRemoteWelcome=true"
-#: ../C/gdm.xml:3074 (para)
+#: ../C/gdm.xml:3103 (para)
msgid ""
"If set to true, the value \"Welcome\" is used for the <filename>Welcome</"
"filename>. This value is translated into the appropriate language for the "
"user. If set to false, the <filename>Welcome</filename> setting is used."
msgstr ""
-#: ../C/gdm.xml:3084 (term)
+#: ../C/gdm.xml:3113 (term)
+#, fuzzy
msgid "Welcome"
-msgstr ""
+msgstr "RemoteWelcome"
-#: ../C/gdm.xml:3086 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:3115 (synopsis)
+#, fuzzy, no-wrap
msgid "Welcome=Welcome"
-msgstr ""
+msgstr "RemoteWelcome=Welcome to n"
-#: ../C/gdm.xml:3087 (para)
+#: ../C/gdm.xml:3116 (para)
msgid ""
"Controls which text to display next to the logo image in the standard "
"greeter. The following control chars are supported:"
msgstr ""
-#: ../C/gdm.xml:3096 (para)
+#: ../C/gdm.xml:3125 (para)
+#, fuzzy
msgid "d display's hostname"
-msgstr ""
+msgstr "h nombre de host del display"
-#: ../C/gdm.xml:3100 (para)
+#: ../C/gdm.xml:3129 (para)
msgid "h Fully qualified hostname"
msgstr ""
-#: ../C/gdm.xml:3104 (para)
+#: ../C/gdm.xml:3133 (para)
msgid "m machine (processor type)"
msgstr ""
-#: ../C/gdm.xml:3108 (para)
+#: ../C/gdm.xml:3137 (para)
msgid "n Nodename (i.e. hostname without .domain)"
msgstr ""
-#: ../C/gdm.xml:3112 (para)
+#: ../C/gdm.xml:3141 (para)
msgid "r release (OS version)"
msgstr ""
-#: ../C/gdm.xml:3116 (para)
+#: ../C/gdm.xml:3145 (para)
msgid "s sysname (i.e. OS)"
msgstr ""
-#: ../C/gdm.xml:3120 (para)
+#: ../C/gdm.xml:3149 (para)
msgid ""
"This string is only used for local logins. For remote XDMCP logins we use "
"<filename>RemoteWelcome</filename>."
msgstr ""
-#: ../C/gdm.xml:3125 (para)
+#: ../C/gdm.xml:3154 (para)
msgid ""
"In the Themed Greeter the location of this text depends on the theme. Unless "
"the theme uses the stock welcome string somewhere this string will not be "
"displayed at all."
msgstr ""
-#: ../C/gdm.xml:3135 (term)
+#: ../C/gdm.xml:3164 (term)
msgid "XineramaScreen"
msgstr ""
-#: ../C/gdm.xml:3137 (synopsis)
+#: ../C/gdm.xml:3166 (synopsis)
#, no-wrap
msgid "XineramaScreen=0"
msgstr ""
-#: ../C/gdm.xml:3138 (para)
+#: ../C/gdm.xml:3167 (para)
msgid ""
"If the Xinerama extension is active the login window will be centered on "
"this physical screen (use 0 for the first screen, 1 for the second...)."
msgstr ""
-#: ../C/gdm.xml:3152 (title)
+#: ../C/gdm.xml:3181 (title)
msgid "XDCMP Chooser Options"
msgstr ""
-#: ../C/gdm.xml:3155 (title)
+#: ../C/gdm.xml:3184 (title)
+#, fuzzy
msgid "[chooser]"
-msgstr ""
+msgstr "chooser"
-#: ../C/gdm.xml:3158 (term)
+#: ../C/gdm.xml:3187 (term)
msgid "AllowAdd"
msgstr ""
-#: ../C/gdm.xml:3160 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:3189 (synopsis)
+#, fuzzy, no-wrap
msgid "AllowAdd=true"
-msgstr ""
+msgstr "AllowRoot=true"
-#: ../C/gdm.xml:3161 (para)
+#: ../C/gdm.xml:3190 (para)
msgid ""
"If true, allow the user to add arbitrary hosts to the chooser. This way the "
"user could connect to any host that responds to XDMCP queries from the "
"chooser."
msgstr ""
-#: ../C/gdm.xml:3170 (term)
+#: ../C/gdm.xml:3199 (term)
msgid "Broadcast"
msgstr ""
-#: ../C/gdm.xml:3172 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:3201 (synopsis)
+#, fuzzy, no-wrap
msgid "Broadcast=true"
-msgstr ""
+msgstr "Browser=true"
-#: ../C/gdm.xml:3173 (para)
+#: ../C/gdm.xml:3202 (para)
msgid ""
"If true, the chooser will broadcast a query to the local network and collect "
"responses. This way the chooser will always show all available managers on "
@@ -4085,16 +4139,17 @@ msgid ""
"<filename>Hosts</filename> key."
msgstr ""
-#: ../C/gdm.xml:3185 (term)
+#: ../C/gdm.xml:3214 (term)
+#, fuzzy
msgid "Multicast"
-msgstr ""
+msgstr "lista"
-#: ../C/gdm.xml:3187 (synopsis)
+#: ../C/gdm.xml:3216 (synopsis)
#, no-wrap
msgid "Multicast=true"
msgstr ""
-#: ../C/gdm.xml:3188 (para)
+#: ../C/gdm.xml:3217 (para)
msgid ""
"If true and IPv6 is enabled, the chooser will send a multicast query to the "
"local network and collect responses from the hosts who have joined multicast "
@@ -4103,67 +4158,68 @@ msgid ""
"listening to XDMCP requests and IPv6 is enabled there."
msgstr ""
-#: ../C/gdm.xml:3200 (term)
+#: ../C/gdm.xml:3229 (term)
msgid "MulticastAddr"
msgstr ""
-#: ../C/gdm.xml:3202 (synopsis)
+#: ../C/gdm.xml:3231 (synopsis)
#, no-wrap
msgid "MulticastAddr=ff02::1"
msgstr ""
-#: ../C/gdm.xml:3203 (para)
+#: ../C/gdm.xml:3232 (para)
msgid "This is the Link-local Multicast address and is hardcoded here."
msgstr ""
-#: ../C/gdm.xml:3210 (term)
+#: ../C/gdm.xml:3239 (term)
+#, fuzzy
msgid "DefaultHostImage"
-msgstr ""
+msgstr "DefaultRemoteWelcome"
-#: ../C/gdm.xml:3212 (synopsis)
+#: ../C/gdm.xml:3241 (synopsis)
#, no-wrap
msgid "DefaultHostImage=&lt;share&gt;/pixmaps/nohost.png"
msgstr ""
-#: ../C/gdm.xml:3213 (para)
+#: ../C/gdm.xml:3242 (para)
msgid ""
"File name for the default host icon. This image will be displayed if no icon "
"is specified for a given host. The file must be in an gdk-pixbuf supported "
"format and it must be readable for the GDM user."
msgstr ""
-#: ../C/gdm.xml:3223 (term)
+#: ../C/gdm.xml:3252 (term)
msgid "HostImageDir"
msgstr ""
-#: ../C/gdm.xml:3225 (synopsis)
-#, no-wrap
+#: ../C/gdm.xml:3254 (synopsis)
+#, fuzzy, no-wrap
msgid "HostImageDir=&lt;share&gt;/hosts"
-msgstr ""
+msgstr "LogDir=&lt;var&gt;/log/gdm"
-#: ../C/gdm.xml:3226 (para)
+#: ../C/gdm.xml:3255 (para)
msgid ""
"Repository for host icon files. The sysadmin can place icons for remote "
"hosts here and they will appear in <filename>gdmchooser</filename>."
msgstr ""
-#: ../C/gdm.xml:3232 (para)
+#: ../C/gdm.xml:3261 (para)
msgid ""
"The file name must match the fully qualified name (FQDN) for the host. The "
"icons must be stored in gdk-pixbuf supported formats and they must be "
"readable to the GDM user."
msgstr ""
-#: ../C/gdm.xml:3242 (term)
+#: ../C/gdm.xml:3271 (term)
msgid "Hosts"
msgstr ""
-#: ../C/gdm.xml:3244 (synopsis)
+#: ../C/gdm.xml:3273 (synopsis)
#, no-wrap
msgid "Hosts=host1,host2"
msgstr ""
-#: ../C/gdm.xml:3245 (para)
+#: ../C/gdm.xml:3274 (para)
msgid ""
"The hosts which should be listed in the chooser. The chooser will only list "
"them if they respond. This is done in addition to broadcast (if "
@@ -4172,47 +4228,48 @@ msgid ""
"hosts to be reachable by a broadcast packet."
msgstr ""
-#: ../C/gdm.xml:3257 (term)
+#: ../C/gdm.xml:3286 (term)
msgid "ScanTime"
msgstr ""
-#: ../C/gdm.xml:3259 (synopsis)
+#: ../C/gdm.xml:3288 (synopsis)
#, no-wrap
msgid "ScanTime=4"
msgstr ""
-#: ../C/gdm.xml:3260 (para)
+#: ../C/gdm.xml:3289 (para)
msgid ""
"Specifies how many seconds the chooser should wait for replies to its "
"BROADCAST_QUERY. Really this is only the time in which we expect a reply. We "
"will still add hosts to the list even if they reply after this time."
msgstr ""
-#: ../C/gdm.xml:3274 (title)
+#: ../C/gdm.xml:3303 (title)
msgid "Debug Configuration"
msgstr "Configuración de depuración"
-#: ../C/gdm.xml:3277 (title)
+#: ../C/gdm.xml:3306 (title)
msgid "[debug]"
msgstr ""
-#: ../C/gdm.xml:3283 (para)
+#: ../C/gdm.xml:3312 (para)
msgid ""
"Setting to true sends debug ouput to the syslog. This can be useful for "
"tracking down problems with GDM. This output tends to be verbose so should "
"not be turned on for general use."
msgstr ""
-#: ../C/gdm.xml:3293 (term)
+#: ../C/gdm.xml:3322 (term)
+#, fuzzy
msgid "Gestures"
-msgstr ""
+msgstr "Gestures=false"
-#: ../C/gdm.xml:3295 (synopsis)
+#: ../C/gdm.xml:3324 (synopsis)
#, no-wrap
msgid "Gestures=false"
msgstr "Gestures=false"
-#: ../C/gdm.xml:3296 (para)
+#: ../C/gdm.xml:3325 (para)
msgid ""
"Setting to true sends debug ouput concerning the accessibility gesture "
"listeners to the syslog. This can be useful for tracking down problems with "
@@ -4220,11 +4277,11 @@ msgid ""
"turned on for general use."
msgstr ""
-#: ../C/gdm.xml:3310 (title)
+#: ../C/gdm.xml:3339 (title)
msgid "X Server definitions"
msgstr ""
-#: ../C/gdm.xml:3312 (para)
+#: ../C/gdm.xml:3341 (para)
msgid ""
"To set up X servers, you need to provide GDM with information about the "
"installed X servers. You can have as many different definitions as you wish, "
@@ -4235,7 +4292,7 @@ msgid ""
"default, in situations when no other server has been defined."
msgstr ""
-#: ../C/gdm.xml:3323 (para)
+#: ../C/gdm.xml:3352 (para)
msgid ""
"Servers are defined by sections named <filename>server-</filename> followed "
"by the identifier of this server. This should be a simple ASCII string with "
@@ -4244,63 +4301,64 @@ msgid ""
"identify the server."
msgstr ""
-#: ../C/gdm.xml:3332 (title)
+#: ../C/gdm.xml:3361 (title)
+#, fuzzy
msgid "[server-Standard]"
-msgstr ""
+msgstr "[servers]"
-#: ../C/gdm.xml:3335 (term)
+#: ../C/gdm.xml:3364 (term)
msgid "name"
msgstr ""
-#: ../C/gdm.xml:3337 (synopsis)
+#: ../C/gdm.xml:3366 (synopsis)
#, no-wrap
msgid "name=Standard server"
msgstr "name=Standard server"
-#: ../C/gdm.xml:3338 (para)
+#: ../C/gdm.xml:3367 (para)
msgid "The name that will be displayed to the user."
msgstr ""
-#: ../C/gdm.xml:3345 (term)
+#: ../C/gdm.xml:3374 (term)
msgid "command"
msgstr "command"
-#: ../C/gdm.xml:3347 (synopsis)
+#: ../C/gdm.xml:3376 (synopsis)
#, no-wrap
msgid "command=/usr/bin/X11/X"
msgstr "command=/usr/bin/X11/X"
-#: ../C/gdm.xml:3348 (para)
+#: ../C/gdm.xml:3377 (para)
msgid ""
"The command to execute, with full path to the binary of the X server, and "
"any extra arguments needed."
msgstr ""
-#: ../C/gdm.xml:3356 (term)
+#: ../C/gdm.xml:3385 (term)
msgid "flexible"
msgstr "flexible"
-#: ../C/gdm.xml:3358 (synopsis)
+#: ../C/gdm.xml:3387 (synopsis)
#, no-wrap
msgid "flexible=true"
msgstr "flexible=true"
-#: ../C/gdm.xml:3359 (para)
+#: ../C/gdm.xml:3388 (para)
msgid ""
"Indicates if this server is available as a choice when a user wishes to run "
"a flexible, on demand server."
msgstr ""
-#: ../C/gdm.xml:3367 (term)
+#: ../C/gdm.xml:3396 (term)
msgid "handled"
msgstr "handled"
-#: ../C/gdm.xml:3369 (synopsis)
+#: ../C/gdm.xml:3398 (synopsis)
#, no-wrap
msgid "handled=true"
msgstr "handled=true"
-#: ../C/gdm.xml:3370 (para)
+#: ../C/gdm.xml:3399 (para)
msgid ""
"Indicates that GDM should run the login window on this server and allow a "
"user to log in. If set to false, then GDM will just run this server and wait "
@@ -4312,26 +4370,27 @@ msgid ""
"progress for the entire time this server is active."
msgstr ""
-#: ../C/gdm.xml:3386 (term)
+#: ../C/gdm.xml:3415 (term)
msgid "chooser"
msgstr "chooser"
-#: ../C/gdm.xml:3388 (synopsis)
+#: ../C/gdm.xml:3417 (synopsis)
#, no-wrap
msgid "chooser=false"
msgstr "chooser=false"
-#: ../C/gdm.xml:3389 (para)
+#: ../C/gdm.xml:3418 (para)
msgid ""
"Indicates that GDM should instead of a login window run a chooser on this "
"window and allow the user to choose which server to log into."
msgstr ""
-#: ../C/gdm.xml:3403 (title)
+#: ../C/gdm.xml:3432 (title)
+#, fuzzy
msgid "Local Static X Server Configuration"
-msgstr ""
+msgstr "Configuración del interfaz"
-#: ../C/gdm.xml:3405 (para)
+#: ../C/gdm.xml:3434 (para)
msgid ""
"The static X servers are servers that are always running, when the server "
"ever dies, it is restarted. You can have as many local static servers as you "
@@ -4341,47 +4400,47 @@ msgid ""
"display <filename>:0</filename>."
msgstr ""
-#: ../C/gdm.xml:3416 (title)
+#: ../C/gdm.xml:3445 (title)
msgid "[servers]"
msgstr "[servers]"
-#: ../C/gdm.xml:3419 (term)
+#: ../C/gdm.xml:3448 (term)
msgid "&lt;display number&gt;"
msgstr "&lt;display number&gt;"
-#: ../C/gdm.xml:3421 (synopsis)
+#: ../C/gdm.xml:3450 (synopsis)
#, no-wrap
msgid "0=Standard"
msgstr "0=Standard"
-#: ../C/gdm.xml:3422 (para)
+#: ../C/gdm.xml:3451 (para)
msgid ""
"Control section for local X servers. Each line indicates the local display "
"number and the command that needs to be run to start the X server(s)."
msgstr ""
-#: ../C/gdm.xml:3428 (para)
+#: ../C/gdm.xml:3457 (para)
msgid ""
"The command can either be a path to an X executable, or a name of one of the "
"server definitions. This can be followed by some arguments that should be "
"passed to the X server when executed."
msgstr ""
-#: ../C/gdm.xml:3434 (para)
+#: ../C/gdm.xml:3463 (para)
msgid ""
"The gdm daemon doesn't enforce the numbers to be in order or for them to be "
"\"packed\". However when you use the GUI configurator, the servers will "
"always start from 0 and go up by 1. That is, leaving no holes."
msgstr ""
-#: ../C/gdm.xml:3441 (para)
+#: ../C/gdm.xml:3470 (para)
msgid ""
"GDM will splice \"<filename>-auth &lt;ServAuthDir&gt;/:n.Xauth :n</filename>"
"\", where n is the display number. Inside the command line before all other "
"arguments before running the server."
msgstr ""
-#: ../C/gdm.xml:3448 (para)
+#: ../C/gdm.xml:3477 (para)
msgid ""
"On some systems it is necessary for GDM to know on which virtual consoles to "
"run the X server. In this case, (if running XFree86) add \"vt7\" to the "
@@ -4390,18 +4449,19 @@ msgid ""
"filename> key is set."
msgstr ""
-#: ../C/gdm.xml:3458 (para)
+#: ../C/gdm.xml:3487 (para)
msgid ""
"Normally you do not need to add a <filename>-nolisten tcp</filename> flag as "
"this is added automatically for local servers when the "
"<filename>DisallowTCP</filename> option is set."
msgstr ""
-#: ../C/gdm.xml:3474 (title)
+#: ../C/gdm.xml:3503 (title)
+#, fuzzy
msgid "Per User Configuration"
-msgstr ""
+msgstr "Configuración del interfaz"
-#: ../C/gdm.xml:3476 (para)
+#: ../C/gdm.xml:3505 (para)
msgid ""
"There are some per user configuration settings that control how GDM behaves. "
"Firstly there is the <filename>~/.dmrc</filename> file. In theory this file "
@@ -4416,7 +4476,7 @@ msgid ""
"file would normally look as follows:"
msgstr ""
-#: ../C/gdm.xml:3491 (screen)
+#: ../C/gdm.xml:3520 (screen)
#, no-wrap
msgid ""
"\n"
@@ -4431,14 +4491,15 @@ msgstr ""
"Language=cs_CZ.UTF-8\n"
" "
-#: ../C/gdm.xml:3497 (para)
+#: ../C/gdm.xml:3526 (para)
msgid ""
"The user can also configure a face image for the face browser. This is done "
"by copying an image into a file called <filename>~/.face</filename>. This "
"should be a standard image that GTK+ can read, such as PNG."
msgstr ""
-#: ../C/gdm.xml:3504 (para)
+#: ../C/gdm.xml:3533 (para)
+#, fuzzy
msgid ""
"Face images can also be placed in the global face directory, which is "
"normally <filename>&lt;share&gt;/pixmaps/faces/</filename> (though this can "
@@ -4446,23 +4507,33 @@ msgid ""
"option) and the filename should be the name of the user, optionally with a "
"<filename>.png</filename> appended."
msgstr ""
+"Los iconos usados por GDM pueden instalarse globalmente por el administrador "
+"del sistema o pueden ser colocados en los directorios personales de los "
+"usuarios.. Si se instalan globalmente deberían estar en el directorio "
+"<filename>&lt;share&gt;/pixmaps/faces/</filename> (aunque esto puede "
+"configurarse con la opción <filename>GlobalFaceDir</filename>) y el nombre "
+"del archivo debería ser el nombre del usuario, opcionalmente con un "
+"<filename>.png</filename> agregado. Los iconos de caras colocados en el "
+"directorio global de caras deben ser leíbles por el usuario GDM. Sin "
+"embargo, el demonio, proximiza las fotografías de los usuarios al interfaz y "
+"debido a esto no tienen que ser leíbles por el usuario GDM sino por el root."
-#: ../C/gdm.xml:3517 (title)
+#: ../C/gdm.xml:3546 (title)
msgid "Controlling GDM"
msgstr ""
-#: ../C/gdm.xml:3519 (para)
+#: ../C/gdm.xml:3548 (para)
msgid ""
"You can control GDM behavior during runtime in several different ways. You "
"can either run certain commands, or you can talk to GDM using either a unix "
"socket protocol, or a FIFO protocol."
msgstr ""
-#: ../C/gdm.xml:3526 (title)
+#: ../C/gdm.xml:3555 (title)
msgid "Commands"
msgstr "Comandos"
-#: ../C/gdm.xml:3528 (para)
+#: ../C/gdm.xml:3557 (para)
msgid ""
"To stop GDM, you can either send the TERM signal to the main daemon or run "
"the <command>gdm-stop</command> command which is in the <filename>&lt;"
@@ -4475,7 +4546,7 @@ msgid ""
"directory as well."
msgstr ""
-#: ../C/gdm.xml:3541 (para)
+#: ../C/gdm.xml:3570 (para)
msgid ""
"The <command>gdmflexiserver</command> command can be used to start new "
"flexible (on demand) servers if your system supports virtual terminals. This "
@@ -4489,11 +4560,11 @@ msgid ""
"get a listing of possible options."
msgstr ""
-#: ../C/gdm.xml:3557 (title)
+#: ../C/gdm.xml:3586 (title)
msgid "The FIFO protocol"
msgstr ""
-#: ../C/gdm.xml:3559 (para)
+#: ../C/gdm.xml:3588 (para)
msgid ""
"GDM also provides a FIFO called <filename>.gdmfifo</filename> in the "
"<filename>ServAuthDir</filename> directory (usually <filename>&lt;var&gt;/"
@@ -4505,7 +4576,7 @@ msgid ""
"application)."
msgstr ""
-#: ../C/gdm.xml:3570 (para)
+#: ../C/gdm.xml:3599 (para)
msgid ""
"Full and up to date documentation of the commands and their use is contained "
"in the GDM source tree in the file <filename>daemon/gdm.h</filename>. Look "
@@ -4515,11 +4586,11 @@ msgid ""
"should not be used."
msgstr ""
-#: ../C/gdm.xml:3582 (title)
+#: ../C/gdm.xml:3611 (title)
msgid "Socket Protocol"
msgstr ""
-#: ../C/gdm.xml:3584 (para)
+#: ../C/gdm.xml:3613 (para)
msgid ""
"GDM provides a unix domain socket for communication at <filename>/tmp/."
"gdm_socket</filename>. Using this you can check if GDM is running, the "
@@ -4530,12 +4601,12 @@ msgid ""
"<command>gdmflexiserver</command> command."
msgstr ""
-#: ../C/gdm.xml:3594 (para)
+#: ../C/gdm.xml:3623 (para)
msgid ""
"gdmflexiserver accepts the following commands with the --command option:"
msgstr ""
-#: ../C/gdm.xml:3599 (screen)
+#: ../C/gdm.xml:3628 (screen)
#, fuzzy, no-wrap
msgid ""
"\n"
@@ -4578,23 +4649,23 @@ msgstr ""
"CLOSE\n"
" "
-#: ../C/gdm.xml:3620 (para)
+#: ../C/gdm.xml:3649 (para)
msgid ""
"These are described in detail below, including required arguments, response "
"format, and return codes."
msgstr ""
-#: ../C/gdm.xml:3626 (title)
+#: ../C/gdm.xml:3655 (title)
msgid "VERSION"
msgstr "VERSION"
-#: ../C/gdm.xml:3627 (screen)
-#, no-wrap
+#: ../C/gdm.xml:3656 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
-"VERSION: Query version\n"
+"VERSION: Query GDM version\n"
"Supported since: 2.2.4.0\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" GDM &lt;gdm version&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4613,11 +4684,11 @@ msgstr ""
" 999 = Unknown error\n"
" "
-#: ../C/gdm.xml:3640 (title)
+#: ../C/gdm.xml:3669 (title)
msgid "AUTH_LOCAL"
msgstr "AUTH_LOCAL"
-#: ../C/gdm.xml:3641 (screen)
+#: ../C/gdm.xml:3670 (screen)
#, no-wrap
msgid ""
"\n"
@@ -4631,8 +4702,13 @@ msgid ""
"Note: The AUTH LOCAL command requires the\n"
" --authenticate option, although only\n"
" FLEXI XSERVER uses this currently.\n"
+"Note: Since 2.6.0.6 you can also use a global\n"
+" &lt;ServAuthDir&gt;/.cookie, which works for all\n"
+" authentication except for SET_LOGOUT_ACTION and\n"
+" QUERY_LOGOUT_ACTION and SET_SAFE_LOGOUT_ACTION\n"
+" which require a logged in display.\n"
"Supported since: 2.2.4.0\n"
-"Arguments: &lt;xauth cookie&gt;\n"
+"Arguments: &lt;xauth cookie&gt;\n"
" &lt;xauth cookie&gt; is in hex form with no 0x prefix\n"
"Answers:\n"
" OK\n"
@@ -4644,18 +4720,18 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:3666 (title)
+#: ../C/gdm.xml:3700 (title)
msgid "FLEXI_XSERVER"
msgstr "FLEXI_XSERVER"
-#: ../C/gdm.xml:3667 (screen)
-#, no-wrap
+#: ../C/gdm.xml:3701 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
-"FLEXI_XSERVER: Start a new X flexible server\n"
-"Only supported on connection that passed AUTH_LOCAL\n"
+"FLEXI_XSERVER: Start a new X flexible server. Only supported on\n"
+" connection that passed AUTH_LOCAL\n"
"Supported since: 2.2.4.0\n"
-"Arguments: &lt;xserver type&gt;\n"
+"Arguments: &lt;xserver type&gt;\n"
" If no arguments, starts the standard x server\n"
"Answers:\n"
" OK &lt;display&gt;\n"
@@ -4671,17 +4747,27 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:3689 (title)
+#: ../C/gdm.xml:3723 (title)
msgid "FLEXI_XNEST"
msgstr "FLEXI_XNEST"
-#: ../C/gdm.xml:3690 (screen)
+#: ../C/gdm.xml:3724 (screen)
#, no-wrap
msgid ""
"\n"
-"FLEXI_XNEXT: Start a new flexible Xnest server\n"
-"Note: Supported an older version from 2.2.4.0, later\n"
+"FLEXI_XNEXT: Start a new flexible Xnest server.\n"
+"Note: Supported on older version from 2.2.4.0, later\n"
" 2.2.4.2, but since 2.3.90.4 you must supply 4\n"
" arguments or ERROR 100 will be returned. This\n"
" will start Xnest using the XAUTHORITY file\n"
@@ -4698,8 +4784,8 @@ msgid ""
" use you should generate one first. The cookie\n"
" should be in hex form.\n"
"Supported since: 2.3.90.4\n"
-"Arguments: &lt;display to run on&gt; &lt;uid of requesting user&gt;\n"
-" &lt;xauth cookie for the display&gt; &lt;xauth file&gt;\n"
+"Arguments: &lt;display to run on&gt; &lt;uid of requesting user&gt;\n"
+" &lt;xauth cookie for the display&gt; &lt;xauth file&gt;\n"
"Answers:\n"
" OK &lt;display&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4716,20 +4802,21 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:3728 (title)
+#: ../C/gdm.xml:3762 (title)
msgid "ADD_DYNAMIC_DISPLAY"
msgstr "ADD_DYNAMIC_DISPLAY"
-#: ../C/gdm.xml:3729 (screen)
-#, no-wrap
+#: ../C/gdm.xml:3763 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
-"ADD_DYNAMIC_DISPLAY: Create a new server definition that will run on the\n"
-" specified display leaving, it in DISPLAY_CONFIG state.\n"
+"ADD_DYNAMIC_DISPLAY: Create a new server definition that will\n"
+" run on the specified display leaving, it\n"
+" in DISPLAY_CONFIG state.\n"
"Supported since: 2.8.0.0\n"
-"Arguments: &lt;display to run on&gt;=&lt;server&gt;\n"
-" Where &lt;server&gt; is either a configuration named in gdm.conf or\n"
-" a literal command name.\n"
+"Arguments: &lt;display to run on&gt;=&lt;server&gt;\n"
+" Where &lt;server&gt; is either a configuration named in the\n"
+" GDM configuration or a literal command name.\n"
"Answers:\n"
" OK &lt;display&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4742,19 +4829,29 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:3750 (title)
+#: ../C/gdm.xml:3785 (title)
msgid "RELEASE_DYNAMIC_DISPLAYS"
msgstr "RELEASE_DYNAMIC_DISPLAYS"
-#: ../C/gdm.xml:3751 (screen)
-#, no-wrap
+#: ../C/gdm.xml:3786 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
-"RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in DISPLAY_CONFIG\n"
-" state\n"
+"RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in \n"
+" DISPLAY_CONFIG state\n"
"Supported since: 2.8.0.0\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" OK &lt;display&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4764,19 +4861,29 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:3767 (title)
+#: ../C/gdm.xml:3802 (title)
msgid "REMOVE_DYNAMIC_DISPLAY"
msgstr "REMOVE_DYNAMIC_DISPLAY"
-#: ../C/gdm.xml:3768 (screen)
-#, no-wrap
+#: ../C/gdm.xml:3803 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
-"REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server and purging\n"
-" the display configuration\n"
+"REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server\n"
+" and purging the display configuration\n"
"Supported since: 2.8.0.0\n"
-"Arguments: &lt;display to remove&gt;\n"
+"Arguments: &lt;display to remove&gt;\n"
"Answers:\n"
" OK &lt;display&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4787,22 +4894,33 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:3785 (title)
+#: ../C/gdm.xml:3820 (title)
msgid "ATTACHED_SERVERS"
msgstr "ATTACHED_SERVERS"
-#: ../C/gdm.xml:3786 (screen)
+#: ../C/gdm.xml:3821 (screen)
#, no-wrap
msgid ""
"\n"
-"ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP and xnest\n"
-" non-attached servers\n"
+"ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP\n"
+" and xnest non-attached servers\n"
+"Note: This command used to be named CONSOLE_SERVERS,\n"
+" which is still recognized for backwards\n"
+" compatibility. The optional pattern argument\n"
+" is supported as of version 2.8.0.0.\n"
"Supported since: 2.2.4.0\n"
-"Note: This command used to be named CONSOLE_SERVERS, which is still recognized\n"
-" for backwards compatibility. The optional pattern argument is supported\n"
-" as of version 2.8.0.0.\n"
-"Arguments: &lt;pattern&gt; (optional)\n"
+"Arguments: &lt;pattern&gt; (optional)\n"
" With no argument, all attached displays are returned. The optional\n"
" &lt;pattern&gt; is a string that may contain glob characters '*', '?', and\n"
" '[]'. Only displays that match the pattern will be returned.\n"
@@ -4825,12 +4943,12 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:3817 (title)
+#: ../C/gdm.xml:3853 (title)
msgid "ALL_SERVERS"
msgstr "ALL_SERVERS"
-#: ../C/gdm.xml:3818 (screen)
-#, no-wrap
+#: ../C/gdm.xml:3854 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
"ALL_SERVERS: List all displays, including console, remote, xnest.\n"
@@ -4839,7 +4957,7 @@ msgid ""
" by seeing if it is in the list. It is also somewhat\n"
" like the 'w' command but for graphical sessions.\n"
"Supported since: 2.4.2.96\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" OK &lt;server&gt;;&lt;server&gt;;...\n"
"\n"
@@ -4853,20 +4971,30 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:3841 (title)
+#: ../C/gdm.xml:3877 (title)
#, fuzzy
msgid "GET_SERVER_LIST"
msgstr "ALL_SERVERS"
-#: ../C/gdm.xml:3842 (screen)
+#: ../C/gdm.xml:3878 (screen)
#, fuzzy, no-wrap
msgid ""
"\n"
"GET_SERVER_LIST: Get a list of the server sections from\n"
" the configuration file.\n"
"Supported since: 2.13.0.4\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" OK &lt;value&gt;;&lt;value&gt;;...\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4888,25 +5016,25 @@ msgstr ""
" 999 = Unknown error\n"
" "
-#: ../C/gdm.xml:3859 (title)
+#: ../C/gdm.xml:3895 (title)
#, fuzzy
msgid "GET_SERVER_DETAILS"
msgstr "ALL_SERVERS"
-#: ../C/gdm.xml:3860 (screen)
+#: ../C/gdm.xml:3896 (screen)
#, fuzzy, no-wrap
msgid ""
"\n"
-"GET_SERVER_DETAILS: Get detail information for a specific\n"
-" server. Key values include:\n"
+"GET_SERVER_DETAILS: Get detail information for a specific server.\n"
+"Supported since: 2.13.0.4\n"
+"Arguments: &lt;server&gt; &lt;key&gt;\n"
+" Key values include:\n"
" NAME - Returns the server name\n"
" COMMAND - Returns the server command\n"
" FLEXIBLE - Returns \"true\" if flexible, \"false\" otherwise\n"
" CHOOSABLE - Returns \"true\" if choosable, \"false\" otherwise\n"
" HANDLED - Returns \"true\" if handled, \"false\" otherwise\n"
" CHOOSER - Returns \"true\" if chooser, \"false\" otherwise\n"
-"Supported since: 2.13.0.4\n"
-"Arguments: &lt;server&gt; &lt;key&gt;\n"
"Answers:\n"
" OK &lt;value&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4929,11 +5057,11 @@ msgstr ""
" 999 = Unknown error\n"
" "
-#: ../C/gdm.xml:3884 (title)
+#: ../C/gdm.xml:3920 (title)
msgid "GET_CONFIG"
msgstr "GET_CONFIG"
-#: ../C/gdm.xml:3885 (screen)
+#: ../C/gdm.xml:3921 (screen)
#, no-wrap
msgid ""
"\n"
@@ -4947,7 +5075,7 @@ msgid ""
" default value (i.e. you can use key \"greeter/IncludeAll\"\n"
" instead of having to use \"greeter/IncludeAll=false\". \n"
"Supported since: 2.6.0.9\n"
-"Arguments: &lt;key&gt;\n"
+"Arguments: &lt;key&gt;\n"
"Answers:\n"
" OK &lt;value&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4958,18 +5086,20 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:3908 (title)
+#: ../C/gdm.xml:3944 (title)
msgid "GET_CONFIG_FILE"
msgstr "GET_CONFIG_FILE"
-#: ../C/gdm.xml:3909 (screen)
+#: ../C/gdm.xml:3945 (screen)
#, fuzzy, no-wrap
msgid ""
"\n"
"GET_CONFIG_FILE: Get config file location being used by\n"
-" the daemon.\n"
+" the daemon. If the GDM daemon was started\n"
+" with the --config option, it will return\n"
+" the value passed in via the argument.\n"
"Supported since: 2.8.0.2\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" OK &lt;full path to GDM configuration file&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -4989,70 +5119,76 @@ msgstr ""
" 999 = Unknown error\n"
" "
-#: ../C/gdm.xml:3924 (title)
+#: ../C/gdm.xml:3962 (title)
msgid "UPDATE_CONFIG"
msgstr "UPDATE_CONFIG"
-#: ../C/gdm.xml:3925 (screen)
+#: ../C/gdm.xml:3963 (screen)
#, no-wrap
msgid ""
"\n"
"UPDATE_CONFIG: Tell the daemon to re-read a key from the \n"
-" gdm.conf configuration file. Any user can\n"
-" request that values are re-read but the daemon\n"
-" will only do so if the file has been modified\n"
-" since the last time it was read. Only users\n"
-" who can change the gdm.conf file (normally\n"
-" writable only by the root user) can actually\n"
-" modify the GDM configuration. This command\n"
-" is useful to cause the GDM to update itself\n"
-" to recognize a change made to the gdm.conf\n"
-" file by the root user.\n"
+" GDM configuration file. Any user can request\n"
+" that values are re-read but the daemon will\n"
+" only do so if the file has been modified\n"
+" since GDM first read the file. Only users\n"
+" who can change the GDM configuration file\n"
+" (normally writable only by the root user) can\n"
+" actually modify the GDM configuration. This\n"
+" command is useful to cause the GDM to update\n"
+" itself to recognize a change made to the GDM\n"
+" configuration file by the root user.\n"
"\n"
-" Starting with version 2.13, all GDM keys are\n"
+" Starting with version 2.13.0.0, all GDM keys are\n"
" supported except for the following:\n"
"\n"
-" daemon/PidFile\n"
-" daemon/ConsoleNotify\n"
-" daemon/User\n"
-" daemon/Group\n"
-" daemon/LogDir\n"
-" daemon/ServAuthDir\n"
-" daemon/UserAuthDir\n"
-" daemon/UserAuthFile\n"
-" daemon/UserAuthFBDir\n"
+" daemon/PidFile\n"
+" daemon/ConsoleNotify\n"
+" daemon/User\n"
+" daemon/Group\n"
+" daemon/LogDir\n"
+" daemon/ServAuthDir\n"
+" daemon/UserAuthDir\n"
+" daemon/UserAuthFile\n"
+" daemon/UserAuthFBDir\n"
+"\n"
+" GDM also supports the following Psuedokeys:\n"
"\n"
-"Supported keys for previous versions of GDM:\n"
+" xdmcp/PARAMETERS (2.3.90.2) updates the following:\n"
+" xdmcp/MaxPending\n"
+" xdmcp/MaxSessions\n"
+" xdmcp/MaxWait\n"
+" xdmcp/DisplaysPerHost\n"
+" xdmcp/HonorIndirect\n"
+" xdmcp/MaxPendingIndirect\n"
+" xdmcp/MaxWaitIndirect\n"
+" xdmcp/PingIntervalSeconds (only affects new connections)\n"
"\n"
-" security/AllowRoot (2.3.90.2)\n"
-" security/AllowRemoteRoot (2.3.90.2)\n"
-" security/AllowRemoteAutoLogin (2.3.90.2)\n"
-" security/RetryDelay (2.3.90.2)\n"
-" security/DisallowTCP (2.4.2.0)\n"
-" daemon/Greeter (2.3.90.2)\n"
-" daemon/RemoteGreeter (2.3.90.2)\n"
-" xdmcp/Enable (2.3.90.2)\n"
-" xdmcp/Port (2.3.90.2)\n"
-" xdmcp/PARAMETERS (2.3.90.2) (pseudokey, all the parameters)\n"
-" xdmcp/MaxPending\n"
-" xdmcp/MaxSessions\n"
-" xdmcp/MaxWait\n"
-" xdmcp/DisplaysPerHost\n"
-" xdmcp/HonorIndirect\n"
-" xdmcp/MaxPendingIndirect\n"
-" xdmcp/MaxWaitIndirect\n"
-" xdmcp/PingIntervalSeconds (only affects new connections)\n"
-" daemon/TimedLogin (2.3.90.3)\n"
-" daemon/TimedLoginEnable (2.3.90.3)\n"
-" daemon/TimedLoginDelay (2.3.90.3)\n"
-" greeter/SystemMenu (2.3.90.3)\n"
-" greeter/ConfigAvailable (2.3.90.3)\n"
-" greeter/ChooserButton (2.4.2.0)\n"
-" greeter/SoundOnLoginFile (2.5.90.0)\n"
-" daemon/AddGtkModules (2.5.90.0)\n"
-" daemon/GtkModulesList (2.5.90.0)\n"
+" xservers/PARAMETERS (2.13.0.4) updates the following:\n"
+" all [server-foo] sections.\n"
+"\n"
+" Supported keys for previous versions of GDM:\n"
+"\n"
+" security/AllowRoot (2.3.90.2)\n"
+" security/AllowRemoteRoot (2.3.90.2)\n"
+" security/AllowRemoteAutoLogin (2.3.90.2)\n"
+" security/RetryDelay (2.3.90.2)\n"
+" security/DisallowTCP (2.4.2.0)\n"
+" daemon/Greeter (2.3.90.2)\n"
+" daemon/RemoteGreeter (2.3.90.2)\n"
+" xdmcp/Enable (2.3.90.2)\n"
+" xdmcp/Port (2.3.90.2)\n"
+" daemon/TimedLogin (2.3.90.3)\n"
+" daemon/TimedLoginEnable (2.3.90.3)\n"
+" daemon/TimedLoginDelay (2.3.90.3)\n"
+" greeter/SystemMenu (2.3.90.3)\n"
+" greeter/ConfigAvailable (2.3.90.3)\n"
+" greeter/ChooserButton (2.4.2.0)\n"
+" greeter/SoundOnLoginFile (2.5.90.0)\n"
+" daemon/AddGtkModules (2.5.90.0)\n"
+" daemon/GtkModulesList (2.5.90.0)\n"
"Supported since: 2.3.90.2\n"
-"Arguments: &lt;key&gt;\n"
+"Arguments: &lt;key&gt;\n"
" &lt;key&gt; is just the base part of the key such as\n"
" \"security/AllowRemoteRoot\"\n"
"Answers:\n"
@@ -5065,11 +5201,11 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:3995 (title)
+#: ../C/gdm.xml:4039 (title)
msgid "GREETERPIDS"
msgstr "GREETERPIDS"
-#: ../C/gdm.xml:3996 (screen)
+#: ../C/gdm.xml:4040 (screen)
#, fuzzy, no-wrap
msgid ""
"\n"
@@ -5077,7 +5213,7 @@ msgid ""
" to them for config rereading. Of course one\n"
" must be root to do that.\n"
"Supported since: 2.3.90.2\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" OK &lt;pid&gt;;&lt;pid&gt;;...\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -5097,16 +5233,17 @@ msgstr ""
" 999 = Unknown error\n"
" "
-#: ../C/gdm.xml:4012 (title)
+#: ../C/gdm.xml:4056 (title)
msgid "QUERY_LOGOUT_ACTION"
msgstr "QUERY_LOGOUT_ACTION"
-#: ../C/gdm.xml:4013 (screen)
+#: ../C/gdm.xml:4057 (screen)
#, no-wrap
msgid ""
"\n"
"QUERY_LOGOUT_ACTION: Query which logout actions are possible\n"
-"Only supported on connections that passed AUTH_LOCAL.\n"
+" Only supported on connections that passed\n"
+" AUTH_LOCAL.\n"
"Supported since: 2.5.90.0\n"
"Answers:\n"
" OK &lt;action&gt;;&lt;action&gt;;...\n"
@@ -5124,25 +5261,24 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:4034 (title)
+#: ../C/gdm.xml:4079 (title)
#, fuzzy
msgid "SET_LOGOUT_ACTION"
msgstr "SET_SAFE_LOGOUT_ACTION"
-#: ../C/gdm.xml:4035 (screen)
-#, no-wrap
+#: ../C/gdm.xml:4080 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
-"SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend\n"
-" after slave process exits. \n"
-"Only supported on connections that passed AUTH_LOCAL.\n"
+"SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend after\n"
+" slave process exits. Only supported on\n"
+" connections that passed AUTH_LOCAL.\n"
"Supported since: 2.5.90.0\n"
-"Arguments: &lt;action&gt;\n"
+"Arguments: &lt;action&gt;\n"
" NONE Set exit action to 'none'\n"
" HALT Set exit action to 'halt'\n"
" REBOOT Set exit action to 'reboot'\n"
" SUSPEND Set exit action to 'suspend'\n"
-"\n"
"Answers:\n"
" OK\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -5153,33 +5289,41 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:4058 (title)
+#: ../C/gdm.xml:4102 (title)
msgid "SET_SAFE_LOGOUT_ACTION"
msgstr "SET_SAFE_LOGOUT_ACTION"
-#: ../C/gdm.xml:4059 (screen)
+#: ../C/gdm.xml:4103 (screen)
#, no-wrap
msgid ""
"\n"
"SET_SAFE_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend\n"
-" after everybody logs out. If only\n"
-" one person logs out, then this is\n"
-" obviously the same as the\n"
-" SET_LOGOUT_ACTION. Note that\n"
-" SET_LOGOUT_ACTION has precedence over\n"
-" SET_SAFE_LOGOUT_ACTION if it is set to\n"
-" something other then NONE. If no one\n"
-" is logged in, then the action takes\n"
-" effect immediately.\n"
-"Only supported on connections that passed AUTH_LOCAL.\n"
+" after everybody logs out. If only one\n"
+" person logs out, then this is obviously\n"
+" the same as the SET_LOGOUT_ACTION. Note\n"
+" that SET_LOGOUT_ACTION has precedence\n"
+" over SET_SAFE_LOGOUT_ACTION if it is set\n"
+" to something other then NONE. If no one\n"
+" is logged in, then the action takes effect\n"
+" effect immediately. Only supported on\n"
+" connections that passed AUTH_LOCAL.\n"
"Supported since: 2.5.90.0\n"
-"Arguments: &lt;action&gt;\n"
+"Arguments: &lt;action&gt;\n"
" NONE Set exit action to 'none'\n"
" HALT Set exit action to 'halt'\n"
" REBOOT Set exit action to 'reboot'\n"
" SUSPEND Set exit action to 'suspend'\n"
-"\n"
"Answers:\n"
" OK\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -5191,11 +5335,11 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:4090 (title)
+#: ../C/gdm.xml:4132 (title)
msgid "QUERY_VT"
msgstr "QUERY_VT"
-#: ../C/gdm.xml:4091 (screen)
+#: ../C/gdm.xml:4133 (screen)
#, no-wrap
msgid ""
"\n"
@@ -5205,10 +5349,10 @@ msgid ""
" supported on Linux currently, other places will\n"
" just get ERROR 8. This is also the way to query\n"
" if VT support is available in the daemon in the\n"
-" first place.\n"
-"Only supported on connections that passed AUTH_LOCAL.\n"
+" first place. Only supported on connections that\n"
+" passed AUTH_LOCAL.\n"
"Supported since: 2.5.90.0\n"
-"Arguments: None\n"
+"Arguments: None\n"
"Answers:\n"
" OK &lt;vt number&gt;\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -5220,21 +5364,21 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:4114 (title)
+#: ../C/gdm.xml:4156 (title)
msgid "SET_VT"
msgstr "SET_VT"
-#: ../C/gdm.xml:4115 (screen)
-#, no-wrap
+#: ../C/gdm.xml:4157 (screen)
+#, fuzzy, no-wrap
msgid ""
"\n"
"SET_VT: Change to the specified virtual terminal.\n"
" This is useful for logins which don't own /dev/console\n"
" but are still console logins. Only supported on Linux\n"
" currently, other places will just get ERROR 8.\n"
-"Only supported on connections that passed AUTH_LOCAL.\n"
+" Only supported on connections that passed AUTH_LOCAL.\n"
"Supported since: 2.5.90.0\n"
-"Arguments: &lt;vt&gt;\n"
+"Arguments: &lt;vt&gt;\n"
"Answers:\n"
" OK\n"
" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
@@ -5246,44 +5390,56 @@ msgid ""
" 999 = Unknown error\n"
" "
msgstr ""
+"\n"
+"VERSION: Query version\n"
+"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers:\n"
+" GDM &lt;gdm version&gt;\n"
+" ERROR &lt;err number&gt; &lt;english error description&gt;\n"
+" 200 = Too many messages\n"
+" 999 = Unknown error\n"
+" "
-#: ../C/gdm.xml:4136 (title)
+#: ../C/gdm.xml:4178 (title)
msgid "CLOSE"
msgstr "CLOSE"
-#: ../C/gdm.xml:4137 (screen)
+#: ../C/gdm.xml:4179 (screen)
#, no-wrap
msgid ""
"\n"
-"CLOSE Answers: None\n"
+"CLOSE: Close sockets connection\n"
"Supported since: 2.2.4.0\n"
+"Arguments: None\n"
+"Answers: None\n"
" "
msgstr ""
-#: ../C/gdm.xml:4148 (title)
+#: ../C/gdm.xml:4192 (title)
#, fuzzy
msgid "GDM Commands"
msgstr "Comandos"
-#: ../C/gdm.xml:4151 (title)
+#: ../C/gdm.xml:4195 (title)
#, fuzzy
msgid "GDM User Commands"
msgstr "Comandos internos de GDM"
-#: ../C/gdm.xml:4153 (para)
+#: ../C/gdm.xml:4197 (para)
msgid ""
"The GDM package provides the following different commands in EXPANDED_BINDIR "
"intended to be used by the end-user:"
msgstr ""
-#: ../C/gdm.xml:4159 (title)
+#: ../C/gdm.xml:4203 (title)
#, fuzzy
msgid ""
"<command>gdmXnestchooser</command> and <command>gdmXnest</command> Command "
"Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4162 (para)
+#: ../C/gdm.xml:4206 (para)
msgid ""
"The <command>gdmXnestchooser</command> command automatically gets the "
"correct display number, sets up access, and runs <command>Xnest</command> "
@@ -5296,83 +5452,83 @@ msgid ""
"this command also supports standard GNOME options."
msgstr ""
-#: ../C/gdm.xml:4177 (title)
+#: ../C/gdm.xml:4221 (title)
#, fuzzy
msgid "<command>gdmXnestchooser</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4180 (term)
+#: ../C/gdm.xml:4224 (term)
#, fuzzy
msgid "-x, --xnest=STRING"
msgstr "-n, --xnest"
-#: ../C/gdm.xml:4182 (para)
+#: ../C/gdm.xml:4226 (para)
msgid "Xnest command line, default is \"Xnest\""
msgstr ""
-#: ../C/gdm.xml:4189 (term)
+#: ../C/gdm.xml:4233 (term)
msgid "-o, --xnest-extra-options=OPTIONS"
msgstr ""
-#: ../C/gdm.xml:4191 (para)
+#: ../C/gdm.xml:4235 (para)
msgid "Extra options for Xnest, default is no options."
msgstr ""
-#: ../C/gdm.xml:4198 (term)
+#: ../C/gdm.xml:4242 (term)
#, fuzzy
msgid "-n, --no-query"
msgstr "-n, --xnest"
-#: ../C/gdm.xml:4200 (para)
+#: ../C/gdm.xml:4244 (para)
msgid "Just run Xnest, no query (no chooser)"
msgstr ""
-#: ../C/gdm.xml:4207 (term)
+#: ../C/gdm.xml:4251 (term)
#, fuzzy
msgid "-d, --direct"
msgstr "-d, --debug"
-#: ../C/gdm.xml:4209 (para)
+#: ../C/gdm.xml:4253 (para)
msgid "Do direct query instead of indirect (chooser)"
msgstr ""
-#: ../C/gdm.xml:4216 (term)
+#: ../C/gdm.xml:4260 (term)
msgid "-B, --broadcast"
msgstr ""
-#: ../C/gdm.xml:4218 (para)
+#: ../C/gdm.xml:4262 (para)
msgid "Run broadcast instead of indirect (chooser)"
msgstr ""
-#: ../C/gdm.xml:4225 (term)
+#: ../C/gdm.xml:4269 (term)
msgid "-b, --background"
msgstr ""
-#: ../C/gdm.xml:4227 (para)
+#: ../C/gdm.xml:4271 (para)
msgid "Run in background"
msgstr ""
-#: ../C/gdm.xml:4234 (term)
+#: ../C/gdm.xml:4278 (term)
msgid "--no-gdm-check"
msgstr ""
-#: ../C/gdm.xml:4236 (para)
+#: ../C/gdm.xml:4280 (para)
msgid "Don't check for running GDM"
msgstr ""
-#: ../C/gdm.xml:4245 (title) ../C/gdm.xml:4289
+#: ../C/gdm.xml:4289 (title) ../C/gdm.xml:4333
#, fuzzy
msgid "<command>gdmflexichooser</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4247 (para)
+#: ../C/gdm.xml:4291 (para)
msgid ""
"The <command>gdmflexiserver</command> command provides three features. It "
"can be used to run flexible (on demand) X servers, to run a flexible server "
"via Xnest, and to send commands to the GDM daemon process."
msgstr ""
-#: ../C/gdm.xml:4254 (para)
+#: ../C/gdm.xml:4298 (para)
msgid ""
"Starting a flexible X servers will normally lock the current session with a "
"screensaver and will redisplay the GDM login screen so a second user can log "
@@ -5386,7 +5542,7 @@ msgid ""
"have to enter the password to unlock the screen."
msgstr ""
-#: ../C/gdm.xml:4268 (para)
+#: ../C/gdm.xml:4312 (para)
msgid ""
"Flexible servers started via Xnest works on systems that do not support "
"virtual terminals. This option starts a flexible server in a window in the "
@@ -5394,48 +5550,48 @@ msgid ""
"as a flexible server started via virtual terminals."
msgstr ""
-#: ../C/gdm.xml:4276 (para)
+#: ../C/gdm.xml:4320 (para)
msgid ""
"The <command>gdmflexiserver --command</command> option provides a way to "
"send commands to the GDM daemon and can be used to debug problems or to "
"change the GDM configuration."
msgstr ""
-#: ../C/gdm.xml:4282 (para)
+#: ../C/gdm.xml:4326 (para)
msgid ""
"In addition to the following options, <command>gdmflexiserver</command> also "
"supports standard GNOME options."
msgstr ""
-#: ../C/gdm.xml:4292 (term)
+#: ../C/gdm.xml:4336 (term)
msgid "-c, --command=COMMAND"
msgstr ""
-#: ../C/gdm.xml:4294 (para)
+#: ../C/gdm.xml:4338 (para)
msgid "Send the specified protocol command to GDM"
msgstr "Enviar el comando de protocolo especificado a GDM"
-#: ../C/gdm.xml:4301 (term)
+#: ../C/gdm.xml:4345 (term)
msgid "-n, --xnest"
msgstr "-n, --xnest"
-#: ../C/gdm.xml:4303 (para)
+#: ../C/gdm.xml:4347 (para)
msgid "Start a flexible X server in Xnest mode"
msgstr ""
-#: ../C/gdm.xml:4310 (term)
+#: ../C/gdm.xml:4354 (term)
msgid "-l, --no-lock"
msgstr "-l, --no-lock"
-#: ../C/gdm.xml:4312 (para)
+#: ../C/gdm.xml:4356 (para)
msgid "Do not lock current screen"
msgstr "No bloquear la pantalla actual"
-#: ../C/gdm.xml:4319 (term)
+#: ../C/gdm.xml:4363 (term)
msgid "-d, --debug"
msgstr "-d, --debug"
-#: ../C/gdm.xml:4321 (para)
+#: ../C/gdm.xml:4365 (para)
msgid ""
"Turns on debugging output which gets sent to syslog. Same as turning on "
"debug in the configuration file."
@@ -5443,19 +5599,19 @@ msgstr ""
"Activar salida de depuración para enviarla a syslog. Lo mismo que cuadno se "
"activa la depuración en el archivo de configuración."
-#: ../C/gdm.xml:4329 (term)
+#: ../C/gdm.xml:4373 (term)
msgid "-a, --authenticate"
msgstr "-a, --authenticate"
-#: ../C/gdm.xml:4331 (para)
+#: ../C/gdm.xml:4375 (para)
msgid "Authenticate before running --command"
msgstr "Autenticar antes de ejecutar --command"
-#: ../C/gdm.xml:4338 (term)
+#: ../C/gdm.xml:4382 (term)
msgid "-s, --startnew"
msgstr "-s, --startnew"
-#: ../C/gdm.xml:4340 (para)
+#: ../C/gdm.xml:4384 (para)
msgid ""
"Starts a new flexible server without displaying a dialog asking the user if "
"they wish to continue any existing sessions."
@@ -5463,66 +5619,67 @@ msgstr ""
"Inicia un servidor flexible nuevo sin mostrar un diálogo preguntando al "
"usuario si quiere continuar cualquier sesión existente."
-#: ../C/gdm.xml:4351 (title) ../C/gdm.xml:4369
+#: ../C/gdm.xml:4395 (title) ../C/gdm.xml:4413
msgid "<command>gdmdynamic</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4353 (para)
+#: ../C/gdm.xml:4397 (para)
msgid ""
"The <command>gdmdynamic</command> command which creates, runs, and removes "
"displays (X servers) on demand."
msgstr ""
-#: ../C/gdm.xml:4358 (para)
+#: ../C/gdm.xml:4402 (para)
msgid ""
"Some environments need the ability to tell GDM to create and manage new "
"displays on the fly, where it is not possible to list the possible displays "
-"in gdm.conf. The <command>gdmdynamic</command> command can be used to create "
-"a new display on a particular display number, run all newly created "
-"displays, or remove a display. The gdmdynamic command can also be used to "
-"list all attached displays, or only attached displays that match a pattern."
+"in GDM configuration files. The <command>gdmdynamic</command> command can be "
+"used to create a new display on a particular display number, run all newly "
+"created displays, or remove a display. The <command>gdmdynamic</command> "
+"command can also be used to list all attached displays, or only attached "
+"displays that match a pattern."
msgstr ""
-#: ../C/gdm.xml:4374 (emphasis)
+#: ../C/gdm.xml:4418 (emphasis)
msgid "One of the following options can be used per instance:"
msgstr "Una de las siguientes opciones pueden usarse por instancia:"
-#: ../C/gdm.xml:4381 (term)
+#: ../C/gdm.xml:4425 (term)
#, fuzzy
msgid "-a display=server"
msgstr "d nombre del display"
-#: ../C/gdm.xml:4383 (para)
+#: ../C/gdm.xml:4427 (para)
msgid ""
"Add a new display configuration. For example, <command>\"-a "
"2=StandardServerTwo\"</command><command>\"-a 3=/usr/X11R6/bin/X -dev /dev/fb2"
"\"</command>"
msgstr ""
-#: ../C/gdm.xml:4392 (term)
+#: ../C/gdm.xml:4436 (term)
msgid "-r"
msgstr ""
-#: ../C/gdm.xml:4394 (para)
+#: ../C/gdm.xml:4438 (para)
msgid "Release (run) all displays waiting in the DISPLAY_CONFIG state."
msgstr ""
-#: ../C/gdm.xml:4401 (term)
+#: ../C/gdm.xml:4445 (term)
#, fuzzy
msgid "-d display"
msgstr "d nombre del display"
-#: ../C/gdm.xml:4403 (para)
+#: ../C/gdm.xml:4447 (para)
msgid ""
"Delete a display, killing the X server and purging the display "
"configuration. For example, \"-d 3\"."
msgstr ""
-#: ../C/gdm.xml:4411 (term)
+#: ../C/gdm.xml:4455 (term)
msgid "-l [pattern]"
msgstr ""
-#: ../C/gdm.xml:4413 (para)
+#: ../C/gdm.xml:4457 (para)
msgid ""
"List displays via the ATTACHED_SERVERS command. Without a pattern lists all "
"attached displays. With a pattern will match using glob characters '*', '?', "
@@ -5530,44 +5687,44 @@ msgid ""
"*Xorg*\"</command>"
msgstr ""
-#: ../C/gdm.xml:4426 (emphasis)
+#: ../C/gdm.xml:4470 (emphasis)
msgid "These options can be added to the above:"
msgstr ""
-#: ../C/gdm.xml:4433 (term)
+#: ../C/gdm.xml:4477 (term)
msgid "-v"
msgstr ""
-#: ../C/gdm.xml:4435 (para)
+#: ../C/gdm.xml:4479 (para)
msgid "Verbose mode. Prinr diagnostic messages about each message sent to GDM."
msgstr ""
-#: ../C/gdm.xml:4443 (term)
+#: ../C/gdm.xml:4487 (term)
msgid "-b"
msgstr ""
-#: ../C/gdm.xml:4445 (para)
+#: ../C/gdm.xml:4489 (para)
msgid "Background mode. Fork child to do the work and return immediately."
msgstr ""
-#: ../C/gdm.xml:4454 (title)
+#: ../C/gdm.xml:4498 (title)
#, fuzzy
msgid "<command>gdmphotosetup</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4456 (para)
+#: ../C/gdm.xml:4500 (para)
msgid ""
"Allows the user to select an image that will be used as the user's photo by "
"GDM's face browser, if enabled by GDM. The selected file is stored as ~/."
"face. This command accepts standard GNOME options."
msgstr ""
-#: ../C/gdm.xml:4464 (title)
+#: ../C/gdm.xml:4508 (title)
#, fuzzy
msgid "<command>gdmthemetester</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4466 (para)
+#: ../C/gdm.xml:4510 (para)
msgid ""
"<command>gdmthemetester</command> takes two parameters. The first parameter "
"specifies the environment and the second parameter specifies the path name "
@@ -5586,24 +5743,24 @@ msgid ""
" </screen>"
msgstr ""
-#: ../C/gdm.xml:4492 (title)
+#: ../C/gdm.xml:4536 (title)
#, fuzzy
msgid "GDM Root User Commands"
msgstr "Comandos internos de GDM"
-#: ../C/gdm.xml:4494 (para)
+#: ../C/gdm.xml:4538 (para)
msgid ""
"The GDM package provides the following different commands in "
"EXPANDED_SBINDIR intended to be used by the root user:"
msgstr ""
-#: ../C/gdm.xml:4500 (title) ../C/gdm.xml:4516
+#: ../C/gdm.xml:4544 (title) ../C/gdm.xml:4560
#, fuzzy
msgid ""
"<command>gdm</command> and <command>gdm-binary</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4503 (para)
+#: ../C/gdm.xml:4547 (para)
msgid ""
"The <command>gdm</command> command is really just a script which runs the "
"<command>gdm-binary</command>, passing along any options. Before launching "
@@ -5615,30 +5772,30 @@ msgid ""
"environment before launching GDM, you can do so in this script."
msgstr ""
-#: ../C/gdm.xml:4520 (term)
+#: ../C/gdm.xml:4564 (term)
msgid "--help"
msgstr "--help"
-#: ../C/gdm.xml:4522 (para)
+#: ../C/gdm.xml:4566 (para)
msgid "Gives a brief overview of the command line options."
msgstr ""
-#: ../C/gdm.xml:4529 (term)
+#: ../C/gdm.xml:4573 (term)
msgid "-nodaemon"
msgstr "-nodaemon"
-#: ../C/gdm.xml:4531 (para)
+#: ../C/gdm.xml:4575 (para)
msgid ""
"If this option is specified, then GDM does not fork into the background when "
"run. You can use just a single dash with this option to preserve "
"compatibility with XDM."
msgstr ""
-#: ../C/gdm.xml:4540 (term)
+#: ../C/gdm.xml:4584 (term)
msgid "--no-console"
msgstr "--no-console"
-#: ../C/gdm.xml:4542 (para)
+#: ../C/gdm.xml:4586 (para)
msgid ""
"Tell the daemon that it should not run anything on the console. This means "
"that none of the local servers from the <filename>[servers]</filename> "
@@ -5647,37 +5804,37 @@ msgid ""
"automatically implies this option."
msgstr ""
-#: ../C/gdm.xml:4554 (term) ../C/gdm.xml:4618
+#: ../C/gdm.xml:4598 (term)
msgid "--config=CONFIGFILE"
msgstr "--config=CONFIGFILE"
-#: ../C/gdm.xml:4556 (para)
+#: ../C/gdm.xml:4600 (para)
msgid "Specify an alternative configuration file."
msgstr ""
-#: ../C/gdm.xml:4563 (term)
+#: ../C/gdm.xml:4607 (term)
msgid "--preserve-ld-vars"
msgstr "--preserve-ld-vars"
-#: ../C/gdm.xml:4565 (para)
+#: ../C/gdm.xml:4609 (para)
msgid ""
"When clearing the environment internally, preserve all variables starting "
"with LD_. This is mostly for debugging purposes."
msgstr ""
-#: ../C/gdm.xml:4573 (term)
+#: ../C/gdm.xml:4617 (term)
msgid "--version"
msgstr "--version"
-#: ../C/gdm.xml:4575 (para)
+#: ../C/gdm.xml:4619 (para)
msgid "Print the version of the GDM daemon."
msgstr ""
-#: ../C/gdm.xml:4582 (term)
+#: ../C/gdm.xml:4626 (term)
msgid "--wait-for-go"
msgstr "--wait-for-go"
-#: ../C/gdm.xml:4584 (para)
+#: ../C/gdm.xml:4628 (para)
msgid ""
"If started with this option, gdm will init, but only start the first local "
"display and then wait for a GO message in the fifo protocol. No greeter will "
@@ -5689,79 +5846,75 @@ msgid ""
"added in version 2.5.90.0."
msgstr ""
-#: ../C/gdm.xml:4602 (title) ../C/gdm.xml:4615
+#: ../C/gdm.xml:4646 (title)
#, fuzzy
msgid "<command>gdmsetup</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4604 (para)
+#: ../C/gdm.xml:4648 (para)
msgid ""
"<command>gdmsetup</command> runs a graphical application for modifying the "
-"GDM configuration file, gdm.conf. Normally on systems that support the PAM "
-"userhelper, this is setup such that when you run <command>gdmsetup</command> "
-"as an ordinary user, it will first ask you for your root password before "
-"starting. Otherwise, this application may only be run as root. This "
-"application supports standard GNOME options."
-msgstr ""
-
-#: ../C/gdm.xml:4620 (para)
-msgid ""
-"Specify an alternative configuration file. By default, <command>gdmsetup</"
-"command> will edit the same configuration file being used by the GDM daemon."
+"GDM configuration file. Normally on systems that support the PAM userhelper, "
+"this is setup such that when you run <command>gdmsetup</command> as an "
+"ordinary user, it will first ask you for your root password before starting. "
+"Otherwise, this application may only be run as root. This application "
+"supports standard GNOME options."
msgstr ""
-#: ../C/gdm.xml:4631 (title)
+#: ../C/gdm.xml:4660 (title)
#, fuzzy
msgid "<command>gdm-restart</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4633 (para)
+#: ../C/gdm.xml:4662 (para)
msgid ""
"<command>gdm-restart</command> stops and restarts GDM by sending the GDM "
"daemon a HUP signal. This command will immediately terminate all sessions "
"and log out users currently logged in with GDM."
msgstr ""
-#: ../C/gdm.xml:4641 (title)
+#: ../C/gdm.xml:4670 (title)
#, fuzzy
msgid "<command>gdm-safe-restart</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4643 (para)
+#: ../C/gdm.xml:4672 (para)
+#, fuzzy
msgid ""
"<command>gdm-safe-restart</command> stops and restarts GDM by sending the "
"GDM daemon a USR1 signal. GDM will be restarted as soon as all users log out."
-msgstr ""
+msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4651 (title)
+#: ../C/gdm.xml:4680 (title)
#, fuzzy
msgid "<command>gdm-stop</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4653 (para)
+#: ../C/gdm.xml:4682 (para)
+#, fuzzy
msgid ""
"<command>gdm-stop</command> stops GDM by sending the GDM daemon a TERM "
"signal."
-msgstr ""
+msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4661 (title)
+#: ../C/gdm.xml:4690 (title)
msgid "GDM Internal Commands"
msgstr "Comandos internos de GDM"
-#: ../C/gdm.xml:4663 (para)
+#: ../C/gdm.xml:4692 (para)
msgid ""
"The GDM package provides the following different commands in "
"EXPANDED_LIBEXECDIR intended to be used by the gdm daemon process."
msgstr ""
-#: ../C/gdm.xml:4669 (title)
+#: ../C/gdm.xml:4698 (title)
#, fuzzy
msgid ""
"<command>gdmchooser</command> and <command>gdmlogin</command> Command Line "
"Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4672 (para)
+#: ../C/gdm.xml:4701 (para)
msgid ""
"The <command>gdmgreeter</command> and <command>gdmlogin</command> are two "
"different login applications, either can be used by GDM. "
@@ -5771,12 +5924,12 @@ msgid ""
"GNOME options."
msgstr ""
-#: ../C/gdm.xml:4683 (title) ../C/gdm.xml:4694
+#: ../C/gdm.xml:4712 (title) ../C/gdm.xml:4723
#, fuzzy
msgid "<command>gdmchooser</command> Command Line Options"
msgstr "Opciones de línea de comandos de <command>gdmdynamic</command>"
-#: ../C/gdm.xml:4685 (para)
+#: ../C/gdm.xml:4714 (para)
msgid ""
"The <command>gdmchooser</command> is the XDMCP chooser application. The "
"<command>gdmchooser</command> is normally executed by the GDM daemon. It "
@@ -5784,39 +5937,39 @@ msgid ""
"standard GNOME options and is found in support standard GNOME options."
msgstr ""
-#: ../C/gdm.xml:4697 (term)
+#: ../C/gdm.xml:4726 (term)
msgid "-xdmaddress=SOCKET"
msgstr "-xdmaddress=SOCKET"
-#: ../C/gdm.xml:4699 (para)
+#: ../C/gdm.xml:4728 (para)
msgid "Socket for XDM communication."
msgstr ""
-#: ../C/gdm.xml:4706 (term)
+#: ../C/gdm.xml:4735 (term)
msgid "--clientaddress=ADDRESS"
msgstr "--clientaddress=ADDRESS"
-#: ../C/gdm.xml:4708 (para)
+#: ../C/gdm.xml:4737 (para)
msgid ""
"Client address to return in response to XDM. This option is for running "
"gdmchooser with XDM, and is not used within GDM."
msgstr ""
-#: ../C/gdm.xml:4716 (term)
+#: ../C/gdm.xml:4745 (term)
msgid "-connectionType=TYPE"
msgstr "-connectionType=TYPE"
-#: ../C/gdm.xml:4718 (para)
+#: ../C/gdm.xml:4747 (para)
msgid ""
"Connection type to return in response to XDM. This option is for running "
"gdmchooser with XDM, and is not used within GDM."
msgstr ""
-#: ../C/gdm.xml:4732 (title)
+#: ../C/gdm.xml:4761 (title)
msgid "Themed Greeter"
msgstr "Interfaz con temas"
-#: ../C/gdm.xml:4734 (para)
+#: ../C/gdm.xml:4763 (para)
msgid ""
"This section describes the creation of themes for the Themed Greeter. For "
"examples including screenshots, see the standard installed themes and the "
@@ -5824,11 +5977,11 @@ msgid ""
"gdm_greeter/\"> the theme website</ulink>."
msgstr ""
-#: ../C/gdm.xml:4743 (title)
+#: ../C/gdm.xml:4772 (title)
msgid "Theme Overview"
msgstr "Descripción de los temas"
-#: ../C/gdm.xml:4745 (para)
+#: ../C/gdm.xml:4774 (para)
msgid ""
"GDM Themes can be created by creating an XML file that follows the "
"specification in gui/greeter/greeter.dtd. Theme files are stored in the "
@@ -5838,7 +5991,7 @@ msgid ""
"filename> which has similar format to other .desktop files and looks like:"
msgstr ""
-#: ../C/gdm.xml:4756 (screen)
+#: ../C/gdm.xml:4785 (screen)
#, no-wrap
msgid ""
"\n"
@@ -5853,7 +6006,7 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:4767 (para)
+#: ../C/gdm.xml:4796 (para)
msgid ""
"The Name, Description, Author and Copyright fields can be translated just "
"like the other <filename>.desktop</filename>files. All the files that are "
@@ -5864,7 +6017,7 @@ msgid ""
"description will be given later."
msgstr ""
-#: ../C/gdm.xml:4777 (para)
+#: ../C/gdm.xml:4806 (para)
msgid ""
"Once you have theme ready and installed you can test it with the installed "
"<command>gdmthemetester</command> script. This script assumes that you also "
@@ -5879,11 +6032,11 @@ msgid ""
"would run:"
msgstr ""
-#: ../C/gdm.xml:4791 (command)
+#: ../C/gdm.xml:4820 (command)
msgid "gdmthemetester xdmcp circles"
msgstr ""
-#: ../C/gdm.xml:4793 (para)
+#: ../C/gdm.xml:4822 (para)
msgid ""
"Be sure to test all the environments with your theme, and make sure to test "
"how the caps lock warning looks by pressing caps lock. This is also a good "
@@ -5892,7 +6045,7 @@ msgid ""
"PrintScreen."
msgstr ""
-#: ../C/gdm.xml:4801 (para)
+#: ../C/gdm.xml:4830 (para)
msgid ""
"Once you have all this done, then make a tarball that contains the directory "
"name (so that you could just untar it in the <filename>/usr/share/gdm/"
@@ -5904,16 +6057,16 @@ msgid ""
" </screen>"
msgstr ""
-#: ../C/gdm.xml:4816 (title)
+#: ../C/gdm.xml:4845 (title)
msgid "Detailed Description of Theme XML format"
msgstr ""
-#: ../C/gdm.xml:4819 (title)
+#: ../C/gdm.xml:4848 (title)
#, fuzzy
msgid "Box Nodes"
msgstr "Mostrar nodo."
-#: ../C/gdm.xml:4821 (para)
+#: ../C/gdm.xml:4850 (para)
msgid ""
"Box nodes are container nodes for item nodes. Box nodes are specified as "
"follows: <screen>\n"
@@ -5925,23 +6078,24 @@ msgid ""
"of \"homogeneous\", and \"vertical\" for the orientation."
msgstr ""
-#: ../C/gdm.xml:4834 (para)
+#: ../C/gdm.xml:4863 (para)
msgid ""
"If the box is homogeneous then the children are allocated equal amount of "
"space."
msgstr ""
-#: ../C/gdm.xml:4839 (para)
+#: ../C/gdm.xml:4868 (para)
msgid ""
"The \"min-width\" must be specified in pixels. Obviously there is also a "
"corresponding \"min-height\" property as well."
msgstr ""
-#: ../C/gdm.xml:4846 (title)
+#: ../C/gdm.xml:4875 (title)
+#, fuzzy
msgid "Fixed Nodes"
-msgstr ""
+msgstr "Mostrar nodo."
-#: ../C/gdm.xml:4848 (para)
+#: ../C/gdm.xml:4877 (para)
msgid ""
"Fixed is a container that has its children scattered about laid out with "
"precise coordinates. The size of this container is the biggest rectangle "
@@ -5950,71 +6104,72 @@ msgid ""
"proper position nodes inside this."
msgstr ""
-#: ../C/gdm.xml:4857 (para)
+#: ../C/gdm.xml:4886 (para)
msgid "The \"toplevel\" node is really just like a fixed node."
msgstr ""
-#: ../C/gdm.xml:4863 (title)
+#: ../C/gdm.xml:4892 (title)
+#, fuzzy
msgid "Item Nodes"
-msgstr ""
+msgstr "Mostrar nodo."
-#: ../C/gdm.xml:4865 (para)
+#: ../C/gdm.xml:4894 (para)
msgid ""
"A GDM Theme is created by specifying a hierarchy of item and box nodes. Item "
"nodes can have the following value for \"type\":"
msgstr ""
-#: ../C/gdm.xml:4872 (term)
+#: ../C/gdm.xml:4901 (term)
msgid "entry"
msgstr "entrada"
-#: ../C/gdm.xml:4874 (para)
+#: ../C/gdm.xml:4903 (para)
msgid "Text entry field."
msgstr "Campo de entrada de texto."
-#: ../C/gdm.xml:4881 (term)
+#: ../C/gdm.xml:4910 (term)
msgid "list"
msgstr "lista"
-#: ../C/gdm.xml:4883 (para)
+#: ../C/gdm.xml:4912 (para)
msgid "A list widget."
msgstr "Un widget de lista"
-#: ../C/gdm.xml:4890 (term)
+#: ../C/gdm.xml:4919 (term)
msgid "label"
msgstr "etiqueta"
-#: ../C/gdm.xml:4892 (para)
+#: ../C/gdm.xml:4921 (para)
msgid "A text label. Must have a \"text\" node to specify the text."
msgstr ""
-#: ../C/gdm.xml:4899 (term)
+#: ../C/gdm.xml:4928 (term)
msgid "pixmap"
msgstr "imagen"
-#: ../C/gdm.xml:4901 (para)
+#: ../C/gdm.xml:4930 (para)
msgid ""
"An pixmap image in a format that gdk-pixbuf supports like PNG, JPEG, Tiff, "
"etc...)"
msgstr ""
-#: ../C/gdm.xml:4909 (term)
+#: ../C/gdm.xml:4938 (term)
msgid "rect"
msgstr "rect"
-#: ../C/gdm.xml:4911 (para)
+#: ../C/gdm.xml:4940 (para)
msgid "Rectangle."
msgstr "Rectángulo."
-#: ../C/gdm.xml:4918 (term)
+#: ../C/gdm.xml:4947 (term)
msgid "svg"
msgstr "svg"
-#: ../C/gdm.xml:4920 (para)
+#: ../C/gdm.xml:4949 (para)
msgid "Scaled Vector Graphic image."
msgstr "Imagen Scaled Vector Graphic"
-#: ../C/gdm.xml:4927 (para)
+#: ../C/gdm.xml:4956 (para)
msgid ""
"For example: <screen>&lt;item type=\"label\"&gt;</screen> Items can specify "
"ID values which gives them a specific look and feel or formatting. "
@@ -6022,191 +6177,192 @@ msgid ""
"with custom id's for some items (currently only the list item)"
msgstr ""
-#: ../C/gdm.xml:4936 (para)
+#: ../C/gdm.xml:4965 (para)
msgid "Entry items can have id values as follows:"
msgstr ""
-#: ../C/gdm.xml:4942 (term)
+#: ../C/gdm.xml:4971 (term)
msgid "user-pw-entry"
msgstr ""
-#: ../C/gdm.xml:4944 (para)
+#: ../C/gdm.xml:4973 (para)
msgid ""
"Entry field for userid and password entry. This is the field used for "
"responses for the PAM/GDM questions (Username, Password, etc..)."
msgstr ""
-#: ../C/gdm.xml:4954 (para)
+#: ../C/gdm.xml:4983 (para)
msgid "List items can have id values as follows:"
msgstr ""
-#: ../C/gdm.xml:4960 (term)
+#: ../C/gdm.xml:4989 (term)
msgid "userlist"
msgstr "lista de usuarios"
-#: ../C/gdm.xml:4962 (para)
+#: ../C/gdm.xml:4991 (para)
msgid ""
"A Face Browser list, so that users can pick their username by clicking on "
"this instead of typing."
msgstr ""
-#: ../C/gdm.xml:4971 (para)
+#: ../C/gdm.xml:5000 (para)
msgid ""
"Furthermore, you can have an arbitrary id (I'd recommend starting the id "
"with 'custom' not to conflict with future additions to this spec) and ask "
"extra information of the user. See the section 'Custom Widgetry'"
msgstr ""
-#: ../C/gdm.xml:4978 (para)
+#: ../C/gdm.xml:5007 (para)
msgid "Label items can have id values as follows:"
msgstr ""
-#: ../C/gdm.xml:4984 (term)
+#: ../C/gdm.xml:5013 (term)
msgid "clock"
msgstr "reloj"
-#: ../C/gdm.xml:4986 (para)
+#: ../C/gdm.xml:5015 (para)
msgid "Label the displays the date and time."
msgstr "Etiqueta que muesta la fecha y la hora."
-#: ../C/gdm.xml:4993 (term)
+#: ../C/gdm.xml:5022 (term)
+#, fuzzy
msgid "pam-prompt"
-msgstr ""
+msgstr "Cameron"
-#: ../C/gdm.xml:4995 (para)
+#: ../C/gdm.xml:5024 (para)
msgid ""
"Label the displays PAM prompt. This is the prompt that PAM uses to ask for "
"username, password, etc..."
msgstr ""
-#: ../C/gdm.xml:5003 (term)
+#: ../C/gdm.xml:5032 (term)
#, fuzzy
msgid "pam-error"
msgstr "Cameron"
-#: ../C/gdm.xml:5005 (para)
+#: ../C/gdm.xml:5034 (para)
msgid ""
"Label the displays PAM/GDM error messages. Such as when user can't log in."
msgstr ""
-#: ../C/gdm.xml:5013 (term)
+#: ../C/gdm.xml:5042 (term)
msgid "pam-message"
msgstr ""
-#: ../C/gdm.xml:5015 (para)
+#: ../C/gdm.xml:5044 (para)
msgid ""
"Label the displays PAM message. These are messages that PAM/GDM gives about "
"state of the account, help about the prompts and other information."
msgstr ""
-#: ../C/gdm.xml:5024 (term)
+#: ../C/gdm.xml:5053 (term)
#, fuzzy
msgid "timed-label"
msgstr "etiqueta"
-#: ../C/gdm.xml:5026 (para)
+#: ../C/gdm.xml:5055 (para)
msgid "Label that displays timed login information."
msgstr "Etiqueta que muestra la información de la entrada temporizada."
-#: ../C/gdm.xml:5033 (para)
+#: ../C/gdm.xml:5062 (para)
msgid "Rectangles can have id values as follows:"
msgstr ""
-#: ../C/gdm.xml:5039 (term)
+#: ../C/gdm.xml:5068 (term)
msgid "caps-lock-warning"
msgstr ""
-#: ../C/gdm.xml:5041 (para)
+#: ../C/gdm.xml:5070 (para)
msgid ""
"Displays an icon that shows if the CAPS LOCK key is depressed. This "
"rectangle will be hidden/shown appropriately"
msgstr ""
-#: ../C/gdm.xml:5050 (para)
+#: ../C/gdm.xml:5079 (para)
msgid ""
"If an item is of type rect, the item can be a button. Buttons must also "
"include a \"button\" value as follows: <screen>&lt;item type=\"rect\" id="
"\"disconnect_button\" button=\"true\"&gt;.</screen>"
msgstr ""
-#: ../C/gdm.xml:5056 (para)
+#: ../C/gdm.xml:5085 (para)
msgid "Possible values for button ids are as follows:"
msgstr ""
-#: ../C/gdm.xml:5062 (term)
+#: ../C/gdm.xml:5091 (term)
#, fuzzy
msgid "chooser_button"
msgstr "ChooserButton"
-#: ../C/gdm.xml:5064 (para)
+#: ../C/gdm.xml:5093 (para)
msgid "Runs the XDMCP chooser."
msgstr ""
-#: ../C/gdm.xml:5071 (term)
+#: ../C/gdm.xml:5100 (term)
#, fuzzy
msgid "config_button"
msgstr "Configuración"
-#: ../C/gdm.xml:5073 (para)
+#: ../C/gdm.xml:5102 (para)
msgid "Runs the GDM configuration application."
msgstr "Ejecuta la aplicación de configuración de GDM."
-#: ../C/gdm.xml:5080 (term)
+#: ../C/gdm.xml:5109 (term)
#, fuzzy
msgid "disconnect_button"
msgstr "botón_sesión"
-#: ../C/gdm.xml:5082 (para)
+#: ../C/gdm.xml:5111 (para)
msgid "Disconnect from remote session."
msgstr "Desconectar de una sesión remota."
-#: ../C/gdm.xml:5089 (term)
+#: ../C/gdm.xml:5118 (term)
msgid "language_button"
msgstr "botón_idioma"
-#: ../C/gdm.xml:5091 (para)
+#: ../C/gdm.xml:5120 (para)
msgid "Displays the language selection dialog."
msgstr "Muestra el diálogo de selección del idioma."
-#: ../C/gdm.xml:5098 (term)
+#: ../C/gdm.xml:5127 (term)
msgid "halt_button"
msgstr "botón_detener"
-#: ../C/gdm.xml:5100 (para)
+#: ../C/gdm.xml:5129 (para)
#, fuzzy
msgid "Halt (shuts down) the system."
msgstr "Suspender el sistema"
-#: ../C/gdm.xml:5107 (term)
+#: ../C/gdm.xml:5136 (term)
msgid "reboot_button"
msgstr "botón reiniciar"
-#: ../C/gdm.xml:5109 (para)
+#: ../C/gdm.xml:5138 (para)
msgid "Reboot the system."
msgstr "Reiniciar el sistema"
-#: ../C/gdm.xml:5116 (term)
+#: ../C/gdm.xml:5145 (term)
msgid "session_button"
msgstr "botón_sesión"
-#: ../C/gdm.xml:5118 (para)
+#: ../C/gdm.xml:5147 (para)
#, fuzzy
msgid "List and select from available sessions."
msgstr "Desconectar de una sesión remota."
-#: ../C/gdm.xml:5125 (term)
+#: ../C/gdm.xml:5154 (term)
msgid "suspend_button"
msgstr "botón_suspender"
-#: ../C/gdm.xml:5127 (para)
+#: ../C/gdm.xml:5156 (para)
msgid "Suspend the system."
msgstr "Suspender el sistema"
-#: ../C/gdm.xml:5134 (term)
+#: ../C/gdm.xml:5163 (term)
msgid "system_button"
msgstr "botón_sistema"
-#: ../C/gdm.xml:5136 (para)
+#: ../C/gdm.xml:5165 (para)
msgid ""
"Perform halt/reboot/suspend/etc. options (if allowed by GDM configuration). "
"Also allows user to run configurator if user enters root password (again if "
@@ -6214,26 +6370,26 @@ msgid ""
"referred to as the Actions menu."
msgstr ""
-#: ../C/gdm.xml:5150 (title)
+#: ../C/gdm.xml:5179 (title)
#, fuzzy
msgid "Position Node"
msgstr "PositionX"
-#: ../C/gdm.xml:5152 (para)
+#: ../C/gdm.xml:5181 (para)
msgid ""
"Each item can specify its position and size via the \"pos\" node. For "
"example: <screen>&lt;pos x=\"0\" y=\"4\" width=\"100%\" height=\"100%\"/&gt;"
"</screen>"
msgstr ""
-#: ../C/gdm.xml:5158 (para)
+#: ../C/gdm.xml:5187 (para)
msgid ""
"Both position and size can be given in percent and it will be taken as the "
"percentage of the size of the current container. For toplevel items it's the "
"percentage of the whole screen."
msgstr ""
-#: ../C/gdm.xml:5164 (para)
+#: ../C/gdm.xml:5193 (para)
msgid ""
"For x and y, you can also specify a negative position which means position "
"from the right or bottom edge. But this only applies with absolute "
@@ -6241,7 +6397,7 @@ msgid ""
"be still from the same edge."
msgstr ""
-#: ../C/gdm.xml:5171 (para)
+#: ../C/gdm.xml:5200 (para)
msgid ""
"The position also specifies the anchor of the item, this can be \"n\", \"ne"
"\", \"e\", \"se\", \"s\", \"sw\", \"w\" and \"nw\" or \"center\" which stand "
@@ -6250,28 +6406,28 @@ msgid ""
"&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5178 (para)
+#: ../C/gdm.xml:5207 (para)
msgid ""
"If the item contains a box, you can specify width and height to be \"box\" "
"to mean that they are supposed to be the width and height of the box, that "
"is the items in the box plus the padding."
msgstr ""
-#: ../C/gdm.xml:5184 (para)
+#: ../C/gdm.xml:5213 (para)
msgid ""
"If the item contains an SVG image, you can specify width and height to be "
"\"scale\" to mean that the SVG image should be scaled to fit the requested "
"area."
msgstr ""
-#: ../C/gdm.xml:5190 (para)
+#: ../C/gdm.xml:5219 (para)
msgid ""
"You can also specify an \"expand\" property to either be \"true\" or false. "
"If true then the child will be expanded in the box as much as possible (that "
"is it will be given more space if available)."
msgstr ""
-#: ../C/gdm.xml:5196 (para)
+#: ../C/gdm.xml:5225 (para)
msgid ""
"There are two extra properties you can specify (as of 2.4.4.3) for labels "
"(and labels only). The first is \"max-width\" which will specify the maximum "
@@ -6284,182 +6440,186 @@ msgid ""
" </screen>"
msgstr ""
-#: ../C/gdm.xml:5212 (title)
+#: ../C/gdm.xml:5241 (title)
msgid "Show Node"
msgstr "Mostrar nodo."
-#: ../C/gdm.xml:5214 (para)
+#: ../C/gdm.xml:5243 (para)
msgid ""
"Some items may only display in certain modes, like when doing a remote "
"display. Multiple values can be specified and must be separated with commas. "
"The following values are possible:"
msgstr ""
-#: ../C/gdm.xml:5220 (para)
+#: ../C/gdm.xml:5249 (para)
msgid "<filename>console</filename> - In console mode."
msgstr ""
-#: ../C/gdm.xml:5223 (para)
+#: ../C/gdm.xml:5252 (para)
msgid "<filename>console-fixed</filename> - In console non-flexi mode."
msgstr ""
-#: ../C/gdm.xml:5226 (para)
+#: ../C/gdm.xml:5255 (para)
msgid "<filename>console-flexi</filename> - In console &amp; flexi mode."
msgstr ""
-#: ../C/gdm.xml:5229 (para)
+#: ../C/gdm.xml:5258 (para)
msgid "<filename>flexi</filename> - In flexi mode."
msgstr ""
-#: ../C/gdm.xml:5232 (para)
+#: ../C/gdm.xml:5261 (para)
msgid "<filename>remote</filename> - In remote mode."
msgstr ""
-#: ../C/gdm.xml:5235 (para)
+#: ../C/gdm.xml:5264 (para)
msgid "<filename>remote-flexi</filename> - In remote &amp; flexi mode."
msgstr ""
-#: ../C/gdm.xml:5239 (para)
+#: ../C/gdm.xml:5268 (para)
msgid "For example: <screen>&lt;show modes=\"flexi,remote\"/&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5244 (para)
+#: ../C/gdm.xml:5273 (para)
msgid ""
"You can also specify the \"type\" value to indicate that certain items "
"should only be displayed if the type is true. Valid values include the "
"following:"
msgstr ""
-#: ../C/gdm.xml:5250 (para)
+#: ../C/gdm.xml:5279 (para)
msgid ""
-"<filename>chooser</filename>, if ChooserButton is set to \"true\" in "
-"<filename>gdm.conf</filename> file."
+"<filename>chooser</filename>, if ChooserButton is set to \"true\" in the GDM "
+"configuration."
msgstr ""
-#: ../C/gdm.xml:5254 (para)
+#: ../C/gdm.xml:5283 (para)
+#, fuzzy
msgid ""
-"<filename>config</filename>, if ConfigAvailable is set to \"true\" in "
-"<filename>gdm.conf</filename> file."
+"<filename>config</filename>, if ConfigAvailable is set to \"true\" in the "
+"GDM configuration."
msgstr ""
+"El archivo de configuración <filename>gdm.conf</filename> contiene las "
+"opciones de configuración principales de GDM."
-#: ../C/gdm.xml:5258 (para)
+#: ../C/gdm.xml:5287 (para)
msgid ""
-"<filename>halt</filename>, if HaltDaemon is specified in <filename>gdm.conf</"
-"filename> file."
+"<filename>halt</filename>, if HaltDaemon is specified in the GDM "
+"configuration."
msgstr ""
-#: ../C/gdm.xml:5262 (para)
+#: ../C/gdm.xml:5291 (para)
msgid ""
-"<filename>reboot</filename>, if RebootCommand is specified in <filename>gdm."
-"conf</filename> file."
+"<filename>reboot</filename>, if RebootCommand is specified in the GDM "
+"configuration."
msgstr ""
-#: ../C/gdm.xml:5266 (para)
+#: ../C/gdm.xml:5295 (para)
msgid ""
-"<filename>suspend</filename>, if SuspendCommand is specified in "
-"<filename>gdm.conf</filename> file."
+"<filename>suspend</filename>, if SuspendCommand is specified in the GDM "
+"configuration."
msgstr ""
-#: ../C/gdm.xml:5270 (para)
+#: ../C/gdm.xml:5299 (para)
msgid ""
-"<filename>system</filename>, if SystemMenu is specified in <filename>gdm."
-"conf</filename> file"
+"<filename>system</filename>, if SystemMenu is specified in the GDM "
+"configuration."
msgstr ""
-#: ../C/gdm.xml:5274 (para)
+#: ../C/gdm.xml:5303 (para)
msgid ""
-"<filename>timed</filename>, if TimedLoginEnabled is set to \"true\" in "
-"<filename>gdm.conf</filename> file."
+"<filename>timed</filename>, if TimedLoginEnabled is set to \"true\" in the "
+"GDM configuration."
msgstr ""
-#: ../C/gdm.xml:5279 (para)
+#: ../C/gdm.xml:5308 (para)
msgid ""
"For example: <screen>&lt;show modes=\"console\" type=\"system\"/&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5284 (para)
+#: ../C/gdm.xml:5313 (para)
msgid ""
"Note that if SystemMenu is off then all of halt, reboot, suspend, chooser "
"and config will not show, so this is a global toggle for them all. See some "
"of the standard themes for how the show modes are used."
msgstr ""
-#: ../C/gdm.xml:5293 (title)
+#: ../C/gdm.xml:5322 (title)
msgid "Normal/Active/Prelight Nodes"
msgstr ""
-#: ../C/gdm.xml:5295 (para)
+#: ../C/gdm.xml:5324 (para)
msgid ""
"Depending on the item type (except for userlist - refer to Color node "
"below), it can specify its color, font, or image via the following tags:"
msgstr ""
-#: ../C/gdm.xml:5300 (para)
+#: ../C/gdm.xml:5329 (para)
msgid "<filename>normal</filename> - normal state."
msgstr ""
-#: ../C/gdm.xml:5303 (para)
+#: ../C/gdm.xml:5332 (para)
msgid "<filename>active</filename> - when the item has active focus."
msgstr ""
-#: ../C/gdm.xml:5306 (para)
+#: ../C/gdm.xml:5335 (para)
msgid ""
"<filename>prelight</filename> - when the mouse is hovering over the item."
msgstr ""
-#: ../C/gdm.xml:5311 (para)
+#: ../C/gdm.xml:5340 (para)
msgid ""
"When item is \"rect\" (alpha can be omitted and defaults to 0.0): "
"<screen>&lt;normal color=\"#ffffff\" alpha=\"0.0\"&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5316 (para)
+#: ../C/gdm.xml:5345 (para)
msgid ""
"When item is \"label\": <screen>&lt;normal color=\"#ffffff\" font=\"Sans 14"
"\"/&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5321 (para)
+#: ../C/gdm.xml:5350 (para)
msgid ""
"When the item type is \"pixmap\" or \"SVG\", then the normal, active, and "
"prelight tags specify the images to use as follows: <screen>&lt;normal file="
"\"picture.png\" tint=\"#dddddd\"/&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5327 (para)
+#: ../C/gdm.xml:5356 (para)
msgid ""
"Note that relative pathnames are assumed to be in the same directory as the "
"theme <filename>.xml</filename> file in <filename>&lt;share&gt;/gdm/themes/"
"&lt;theme_name&gt;</filename>."
msgstr ""
-#: ../C/gdm.xml:5335 (title)
+#: ../C/gdm.xml:5364 (title)
msgid "Face Browser Icon/Label Color Nodes"
msgstr ""
-#: ../C/gdm.xml:5337 (para)
+#: ../C/gdm.xml:5366 (para)
msgid ""
"If the item type is of userlist, then the background color for the icon and "
"label can be set separately via the the following tag:"
msgstr ""
-#: ../C/gdm.xml:5343 (screen)
+#: ../C/gdm.xml:5372 (screen)
#, no-wrap
msgid "&lt;color iconcolor=\"#dddddd\" labelcolor=\"#ffffff\"/&gt;"
msgstr ""
-#: ../C/gdm.xml:5348 (title)
+#: ../C/gdm.xml:5377 (title)
+#, fuzzy
msgid "Text Node"
-msgstr ""
+msgstr "Mostrar nodo."
-#: ../C/gdm.xml:5350 (para)
+#: ../C/gdm.xml:5379 (para)
msgid ""
"Text tags are used by labels. They can be used to display localized text as "
"follows (if the \"xml:lang\" attribute is omitted, the C locale is assumed): "
"<screen>&lt;text xml:lang=\"fr\"&gt;Option&lt;/text&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5357 (para)
+#: ../C/gdm.xml:5386 (para)
msgid ""
"You can include pango markup in the text nodes for labels, however you must "
"encode it. So for example to have the label of \"foo&lt;sup&gt;bar&lt;/"
@@ -6467,11 +6627,11 @@ msgid ""
"bar&amp;lt;/sup&amp;gt;&lt;/text&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5367 (title)
+#: ../C/gdm.xml:5396 (title)
msgid "Stock"
msgstr "Stock"
-#: ../C/gdm.xml:5369 (para)
+#: ../C/gdm.xml:5398 (para)
msgid ""
"Certain common localized labels can be specified via the stock tags. The "
"\"text\" tag is ignored if the \"stock\" tag is used. You should really use "
@@ -6480,76 +6640,76 @@ msgid ""
"following values are valid:"
msgstr ""
-#: ../C/gdm.xml:5377 (para)
+#: ../C/gdm.xml:5406 (para)
msgid "<filename>cancel</filename>, _(\"_Cancel\")"
msgstr ""
-#: ../C/gdm.xml:5380 (para)
+#: ../C/gdm.xml:5409 (para)
msgid "<filename>caps-lock-warning</filename>, _(\"You've got capslock on!\")"
msgstr ""
-#: ../C/gdm.xml:5383 (para)
+#: ../C/gdm.xml:5412 (para)
msgid "<filename>chooser</filename>, _(\"_XDMCP Chooser\")"
msgstr ""
-#: ../C/gdm.xml:5386 (para)
+#: ../C/gdm.xml:5415 (para)
msgid "<filename>disconnect</filename>, _(\"D_isconnect\")"
msgstr ""
-#: ../C/gdm.xml:5389 (para)
+#: ../C/gdm.xml:5418 (para)
msgid "<filename>halt</filename>, _(\"Shut_down\")"
msgstr ""
-#: ../C/gdm.xml:5392 (para)
+#: ../C/gdm.xml:5421 (para)
msgid "<filename>language</filename>, _(\"_Language\")"
msgstr ""
-#: ../C/gdm.xml:5395 (para)
+#: ../C/gdm.xml:5424 (para)
msgid "<filename>ok</filename>, _(\"_OK\")"
msgstr ""
-#: ../C/gdm.xml:5398 (para)
+#: ../C/gdm.xml:5427 (para)
msgid "<filename>quit</filename>, _(\"_Quit\")"
msgstr ""
-#: ../C/gdm.xml:5401 (para)
+#: ../C/gdm.xml:5430 (para)
msgid "<filename>reboot</filename>, _(\"_Reboot\")"
msgstr ""
-#: ../C/gdm.xml:5404 (para)
+#: ../C/gdm.xml:5433 (para)
msgid "<filename>session</filename>, _(\"_Session\")"
msgstr ""
-#: ../C/gdm.xml:5407 (para)
+#: ../C/gdm.xml:5436 (para)
msgid "<filename>suspend</filename>, _(\"Sus_pend\")"
msgstr ""
-#: ../C/gdm.xml:5410 (para)
+#: ../C/gdm.xml:5439 (para)
msgid "<filename>system</filename>, _(\"_Actions\") (Formerly \"S_ystem\")"
msgstr ""
-#: ../C/gdm.xml:5413 (para)
+#: ../C/gdm.xml:5442 (para)
msgid ""
"<filename>timed-label</filename>, _(\"User %s will login in %d seconds\")"
msgstr ""
-#: ../C/gdm.xml:5417 (para)
+#: ../C/gdm.xml:5446 (para)
msgid "<filename>username-label</filename>, _(\"Username:\")"
msgstr ""
-#: ../C/gdm.xml:5420 (para)
+#: ../C/gdm.xml:5449 (para)
msgid "<filename>welcome-label</filename>, _(\"Welcome to %h\")"
msgstr ""
-#: ../C/gdm.xml:5424 (para)
+#: ../C/gdm.xml:5453 (para)
msgid "For example: <screen>&lt;stock type=\"welcome-label\"/&gt;</screen>"
msgstr ""
-#: ../C/gdm.xml:5431 (title)
+#: ../C/gdm.xml:5460 (title)
msgid "Custom Widgetry"
msgstr ""
-#: ../C/gdm.xml:5433 (para)
+#: ../C/gdm.xml:5462 (para)
msgid ""
"Currently there is one item which can be customizable and this is the list "
"item. If you need to ask the user extra things, such as to pick from a list "
@@ -6560,14 +6720,14 @@ msgid ""
"<filename>&lt;list id&gt;=&lt;listitem id&gt;</filename>."
msgstr ""
-#: ../C/gdm.xml:5444 (para)
+#: ../C/gdm.xml:5473 (para)
msgid ""
"For example suppose we are on display :0, <filename>ServAuthDir</filename> "
"is <filename>&lt;var&gt;/gdm</filename> and we have the following in the "
"theme:"
msgstr ""
-#: ../C/gdm.xml:5450 (screen)
+#: ../C/gdm.xml:5479 (screen)
#, no-wrap
msgid ""
"\n"
@@ -6583,17 +6743,17 @@ msgid ""
" "
msgstr ""
-#: ../C/gdm.xml:5462 (para)
+#: ../C/gdm.xml:5491 (para)
msgid ""
"Then if the user chooses 'Foo' then <filename>&lt;var&gt;/gdm/:0."
"GreeterInfo</filename> will contain: <screen>custom-config=foo</screen>"
msgstr ""
-#: ../C/gdm.xml:5472 (title)
+#: ../C/gdm.xml:5501 (title)
msgid "Accessibility"
msgstr "Accesibilidad"
-#: ../C/gdm.xml:5473 (para)
+#: ../C/gdm.xml:5502 (para)
msgid ""
"GDM supports \"Accessible Login\" to allow users to log in to their desktop "
"session even if they cannot easily use the screen, mouse, or keyboard in the "
@@ -6603,55 +6763,55 @@ msgid ""
"PS/2 mouse port. It also allows the user to change the visual appearance of "
"the login UI before logging in, for instance to use a higher-contrast color "
"scheme for better visibility. GDM only supports accessibility with the GTK+ "
-"Greeter, so the \"Greeter\" parameter in gdm.conf must be set to the GTK+ "
-"Greeter \"gdmlogin\"."
+"Greeter, so the \"Greeter\" parameter in the GDM configuration must be set "
+"to the GTK+ Greeter \"gdmlogin\"."
msgstr ""
-#: ../C/gdm.xml:5488 (title)
+#: ../C/gdm.xml:5517 (title)
msgid "Accessibility Configuration"
msgstr "Configuración de accesibilidad"
-#: ../C/gdm.xml:5489 (para)
+#: ../C/gdm.xml:5518 (para)
msgid ""
"In order to enable Accessible Login, the system administrator must make some "
"changes to the default login configuration by manually modifying three human-"
-"readable configuration files, stored in gdm.conf, AccessKeyMouseEvents and "
-"AccessDwellMouseEvents."
+"readable configuration files, stored in the GDM configuration, "
+"AccessKeyMouseEvents and AccessDwellMouseEvents."
msgstr ""
-#: ../C/gdm.xml:5496 (para)
+#: ../C/gdm.xml:5526 (para)
msgid ""
"In order to allow users to change the color and contrast scheme of the login "
-"dialog, make sure the \"AllowThemeChange\" parameter in gdm.conf is set to "
-"\"true\"."
+"dialog, make sure the \"AllowThemeChange\" parameter in the GDM "
+"configuration is set to \"true\"."
msgstr ""
-#: ../C/gdm.xml:5502 (para)
+#: ../C/gdm.xml:5532 (para)
msgid ""
"To restrict user changes to the visual appearance to a subset of available "
-"themes, the \"GtkThemesToAllow\" parameter in gdm.conf can be set to a list "
-"of acceptable themes separated by commas. For example:"
+"themes, the \"GtkThemesToAllow\" parameter in the GDM configuration can be "
+"set to a list of acceptable themes separated by commas. For example:"
msgstr ""
-#: ../C/gdm.xml:5509 (screen)
+#: ../C/gdm.xml:5539 (screen)
#, no-wrap
msgid "GtkThemesToAllow=HighContrast,HighContrastInverse"
msgstr ""
-#: ../C/gdm.xml:5511 (para)
+#: ../C/gdm.xml:5541 (para)
msgid ""
"To enable the use of assistive technologies such as the Onscreen Keyboard, "
-"Screen Reader, or Magnifier, the \"AddGtkModules\" parameter in gdm.conf "
-"must be uncommented and set to \"true\". Also the \"GtkModulesList\" "
-"parameter must be uncommented and set as follows:"
+"Screen Reader, or Magnifier, the \"AddGtkModules\" parameter in the GDM "
+"configuration must be uncommented and set to \"true\". Also the "
+"\"GtkModulesList\" parameter must be uncommented and set as follows:"
msgstr ""
-#: ../C/gdm.xml:5519 (screen)
+#: ../C/gdm.xml:5549 (screen)
#, no-wrap
msgid "GtkModulesList=gail:atk-bridge:dwellmouselistener:keymouselistener"
msgstr ""
-#: ../C/gdm.xml:5521 (para)
+#: ../C/gdm.xml:5551 (para)
msgid ""
"System administrators may wish to load only the minimum subset of these "
"modules which is required to support their user base. Depending on the end-"
@@ -6666,7 +6826,7 @@ msgid ""
"optimum accessibility we recommend including gail and atk-bridge."
msgstr ""
-#: ../C/gdm.xml:5537 (para)
+#: ../C/gdm.xml:5567 (para)
msgid ""
"Once \"keymouselistener\" and/or \"dwellmouselistener\" have been added to "
"the GtkModules loaded by GDM, you can assign end-user actions with the "
@@ -6675,7 +6835,7 @@ msgid ""
"respectively. The gesture format is described in the two configuration files."
msgstr ""
-#: ../C/gdm.xml:5546 (para)
+#: ../C/gdm.xml:5576 (para)
msgid ""
"The AccessKeyMouseEvents file controls the keymouselistener Gesture Listener "
"and is used to define key-press, mouse button, or XInput device sequences "
@@ -6684,7 +6844,7 @@ msgid ""
"associated with multiple switch presses and/or minimum durations."
msgstr ""
-#: ../C/gdm.xml:5555 (para)
+#: ../C/gdm.xml:5585 (para)
msgid ""
"The DwellKeyMouseEvents file controls the dwellmouselistner and supports "
"gestures that involve only motion of a pointing device such as the system "
@@ -6694,7 +6854,7 @@ msgid ""
"alternate input device."
msgstr ""
-#: ../C/gdm.xml:5565 (para)
+#: ../C/gdm.xml:5595 (para)
msgid ""
"Motion gestures are defined as \"crossing events\" into and out of the login "
"dialog window. If the 'dwellmouselistener' GtkModule is loaded, alternative "
@@ -6702,14 +6862,14 @@ msgid ""
"motion from alternative devices results in movement of the onscreen pointer."
msgstr ""
-#: ../C/gdm.xml:5573 (para)
+#: ../C/gdm.xml:5603 (para)
msgid ""
"In order to use text-to-speech services at login time (for instance, when "
"using the Screen Reader in speech mode) on some operating systems, the GDM "
"user must be made a member of the \"audio\" group"
msgstr ""
-#: ../C/gdm.xml:5580 (para)
+#: ../C/gdm.xml:5610 (para)
msgid ""
"There are some issues that cause some users to have problems getting the "
"gesture listeners to work. It is recommended that people use GDM version "
@@ -6725,45 +6885,45 @@ msgid ""
"recognize them."
msgstr ""
-#: ../C/gdm.xml:5598 (title)
+#: ../C/gdm.xml:5628 (title)
#, fuzzy
msgid "Accessibility Login Sound Configuration"
msgstr "Configuración de accesibilidad"
-#: ../C/gdm.xml:5599 (para)
+#: ../C/gdm.xml:5629 (para)
msgid ""
"By default, gdm requires a media application such as \"sox\" to be present "
"to play login sounds. GDM defaults the location of this application to "
"<filename>/usr/bin/play</filename> (or <filename>/usr/bin/audioplay</"
-"filename> on Solaris. This can be changed via the SoundProgram configuration "
-"option in <filename>gdm.conf</filename>."
+"filename> on Solaris. This can be changed via the SoundProgram GDM "
+"configuration option."
msgstr ""
-#: ../C/gdm.xml:5611 (title)
+#: ../C/gdm.xml:5640 (title)
msgid "Solaris Specific Features"
msgstr "Características específicas de Solaris"
-#: ../C/gdm.xml:5613 (para)
+#: ../C/gdm.xml:5642 (para)
msgid "GDM supports a few features specific to Solaris, as follows:"
msgstr ""
"GDM soporta unas pocas características específicas a Solaris, como las "
"siguientes:"
-#: ../C/gdm.xml:5617 (para)
+#: ../C/gdm.xml:5646 (para)
msgid "GDM supports Solaris Auditing if running on Solaris 10 or higher."
msgstr ""
"GDM soporta Solaris Auditing si se ejecuta sobre Solaris 10 o superior."
-#: ../C/gdm.xml:5621 (para)
+#: ../C/gdm.xml:5650 (para)
msgid ""
"GDM supports a security feature which causes the Xserver to run as the user "
"instead of as the root user. GDM must be using PAM for this feature to be "
"enabled, which is the normal case for Solaris. This second feature has the "
"side-effect of causing the Xserver to always restart between sessions, which "
-"disables the AlwaysRestartServer gdm.conf configuration option."
+"disables the AlwaysRestartServer configuration option."
msgstr ""
-#: ../C/gdm.xml:5630 (para)
+#: ../C/gdm.xml:5659 (para)
msgid ""
"Solaris supports the <filename>/etc/default/login</filename> interface, "
"which affects the <filename>DefaultPath</filename>, <filename>RootPath</"
@@ -6772,11 +6932,11 @@ msgid ""
"Configuration section."
msgstr ""
-#: ../C/gdm.xml:5642 (title)
+#: ../C/gdm.xml:5671 (title)
msgid "Example Configurations"
msgstr "Configuraciones de ejemplo"
-#: ../C/gdm.xml:5644 (para)
+#: ../C/gdm.xml:5673 (para)
msgid ""
"This section has some example configurations that are useful for various "
"setups."
@@ -6784,18 +6944,18 @@ msgstr ""
"Esta sección tiene algunas configuraciones de ejemplo que son útiles para "
"varias configuraciones."
-#: ../C/gdm.xml:5650 (title)
+#: ../C/gdm.xml:5679 (title)
msgid "Terminal Lab With One Server"
msgstr ""
-#: ../C/gdm.xml:5652 (para)
+#: ../C/gdm.xml:5681 (para)
msgid ""
"Suppose you want to make a lab full of X terminals that all connect to one "
"main server. So let's call one X terminal <filename>xterminal</filename> and "
"lets call the server <filename>appserver</filename>. You install GDM on both."
msgstr ""
-#: ../C/gdm.xml:5659 (para)
+#: ../C/gdm.xml:5688 (para)
msgid ""
"On <filename>appserver</filename> you enable XDMCP, so you have <screen>\n"
"[xdmcp]\n"
@@ -6804,7 +6964,7 @@ msgid ""
"<filename>[servers]</filename> section empty."
msgstr ""
-#: ../C/gdm.xml:5669 (para)
+#: ../C/gdm.xml:5698 (para)
msgid ""
"On the <filename>xterminal</filename> you disable XDMCP (you don't want "
"anyone to connect to the xterminal really). You will add a server type "
@@ -6826,11 +6986,11 @@ msgid ""
"<filename>appserver</filename>."
msgstr ""
-#: ../C/gdm.xml:5697 (title)
+#: ../C/gdm.xml:5726 (title)
msgid "Terminal Lab With Two Or More Servers"
msgstr ""
-#: ../C/gdm.xml:5699 (para)
+#: ../C/gdm.xml:5728 (para)
msgid ""
"Suppose you want to make a lab full of X terminals that all connect to some "
"choice of servers. For now let's make it <filename>appserverone</filename> "
@@ -6841,7 +7001,7 @@ msgid ""
"choosers locally on the X terminals."
msgstr ""
-#: ../C/gdm.xml:5710 (para)
+#: ../C/gdm.xml:5739 (para)
msgid ""
"So on the <filename>xterminal</filename> you again disable XDMCP. You will "
"add a server type perhaps called <filename>Chooser</filename> as follows: "
@@ -6861,7 +7021,7 @@ msgid ""
" </screen>"
msgstr ""
-#: ../C/gdm.xml:5732 (para)
+#: ../C/gdm.xml:5761 (para)
msgid ""
"The XDMCP chooser on the X terminal will normally give a broadcast query to "
"see which servers exist on the network. If the two servers are not reachable "
@@ -6871,7 +7031,7 @@ msgid ""
"wish the users to be able to connect to."
msgstr ""
-#: ../C/gdm.xml:5742 (para)
+#: ../C/gdm.xml:5771 (para)
msgid ""
"Sometimes you may want to run the chooser on the server side however. Then "
"what you want to do is to run a configuration similar to the previous "
@@ -6889,11 +7049,11 @@ msgid ""
"terminals."
msgstr ""
-#: ../C/gdm.xml:5766 (title)
+#: ../C/gdm.xml:5795 (title)
msgid "License"
msgstr ""
-#: ../C/gdm.xml:5767 (para)
+#: ../C/gdm.xml:5796 (para)
msgid ""
"This program is free software; you can redistribute it and/or modify it "
"under the terms of the <ulink type=\"help\" url=\"gnome-help:gpl"
@@ -6902,7 +7062,7 @@ msgid ""
"option) any later version."
msgstr ""
-#: ../C/gdm.xml:5775 (para)
+#: ../C/gdm.xml:5804 (para)
msgid ""
"This program is distributed in the hope that it will be useful, but WITHOUT "
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
@@ -6910,7 +7070,7 @@ msgid ""
"License</citetitle> for more details."
msgstr ""
-#: ../C/gdm.xml:5781 (para)
+#: ../C/gdm.xml:5810 (para)
msgid ""
"A copy of the <citetitle>GNU General Public License</citetitle> is included "
"as an appendix to the <citetitle>GNOME Users Guide</citetitle>. You may also "
diff --git a/docs/es/gdm.xml b/docs/es/gdm.xml
index 965e4e7c..b7df40f8 100644
--- a/docs/es/gdm.xml
+++ b/docs/es/gdm.xml
@@ -108,7 +108,9 @@
<para>GDM se escribió con simplicidad y seguridad en mente. Todo el concepto del diseño es este:</para>
- <para>Al iniciar el demonio <command>gdm</command> parsea su archivo de configuración <command>gdm.conf</command>. Para cada una de las pantallas locales, <command>gdm</command> bifurca un Xserver y un proceso esclavo. El proceso principal de <command>gdm</command> escuchará entonces solicitudes XDMCP, si esta configurado así, de las pantallas remotas y monitorizará las sesiones de pantalla locales. El proceso del demonio principal permitirá el inicio de servidores X locales según la demanda usando el comando <command>gdmflexiserver</command> </para>
+ <para>Upon startup the <command>gdm</command> daemon parses the <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename> configuration files. Configuration choices specified in <filename>gdm.conf-custom</filename> override values specified in the main <filename>gdm.conf</filename> file.</para>
+
+ <para>For each of the local displays <command>gdm</command> forks an Xserver and a slave process. The main <command>gdm</command> process will then listen to XDMCP requests, if so configured, from remote displays and monitor the local display sessions. The main daemon process will also allow starting of on new local Xservers on demand using the <command>gdmflexiserver</command> command.</para>
<para>El proceso esclavo <command>gdm</command> abre la pantalla e inicia <command>gdmlogin</command>, la aplicación de entrada gráfica. <command>gdmlogin</command> se ejecuta como un usuario dedicado y se comunica asíncronamente con el proceso esclavo a través de un conducto. Alternativamente el comando <command>gdmgreeter</command> se puede usar dado que el lo mismo que <command>gdmlogin</command> pero permite tener temas. <command>gdmgreeter</command> a veces se le denomina el Interfaz con temas, mientras que <command>gdmlogin</command> se le denomina el Interfaz GTK+.</para>
@@ -196,7 +198,7 @@
<para>Si un usuario no tiene una imagen de rostro definida, GDM usará el icono "stock_person" definido en el tema GTK+ actual. Si dicha imagen no está definida, entonces usará la imagen especificada en la opción de configuración <filename>DefaultFace</filename> como resguardo, normalmente /usr/share/pixmaps/nobody.png.</para>
- <para>Note que cargar y escalar los iconos de rostros situados en los directorios personales de los usuarios puede ser una tarea que consuma mucho tiempo. Debido a que no es práctico cargar imágenes sobre NIS o NFS, GDM no intenta cargar imágenes de rostros desde directorios personales remotos. Además, GDM parará de cargar imágenes de rostros después de 5 segundos de actividad y sólo mostrará los usuarios cuyas imágenes haya obtenido hasta entonces. La opción <filename>Include</filename> de <filename>gdm.conf</filename> puede usarse para especificar un conjunto de usuarios que deben aparecer en el visor de rostros. Mientras los usuarios a incluir tengan un tamaño razonable, no debería haber ningún problema con GDM siendo incapaz de aceder a las imágenes de rostros. Para evitar estos problemas, se recomienda situar las imágenes de rostros en el directorio especificado por la opción de configuración <filename>GlobalFaceDir</filename>.</para>
+ <para>Please note that loading and scaling face icons located in user home directories can be a very time consuming task. Since it not practical to load images over NIS or NFS, GDM does not attempt to load face images from remote home directories. Furthermore, GDM will give up loading face images after 5 seconds of activity and will only display the users whose pictures it has gotten so far. The <filename>Include</filename> configuration option can be used to specify a set of users who should appear on the face browser. As long as the users to include is of a reasonable size, there should not be a problem with GDM being unable to access the face images. To work around these problems, it is recommended to place face images in the directory specified by the <filename>GlobalFaceDir</filename> configuration option.</para>
<para>Para controlar qué usuarios se muestran en el examinador de rostros, hay varias opciones de configuración que pueden usarse. Si se establece a true la opción <filename>IncludeAll</filename>, entonces se analizará el archivo de contraseñas y se mostrarán todos los usuarios. Si la opción <filename>IncludeAll</filename> se establece a falso, entonces la opción <filename>Include</filename> debería contener una lista de usuarios separada por comas. Solo los usuarios especificados se mostrarán. Cualquier usuario listado en la opción <filename>Exclude</filename> y los usuarios cuyo UID sea inferior a <filename>MinimalUID</filename> se filtrarán con independencia de lo que esté establecido en <filename>IncludeAll</filename>.</para>
@@ -271,13 +273,13 @@
<para>This section will cover the configuration of GDM and the format of the configuration file. However you can use the <command>gdmsetup</command> command to configure GDM from a graphical environment. The configuration application does not let you configure every aspect of GDM, so if the configuration application does not cover your needs you may find information in this section.</para>
- <para>The configuration files (especially the <filename>gdm.conf</filename> file) contain lots of useful comments and examples, so also read this for more information about changing your setup.</para>
+ <para>The configuration files (especially the <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename> files) contain lots of useful comments and examples, so also read this for more information about changing your setup.</para>
- <para>Some keys in the configuration file as shipped are commented out while others are set. This is done so that defaults can be easily changed in the future for some keys. If you wish to set such a key you must first remove the leading hash mark that marks it as a comment.</para>
+ <para>Some keys in the configuration file as shipped are commented out while others are set. This is done so that defaults can be easily changed in the future for some keys. GDM considers lines that start with the "#" character a comment, and these lines will be ignored by GDM.</para>
- <para>El archivo de configuración <filename>gdm.conf</filename> contiene las opciones de configuración principales de GDM.</para>
+ <para>The <filename>gdm.conf</filename> file contains the default configuration choices for GDM, and should not be modified by the user. The <filename>gdm.conf-custom</filename> file is where users may specify their custom configuration choices. Configuration options specified in the <filename>gdm.conf-custom</filename> file override the values in the main <filename>gdm.conf</filename> file. Running the <command>gdmsetup</command> command will cause the <filename>gdm.conf-custom</filename> to be modified with the user's configuration choices and will cause any running GDM GUI programs to automatically update.</para>
- <para>GDM may be configured to support both system-wide configuration if built with the <command>--with-configdir</command> option. This allows the gdm.conf file to be installed to a directory that can be mounted across multiple-systems. Regardless of whether this option is used, GDM will first look for the gdm.conf file in the <filename>&lt;etc&gt;/gdm</filename> directory. This way machine-specific configuration always overrides the system-wide defaults. The gdm --config option may also be used to specify the configuration file location. All GDM utilities (such as <command>gdmchooser</command>, <command>gdmsetup</command>, etc.) query the GDM daemon process and will use the same configuration file as being used by the daemon. The GDM2 daemon must be restarted to change the configuration file being used. GDM 2.8.0.1 and earlier only supported machine-specific configuration.</para>
+ <para>GDM may be configured to support system-wide configuration if built with the <command>--with-configdir</command> option. This allows the gdm.conf file to be installed to a directory that can be mounted across multiple-systems. The GDM --config option may also be used to specify the configuration file location. The GDM2 daemon must be restarted to change the configuration file being used.</para>
<para><filename>factory-gdm.conf</filename> is the configuration file as shipped with the daemon. This can be useful if you wish to revert to the default configuration.</para>
@@ -305,8 +307,6 @@ XKeepsCrashing
<para><filename>XKeepsCrashing</filename> is a script which gets run when the X server keeps crashing and we cannot recover. The shipped default script will work with most Linux distributions and can run the X configuration application provided the person on the console knows the root password.</para>
- <para><filename>gdm.conf</filename> configuration settings are used by most GDM applications since a number of configuration settings are used by each program.</para>
-
<para>Accessibility modules are configured in the <filename>modules/</filename> subdirectory, and are a separate topic. Read the default files provided, they have adequate documentation. Again normally the default install is given in the files with <filename>factory</filename> in their name, and those files are not read, they are just there for you so you can always revert to default config.</para>
<para>Files describing available GDM session follow the freedesktop.org desktop file specification and are <filename>.desktop</filename>-style files are installed to <filename>&lt;etc&gt;/X11/sessions/</filename>. This directory is also read by the KDE desktop manager (KDM) for common configuration. Next the directory <filename>&lt;share&gt;/gdm/BuiltInSessions/</filename> is read for GDM specific built-in sessions (KDM hardcodes these at time of this writing). Lastly the default setup will also read <filename>&lt;share&gt;/xsessions/</filename> (which should be <filename>/usr/share/xsessions/</filename> if you really wish to cooperate with KDM) where desktop packages can install their session files. The directories under the <filename>&lt;etc&gt;</filename> should be reserved for configuration. The desktop file specification approach makes it easy for package management systems to install window managers and different session types without requiring the sysadmin to edit files. See the <filename>SessionDesktopDir</filename> configuration key for changing the paths. It used to be that GDM stored its built in sessions in <filename>&lt;etc&gt;/dm/Sessions/</filename> but this is deprecated as of 2.5.90.0. Note that prior to version 2.4.4.2 only the <filename>&lt;etc&gt;/dm/Sessions/</filename> was being read.</para>
@@ -320,7 +320,7 @@ XKeepsCrashing
<para>When the X server has been successfully started, GDM will try to run the script called <filename>Init/&lt;displayname&gt;</filename>. I.e. <filename>Init/:0</filename> for the first local display. If this file is not found, GDM will attempt to to run <filename>Init/&lt;hostname&gt;</filename>. I.e. <filename>Init/somehost</filename>. If this still is not found, GDM will try <filename>Init/XDMCP</filename> for all XDMCP logins or <filename>Init/Flexi</filename> for all on demand flexible servers. If none of the above were found, GDM will run <filename>Init/Default</filename>. The script will be run as root and GDM blocks until it terminates. Use the <filename>Init/*</filename> script for applications that are supposed to run alongside with the GDM login window. xconsole for instance. Commands to set the background etc. goes in this file too.</para>
- <para>It is up to the sysadmin to decide whether clients started by the Init script should be killed before starting the user session. This is controlled with the <filename>KillInitClients</filename> option in <filename>gdm.conf</filename>.</para>
+ <para>It is up to the sysadmin to decide whether clients started by the Init script should be killed before starting the user session. This is controlled with the <filename>KillInitClients</filename> configuration option.</para>
<para>When the user has been successfully authenticated GDM tries the scripts in the <filename>PostLogin</filename> directory in the same manner as for the <filename>Init</filename> directory. This is done before any session setup is done, and so this would be the script where you might setup the home directory if you need to (though you should use the <filename>pam_mount</filename> module if you can for this). You have the <filename>$USER</filename> and <filename>$DISPLAY</filename> environment variables set for this script, and again it is run as root. The script should return 0 on success as otherwise the user won't be logged in. This is not true for failsafe session however.</para>
@@ -341,13 +341,19 @@ XKeepsCrashing
</sect2>
<sect2 id="configfile">
- <title>The Configuration File - <filename>gdm.conf</filename></title>
+ <title>The Configuration File - <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename></title>
- <para>The daemon and the accompanying utilities use a common configuration file: <filename>gdm.conf</filename>. GDM may be configured to support both system-wide configuration if built with the <command>--with-configdir</command> option. This allows the gdm.conf file to be installed to a directory that can be mounted across multiple-systems. Regardless of whether this option is used, GDM will first look for the gdm.conf file in the <filename>&lt;etc&gt;/gdm</filename> directory. This way machine-specific configuration always overrides the system-wide defaults. The gdm --config option may instead be used to specify a configuration file installed to another location. All GDM utilities (such as All GDM utilities (such as <command>gdmchooser</command>, <command>gdmsetup</command>, etc.) query the GDM daemon process and will use the same configuration file as being used by the daemon. The GDM2 daemon must be restarted to change the configuration file being used. GDM 2.8.0.1 and earlier only supported machine-specific configuration.</para>
+ <para>GDM uses two configuration files: <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename>. The <filename>gdm.conf</filename> file contains the default configuration choices for GDM, and should not be modified by the user. The <filename>gdm.conf-custom</filename> file is where users may specify their custom configuration choices. Configuration options specified in the <filename>gdm.conf-custom</filename> file override the values in the main <filename>gdm.conf</filename> file. If a configuration option is not defined in either file, GDM will default to the value described in the comments in the <filename>gdm.conf</filename> file.</para>
+
+ <para>Running the <command>gdmsetup</command> command will cause the <filename>gdm.conf-custom</filename> to be modified with the user's configuration choices.</para>
+
+ <para>Previous to GDM 2.13.0.4 only the <filename>gdm.conf</filename> existed. If upgrading to the new version of GDM, install will check to see if your <filename>gdm.conf</filename> file is different than your <filename>factory-gdm.conf</filename> file. If so, your <filename>gdm.conf</filename> file will be automatically copied to <filename>gdm.conf-custom</filename> to preserve your configuration changes.</para>
+
+ <para>GDM may be configured to support system-wide configuration if built with the <command>--with-configdir</command> option. This allows the <filename>gdm.conf</filename> file to be installed to a directory that can be mounted across multiple-systems. The GDM --config option may instead be used to specify a configuration file installed to another location. The GDM2 daemon must be restarted to change the configuration file being used.</para>
- <para>The configuration file is divided into sections each containing variables that define the behavior for a specific part of the GDM suite. The file is fairly well commented as well.</para>
+ <para>Both configuration files are divided into sections each containing variables that define the behavior for a specific part of the GDM suite. Refer to the comments in the <filename>gdm.conf</filename> file for additional information about each configuration setting.</para>
- <para><filename>gdm.conf</filename> follows the standard <filename>.ini</filename> style configuration file syntax. Keywords in brackets define sections, strings before an equal sign (=) are variables and the data after equal sign represents their value. Empty lines or lines starting with the hash mark (#) are ignored. The graphical configurator will try to preserve both comments (lines with a hash mark) and the overall structure of the file so you can intermix using the GUI or hand editing the configuration file.</para>
+ <para>The <filename>gdm.conf</filename> and <filename>gdm.conf-custom</filename> files follow the standard <filename>.ini</filename> style configuration file syntax. Keywords in brackets define sections, strings before an equal sign (=) are variables and the data after equal sign represents their value. Empty lines or lines starting with the hash mark (#) are ignored. The graphical configurator will try to preserve both comments (lines with a hash mark) and the overall structure of the file so you can intermix using the GUI or hand editing the configuration file.</para>
<sect3 id="daemonsection">
<title>Configuración del demonio</title>
@@ -446,7 +452,7 @@ XKeepsCrashing
<term>DefaultPath</term>
<listitem>
<synopsis>DefaultPath=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin</synopsis>
- <para>Specifies the path which will be set in the user's session. This value will be overridden with the value from /etc/default/login if it contains "ROOT=&lt;pathname&gt;". If the /etc/default/login file exists, but contains no value for ROOT, the gdm.conf value will be used.</para>
+ <para>Specifies the path which will be set in the user's session. This value will be overridden with the value from /etc/default/login if it contains "ROOT=&lt;pathname&gt;". If the /etc/default/login file exists, but contains no value for ROOT, the value as defined in the GDM configuration will be be used.</para>
</listitem>
</varlistentry>
@@ -624,7 +630,7 @@ XKeepsCrashing
<term>RootPath</term>
<listitem>
<synopsis>RootPath=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin</synopsis>
- <para>Specifies the path which will be set in the root's session and the {Init,PostLogin,PreSession,PostSession} scripts executed by GDM. This value will be overridden with the value from /etc/default/login if it contains "SUROOT=&lt;pathname&gt;". If the /etc/default/login file exists, but contains no value for SUROOT, the gdm.conf value will be used.</para>
+ <para>Specifies the path which will be set in the root's session and the {Init,PostLogin,PreSession,PostSession} scripts executed by GDM. This value will be overridden with the value from /etc/default/login if it contains "SUROOT=&lt;pathname&gt;". If the /etc/default/login file exists, but contains no value for SUROOT, the value as defined in the GDM configuration will be used.</para>
</listitem>
</varlistentry>
@@ -818,7 +824,7 @@ XKeepsCrashing
<term>PasswordRequired</term>
<listitem>
<synopsis>PasswordRequired=false</synopsis>
- <para>If true, this will cause PAM_DISALLOW_NULL_AUTHTOK to be passed as a flag to pam_authenticate and pam_acct_mgmt, disallowing NULL password. This setting will only take effect if PAM is being used by GDM. This value will be overridden with the value from /etc/default/login if it contains "PASSREQ=[YES|NO]". If the /etc/default/login file exists, but contains no value for PASSREQ, the gdm.conf value will be used.</para>
+ <para>If true, this will cause PAM_DISALLOW_NULL_AUTHTOK to be passed as a flag to pam_authenticate and pam_acct_mgmt, disallowing NULL password. This setting will only take effect if PAM is being used by GDM. This value will be overridden with the value from /etc/default/login if it contains "PASSREQ=[YES|NO]". If the /etc/default/login file exists, but contains no value for PASSREQ, the value as defined in the GDM configuration will be used.</para>
</listitem>
</varlistentry>
@@ -1291,7 +1297,7 @@ XKeepsCrashing
<term>ChooserButtonLogo</term>
<listitem>
<synopsis>ChooserButtonLogo=&lt;share&gt;/pixmaps/gnome-logo-large.png</synopsis>
- <para>Image file to display in the file chooser button in gdmsetup. This key is modified by gdmsetup and should not be manually modified by the user. This only affects the Login Window Preferences (gdmsetup).</para>
+ <para>Image file to display in the file chooser button in <command>gdmsetup</command>. This key is modified by <command>gdmsetup</command> and should not be manually modified by the user. This only affects the Login Window Preferences (<command>gdmsetup</command>).</para>
</listitem>
</varlistentry>
@@ -1784,9 +1790,9 @@ CLOSE
<sect3 id="queryversion">
<title>VERSION</title>
<screen>
-VERSION: Query version
+VERSION: Query GDM version
Supported since: 2.2.4.0
-Arguments: None
+Arguments: None
Answers:
GDM &lt;gdm version&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -1808,8 +1814,13 @@ AUTH_LOCAL: Setup this connection as authenticated for
Note: The AUTH LOCAL command requires the
--authenticate option, although only
FLEXI XSERVER uses this currently.
+Note: Since 2.6.0.6 you can also use a global
+ &lt;ServAuthDir&gt;/.cookie, which works for all
+ authentication except for SET_LOGOUT_ACTION and
+ QUERY_LOGOUT_ACTION and SET_SAFE_LOGOUT_ACTION
+ which require a logged in display.
Supported since: 2.2.4.0
-Arguments: &lt;xauth cookie&gt;
+Arguments: &lt;xauth cookie&gt;
&lt;xauth cookie&gt; is in hex form with no 0x prefix
Answers:
OK
@@ -1824,10 +1835,10 @@ Answers:
<sect3 id="flexixserver">
<title>FLEXI_XSERVER</title>
<screen>
-FLEXI_XSERVER: Start a new X flexible server
-Only supported on connection that passed AUTH_LOCAL
+FLEXI_XSERVER: Start a new X flexible server. Only supported on
+ connection that passed AUTH_LOCAL
Supported since: 2.2.4.0
-Arguments: &lt;xserver type&gt;
+Arguments: &lt;xserver type&gt;
If no arguments, starts the standard x server
Answers:
OK &lt;display&gt;
@@ -1847,8 +1858,8 @@ Answers:
<sect3 id="flexixnest">
<title>FLEXI_XNEST</title>
<screen>
-FLEXI_XNEXT: Start a new flexible Xnest server
-Note: Supported an older version from 2.2.4.0, later
+FLEXI_XNEXT: Start a new flexible Xnest server.
+Note: Supported on older version from 2.2.4.0, later
2.2.4.2, but since 2.3.90.4 you must supply 4
arguments or ERROR 100 will be returned. This
will start Xnest using the XAUTHORITY file
@@ -1865,8 +1876,8 @@ Note: The cookie should be the MIT-MAGIC-COOKIE-1,
use you should generate one first. The cookie
should be in hex form.
Supported since: 2.3.90.4
-Arguments: &lt;display to run on&gt; &lt;uid of requesting user&gt;
- &lt;xauth cookie for the display&gt; &lt;xauth file&gt;
+Arguments: &lt;display to run on&gt; &lt;uid of requesting user&gt;
+ &lt;xauth cookie for the display&gt; &lt;xauth file&gt;
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -1886,12 +1897,13 @@ Answers:
<sect3 id="adddynamic">
<title>ADD_DYNAMIC_DISPLAY</title>
<screen>
-ADD_DYNAMIC_DISPLAY: Create a new server definition that will run on the
- specified display leaving, it in DISPLAY_CONFIG state.
+ADD_DYNAMIC_DISPLAY: Create a new server definition that will
+ run on the specified display leaving, it
+ in DISPLAY_CONFIG state.
Supported since: 2.8.0.0
-Arguments: &lt;display to run on&gt;=&lt;server&gt;
- Where &lt;server&gt; is either a configuration named in gdm.conf or
- a literal command name.
+Arguments: &lt;display to run on&gt;=&lt;server&gt;
+ Where &lt;server&gt; is either a configuration named in the
+ GDM configuration or a literal command name.
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -1908,10 +1920,10 @@ Answers:
<sect3 id="releasedynamic">
<title>RELEASE_DYNAMIC_DISPLAYS</title>
<screen>
-RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in DISPLAY_CONFIG
- state
+RELEASE_DYNAMIC_DISPLAYS: Release dynamic displays currently in
+ DISPLAY_CONFIG state
Supported since: 2.8.0.0
-Arguments: None
+Arguments: None
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -1925,10 +1937,10 @@ Answers:
<sect3 id="removedynamic">
<title>REMOVE_DYNAMIC_DISPLAY</title>
<screen>
-REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server and purging
- the display configuration
+REMOVE_DYNAMIC_DISPLAY: Remove a dynamic display, killing the server
+ and purging the display configuration
Supported since: 2.8.0.0
-Arguments: &lt;display to remove&gt;
+Arguments: &lt;display to remove&gt;
Answers:
OK &lt;display&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -1943,13 +1955,14 @@ Answers:
<sect3 id="attachedservers">
<title>ATTACHED_SERVERS</title>
<screen>
-ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP and xnest
- non-attached servers
+ATTACHED_SERVERS: List all attached servers. Doesn't list XDMCP
+ and xnest non-attached servers
+Note: This command used to be named CONSOLE_SERVERS,
+ which is still recognized for backwards
+ compatibility. The optional pattern argument
+ is supported as of version 2.8.0.0.
Supported since: 2.2.4.0
-Note: This command used to be named CONSOLE_SERVERS, which is still recognized
- for backwards compatibility. The optional pattern argument is supported
- as of version 2.8.0.0.
-Arguments: &lt;pattern&gt; (optional)
+Arguments: &lt;pattern&gt; (optional)
With no argument, all attached displays are returned. The optional
&lt;pattern&gt; is a string that may contain glob characters '*', '?', and
'[]'. Only displays that match the pattern will be returned.
@@ -1981,7 +1994,7 @@ ALL_SERVERS: List all displays, including console, remote, xnest.
by seeing if it is in the list. It is also somewhat
like the 'w' command but for graphical sessions.
Supported since: 2.4.2.96
-Arguments: None
+Arguments: None
Answers:
OK &lt;server&gt;;&lt;server&gt;;...
@@ -2002,7 +2015,7 @@ Answers:
GET_SERVER_LIST: Get a list of the server sections from
the configuration file.
Supported since: 2.13.0.4
-Arguments: None
+Arguments: None
Answers:
OK &lt;value&gt;;&lt;value&gt;;...
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2017,16 +2030,16 @@ Answers:
<sect3 id="getserverdetails">
<title>GET_SERVER_DETAILS</title>
<screen>
-GET_SERVER_DETAILS: Get detail information for a specific
- server. Key values include:
+GET_SERVER_DETAILS: Get detail information for a specific server.
+Supported since: 2.13.0.4
+Arguments: &lt;server&gt; &lt;key&gt;
+ Key values include:
NAME - Returns the server name
COMMAND - Returns the server command
FLEXIBLE - Returns "true" if flexible, "false" otherwise
CHOOSABLE - Returns "true" if choosable, "false" otherwise
HANDLED - Returns "true" if handled, "false" otherwise
CHOOSER - Returns "true" if chooser, "false" otherwise
-Supported since: 2.13.0.4
-Arguments: &lt;server&gt; &lt;key&gt;
Answers:
OK &lt;value&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2052,7 +2065,7 @@ GET_CONFIG: Get configuration value for key. Useful so
default value (i.e. you can use key "greeter/IncludeAll"
instead of having to use "greeter/IncludeAll=false".
Supported since: 2.6.0.9
-Arguments: &lt;key&gt;
+Arguments: &lt;key&gt;
Answers:
OK &lt;value&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2067,9 +2080,11 @@ Answers:
<title>GET_CONFIG_FILE</title>
<screen>
GET_CONFIG_FILE: Get config file location being used by
- the daemon.
+ the daemon. If the GDM daemon was started
+ with the --config option, it will return
+ the value passed in via the argument.
Supported since: 2.8.0.2
-Arguments: None
+Arguments: None
Answers:
OK &lt;full path to GDM configuration file&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2083,61 +2098,67 @@ Answers:
<title>UPDATE_CONFIG</title>
<screen>
UPDATE_CONFIG: Tell the daemon to re-read a key from the
- gdm.conf configuration file. Any user can
- request that values are re-read but the daemon
- will only do so if the file has been modified
- since the last time it was read. Only users
- who can change the gdm.conf file (normally
- writable only by the root user) can actually
- modify the GDM configuration. This command
- is useful to cause the GDM to update itself
- to recognize a change made to the gdm.conf
- file by the root user.
-
- Starting with version 2.13, all GDM keys are
+ GDM configuration file. Any user can request
+ that values are re-read but the daemon will
+ only do so if the file has been modified
+ since GDM first read the file. Only users
+ who can change the GDM configuration file
+ (normally writable only by the root user) can
+ actually modify the GDM configuration. This
+ command is useful to cause the GDM to update
+ itself to recognize a change made to the GDM
+ configuration file by the root user.
+
+ Starting with version 2.13.0.0, all GDM keys are
supported except for the following:
- daemon/PidFile
- daemon/ConsoleNotify
- daemon/User
- daemon/Group
- daemon/LogDir
- daemon/ServAuthDir
- daemon/UserAuthDir
- daemon/UserAuthFile
- daemon/UserAuthFBDir
-
-Supported keys for previous versions of GDM:
-
- security/AllowRoot (2.3.90.2)
- security/AllowRemoteRoot (2.3.90.2)
- security/AllowRemoteAutoLogin (2.3.90.2)
- security/RetryDelay (2.3.90.2)
- security/DisallowTCP (2.4.2.0)
- daemon/Greeter (2.3.90.2)
- daemon/RemoteGreeter (2.3.90.2)
- xdmcp/Enable (2.3.90.2)
- xdmcp/Port (2.3.90.2)
- xdmcp/PARAMETERS (2.3.90.2) (pseudokey, all the parameters)
- xdmcp/MaxPending
- xdmcp/MaxSessions
- xdmcp/MaxWait
- xdmcp/DisplaysPerHost
- xdmcp/HonorIndirect
- xdmcp/MaxPendingIndirect
- xdmcp/MaxWaitIndirect
- xdmcp/PingIntervalSeconds (only affects new connections)
- daemon/TimedLogin (2.3.90.3)
- daemon/TimedLoginEnable (2.3.90.3)
- daemon/TimedLoginDelay (2.3.90.3)
- greeter/SystemMenu (2.3.90.3)
- greeter/ConfigAvailable (2.3.90.3)
- greeter/ChooserButton (2.4.2.0)
- greeter/SoundOnLoginFile (2.5.90.0)
- daemon/AddGtkModules (2.5.90.0)
- daemon/GtkModulesList (2.5.90.0)
+ daemon/PidFile
+ daemon/ConsoleNotify
+ daemon/User
+ daemon/Group
+ daemon/LogDir
+ daemon/ServAuthDir
+ daemon/UserAuthDir
+ daemon/UserAuthFile
+ daemon/UserAuthFBDir
+
+ GDM also supports the following Psuedokeys:
+
+ xdmcp/PARAMETERS (2.3.90.2) updates the following:
+ xdmcp/MaxPending
+ xdmcp/MaxSessions
+ xdmcp/MaxWait
+ xdmcp/DisplaysPerHost
+ xdmcp/HonorIndirect
+ xdmcp/MaxPendingIndirect
+ xdmcp/MaxWaitIndirect
+ xdmcp/PingIntervalSeconds (only affects new connections)
+
+ xservers/PARAMETERS (2.13.0.4) updates the following:
+ all [server-foo] sections.
+
+ Supported keys for previous versions of GDM:
+
+ security/AllowRoot (2.3.90.2)
+ security/AllowRemoteRoot (2.3.90.2)
+ security/AllowRemoteAutoLogin (2.3.90.2)
+ security/RetryDelay (2.3.90.2)
+ security/DisallowTCP (2.4.2.0)
+ daemon/Greeter (2.3.90.2)
+ daemon/RemoteGreeter (2.3.90.2)
+ xdmcp/Enable (2.3.90.2)
+ xdmcp/Port (2.3.90.2)
+ daemon/TimedLogin (2.3.90.3)
+ daemon/TimedLoginEnable (2.3.90.3)
+ daemon/TimedLoginDelay (2.3.90.3)
+ greeter/SystemMenu (2.3.90.3)
+ greeter/ConfigAvailable (2.3.90.3)
+ greeter/ChooserButton (2.4.2.0)
+ greeter/SoundOnLoginFile (2.5.90.0)
+ daemon/AddGtkModules (2.5.90.0)
+ daemon/GtkModulesList (2.5.90.0)
Supported since: 2.3.90.2
-Arguments: &lt;key&gt;
+Arguments: &lt;key&gt;
&lt;key&gt; is just the base part of the key such as
"security/AllowRemoteRoot"
Answers:
@@ -2157,7 +2178,7 @@ GREETERPIDS: List all greeter pids so that one can send HUP
to them for config rereading. Of course one
must be root to do that.
Supported since: 2.3.90.2
-Arguments: None
+Arguments: None
Answers:
OK &lt;pid&gt;;&lt;pid&gt;;...
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2171,7 +2192,8 @@ Answers:
<title>QUERY_LOGOUT_ACTION</title>
<screen>
QUERY_LOGOUT_ACTION: Query which logout actions are possible
-Only supported on connections that passed AUTH_LOCAL.
+ Only supported on connections that passed
+ AUTH_LOCAL.
Supported since: 2.5.90.0
Answers:
OK &lt;action&gt;;&lt;action&gt;;...
@@ -2192,16 +2214,15 @@ Answers:
<sect3 id="setlogoutaction">
<title>SET_LOGOUT_ACTION</title>
<screen>
-SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend
- after slave process exits.
-Only supported on connections that passed AUTH_LOCAL.
+SET_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend after
+ slave process exits. Only supported on
+ connections that passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: &lt;action&gt;
+Arguments: &lt;action&gt;
NONE Set exit action to 'none'
HALT Set exit action to 'halt'
REBOOT Set exit action to 'reboot'
SUSPEND Set exit action to 'suspend'
-
Answers:
OK
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2217,23 +2238,21 @@ Answers:
<title>SET_SAFE_LOGOUT_ACTION</title>
<screen>
SET_SAFE_LOGOUT_ACTION: Tell the daemon to halt/reboot/suspend
- after everybody logs out. If only
- one person logs out, then this is
- obviously the same as the
- SET_LOGOUT_ACTION. Note that
- SET_LOGOUT_ACTION has precedence over
- SET_SAFE_LOGOUT_ACTION if it is set to
- something other then NONE. If no one
- is logged in, then the action takes
- effect immediately.
-Only supported on connections that passed AUTH_LOCAL.
+ after everybody logs out. If only one
+ person logs out, then this is obviously
+ the same as the SET_LOGOUT_ACTION. Note
+ that SET_LOGOUT_ACTION has precedence
+ over SET_SAFE_LOGOUT_ACTION if it is set
+ to something other then NONE. If no one
+ is logged in, then the action takes effect
+ effect immediately. Only supported on
+ connections that passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: &lt;action&gt;
+Arguments: &lt;action&gt;
NONE Set exit action to 'none'
HALT Set exit action to 'halt'
REBOOT Set exit action to 'reboot'
SUSPEND Set exit action to 'suspend'
-
Answers:
OK
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2254,10 +2273,10 @@ QUERY_VT: Ask the daemon about which VT we are currently on.
supported on Linux currently, other places will
just get ERROR 8. This is also the way to query
if VT support is available in the daemon in the
- first place.
-Only supported on connections that passed AUTH_LOCAL.
+ first place. Only supported on connections that
+ passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: None
+Arguments: None
Answers:
OK &lt;vt number&gt;
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2276,9 +2295,9 @@ SET_VT: Change to the specified virtual terminal.
This is useful for logins which don't own /dev/console
but are still console logins. Only supported on Linux
currently, other places will just get ERROR 8.
-Only supported on connections that passed AUTH_LOCAL.
+ Only supported on connections that passed AUTH_LOCAL.
Supported since: 2.5.90.0
-Arguments: &lt;vt&gt;
+Arguments: &lt;vt&gt;
Answers:
OK
ERROR &lt;err number&gt; &lt;english error description&gt;
@@ -2294,8 +2313,10 @@ Answers:
<sect3 id="close">
<title>CLOSE</title>
<screen>
-CLOSE Answers: None
+CLOSE: Close sockets connection
Supported since: 2.2.4.0
+Arguments: None
+Answers: None
</screen>
</sect3>
</sect2>
@@ -2435,7 +2456,7 @@ Supported since: 2.2.4.0
<para>The <command>gdmdynamic</command> command which creates, runs, and removes displays (X servers) on demand.</para>
- <para>Some environments need the ability to tell GDM to create and manage new displays on the fly, where it is not possible to list the possible displays in gdm.conf. The <command>gdmdynamic</command> command can be used to create a new display on a particular display number, run all newly created displays, or remove a display. The gdmdynamic command can also be used to list all attached displays, or only attached displays that match a pattern.</para>
+ <para>Some environments need the ability to tell GDM to create and manage new displays on the fly, where it is not possible to list the possible displays in GDM configuration files. The <command>gdmdynamic</command> command can be used to create a new display on a particular display number, run all newly created displays, or remove a display. The <command>gdmdynamic</command> command can also be used to list all attached displays, or only attached displays that match a pattern.</para>
<variablelist>
<title>Opciones de línea de comandos de <command>gdmdynamic</command></title>
@@ -2584,18 +2605,7 @@ remote-flexi - In remote (XDMCP) &amp; flexi mode.
<sect3 id="gdmsetupcommandline">
<title><command>gdmsetup</command> Command Line Options</title>
- <para><command>gdmsetup</command> runs a graphical application for modifying the GDM configuration file, gdm.conf. Normally on systems that support the PAM userhelper, this is setup such that when you run <command>gdmsetup</command> as an ordinary user, it will first ask you for your root password before starting. Otherwise, this application may only be run as root. This application supports standard GNOME options.</para>
-
- <variablelist>
- <title><command>gdmsetup</command> Command Line Options</title>
-
- <varlistentry>
- <term>--config=CONFIGFILE</term>
- <listitem>
- <para>Specify an alternative configuration file. By default, <command>gdmsetup</command> will edit the same configuration file being used by the GDM daemon.</para>
- </listitem>
- </varlistentry>
- </variablelist>
+ <para><command>gdmsetup</command> runs a graphical application for modifying the GDM configuration file. Normally on systems that support the PAM userhelper, this is setup such that when you run <command>gdmsetup</command> as an ordinary user, it will first ask you for your root password before starting. Otherwise, this application may only be run as root. This application supports standard GNOME options.</para>
</sect3>
<sect3 id="gdmrestartcommandline">
@@ -2960,13 +2970,13 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
<para>You can also specify the "type" value to indicate that certain items should only be displayed if the type is true. Valid values include the following:</para>
- <para><filename>chooser</filename>, if ChooserButton is set to "true" in <filename>gdm.conf</filename> file.</para>
- <para><filename>config</filename>, if ConfigAvailable is set to "true" in <filename>gdm.conf</filename> file.</para>
- <para><filename>halt</filename>, if HaltDaemon is specified in <filename>gdm.conf</filename> file.</para>
- <para><filename>reboot</filename>, if RebootCommand is specified in <filename>gdm.conf</filename> file.</para>
- <para><filename>suspend</filename>, if SuspendCommand is specified in <filename>gdm.conf</filename> file.</para>
- <para><filename>system</filename>, if SystemMenu is specified in <filename>gdm.conf</filename> file</para>
- <para><filename>timed</filename>, if TimedLoginEnabled is set to "true" in <filename>gdm.conf</filename> file.</para>
+ <para><filename>chooser</filename>, if ChooserButton is set to "true" in the GDM configuration.</para>
+ <para><filename>config</filename>, if ConfigAvailable is set to "true" in the GDM configuration.</para>
+ <para><filename>halt</filename>, if HaltDaemon is specified in the GDM configuration.</para>
+ <para><filename>reboot</filename>, if RebootCommand is specified in the GDM configuration.</para>
+ <para><filename>suspend</filename>, if SuspendCommand is specified in the GDM configuration.</para>
+ <para><filename>system</filename>, if SystemMenu is specified in the GDM configuration.</para>
+ <para><filename>timed</filename>, if TimedLoginEnabled is set to "true" in the GDM configuration.</para>
<para>For example: <screen>&lt;show modes="console" type="system"/&gt;</screen></para>
@@ -3060,19 +3070,19 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
<sect1 id="accessibility">
<title>Accesibilidad</title>
- <para>GDM supports "Accessible Login" to allow users to log in to their desktop session even if they cannot easily use the screen, mouse, or keyboard in the usual way. This feature allows the user to launch assistive technologies at login time by means of special "gestures" from the standard keyboard and from a keyboard, pointing device, or switch device attached to the USB or PS/2 mouse port. It also allows the user to change the visual appearance of the login UI before logging in, for instance to use a higher-contrast color scheme for better visibility. GDM only supports accessibility with the GTK+ Greeter, so the "Greeter" parameter in gdm.conf must be set to the GTK+ Greeter "gdmlogin".</para>
+ <para>GDM supports "Accessible Login" to allow users to log in to their desktop session even if they cannot easily use the screen, mouse, or keyboard in the usual way. This feature allows the user to launch assistive technologies at login time by means of special "gestures" from the standard keyboard and from a keyboard, pointing device, or switch device attached to the USB or PS/2 mouse port. It also allows the user to change the visual appearance of the login UI before logging in, for instance to use a higher-contrast color scheme for better visibility. GDM only supports accessibility with the GTK+ Greeter, so the "Greeter" parameter in the GDM configuration must be set to the GTK+ Greeter "gdmlogin".</para>
<sect2 id="accessibilityconfig">
<title>Configuración de accesibilidad</title>
- <para>In order to enable Accessible Login, the system administrator must make some changes to the default login configuration by manually modifying three human-readable configuration files, stored in gdm.conf, AccessKeyMouseEvents and AccessDwellMouseEvents.</para>
+ <para>In order to enable Accessible Login, the system administrator must make some changes to the default login configuration by manually modifying three human-readable configuration files, stored in the GDM configuration, AccessKeyMouseEvents and AccessDwellMouseEvents.</para>
- <para>In order to allow users to change the color and contrast scheme of the login dialog, make sure the "AllowThemeChange" parameter in gdm.conf is set to "true".</para>
+ <para>In order to allow users to change the color and contrast scheme of the login dialog, make sure the "AllowThemeChange" parameter in the GDM configuration is set to "true".</para>
- <para>To restrict user changes to the visual appearance to a subset of available themes, the "GtkThemesToAllow" parameter in gdm.conf can be set to a list of acceptable themes separated by commas. For example:</para>
+ <para>To restrict user changes to the visual appearance to a subset of available themes, the "GtkThemesToAllow" parameter in the GDM configuration can be set to a list of acceptable themes separated by commas. For example:</para>
<screen>GtkThemesToAllow=HighContrast,HighContrastInverse</screen>
- <para>To enable the use of assistive technologies such as the Onscreen Keyboard, Screen Reader, or Magnifier, the "AddGtkModules" parameter in gdm.conf must be uncommented and set to "true". Also the "GtkModulesList" parameter must be uncommented and set as follows:</para>
+ <para>To enable the use of assistive technologies such as the Onscreen Keyboard, Screen Reader, or Magnifier, the "AddGtkModules" parameter in the GDM configuration must be uncommented and set to "true". Also the "GtkModulesList" parameter must be uncommented and set as follows:</para>
<screen>GtkModulesList=gail:atk-bridge:dwellmouselistener:keymouselistener</screen>
@@ -3092,7 +3102,7 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
</sect2>
<sect2 id="accessibilitysound">
<title>Accessibility Login Sound Configuration</title>
- <para>By default, gdm requires a media application such as "sox" to be present to play login sounds. GDM defaults the location of this application to <filename>/usr/bin/play</filename> (or <filename>/usr/bin/audioplay</filename> on Solaris. This can be changed via the SoundProgram configuration option in <filename>gdm.conf</filename>.</para>
+ <para>By default, gdm requires a media application such as "sox" to be present to play login sounds. GDM defaults the location of this application to <filename>/usr/bin/play</filename> (or <filename>/usr/bin/audioplay</filename> on Solaris. This can be changed via the SoundProgram GDM configuration option.</para>
</sect2>
</sect1>
@@ -3103,7 +3113,7 @@ ypadding="num" spacing="num" homogeneous="bool"&gt;
<para>GDM soporta Solaris Auditing si se ejecuta sobre Solaris 10 o superior.</para>
- <para>GDM supports a security feature which causes the Xserver to run as the user instead of as the root user. GDM must be using PAM for this feature to be enabled, which is the normal case for Solaris. This second feature has the side-effect of causing the Xserver to always restart between sessions, which disables the AlwaysRestartServer gdm.conf configuration option.</para>
+ <para>GDM supports a security feature which causes the Xserver to run as the user instead of as the root user. GDM must be using PAM for this feature to be enabled, which is the normal case for Solaris. This second feature has the side-effect of causing the Xserver to always restart between sessions, which disables the AlwaysRestartServer configuration option.</para>
<para>Solaris supports the <filename>/etc/default/login</filename> interface, which affects the <filename>DefaultPath</filename>, <filename>RootPath</filename>, <filename>PasswordRequired</filename>, and <filename>AllowRemoteRoot</filename> options as described in the Configuration section.</para>
diff --git a/gui/Makefile.am b/gui/Makefile.am
index bc9d2860..b2444b2f 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -6,8 +6,8 @@ DEFS = @DEFS@ \
-DSYSCONFDIR=\"@sysconfdir@\" \
-DDATADIR=\"@datadir@\" \
-DLIBDIR=\"@libdir@\" \
- -DGDM_CONFIG_FILE=\"@sysconfdir@/gdm/gdm.conf\" \
- -DGDM_FACTORY_CONFIG_FILE=\"@sysconfdir@/gdm/factory-gdm.conf\" \
+ -DGDM_FACTORY_CONFIG_FILE=\"$(GDM_CONFIGDIR)/factory-gdm.conf\" \
+ -DGDM_SYSCONFDIR_CONFIG_FILE=\"$(GDM_CONFIGDIR)/gdm.conf\" \
-DGDM_GLADE_DIR=\"@datadir@/gdm\"
INCLUDES = \
diff --git a/gui/gdmchooser.c b/gui/gdmchooser.c
index 6cd362bf..21c24933 100644
--- a/gui/gdmchooser.c
+++ b/gui/gdmchooser.c
@@ -58,8 +58,6 @@
#include "viciousui.h"
-static gchar *config_file;
-
static gboolean RUNNING_UNDER_GDM = FALSE;
enum {
@@ -1940,12 +1938,6 @@ main (int argc, char *argv[])
glade_init ();
- config_file = gdm_common_get_config_file ();
- if (config_file == NULL) {
- g_print (_("Could not access GDM configuration file.\n"));
- exit (EXIT_FAILURE);
- }
-
/* if broadcasting, then append BROADCAST to hosts */
if (gdm_config_get_bool (GDM_KEY_BROADCAST)) {
gchar *hosts = gdm_config_get_string (GDM_KEY_HOSTS);
diff --git a/gui/gdmconfig.c b/gui/gdmconfig.c
index 2adaeb40..bf4f4e64 100644
--- a/gui/gdmconfig.c
+++ b/gui/gdmconfig.c
@@ -36,6 +36,7 @@
static GHashTable *int_hash = NULL;
static GHashTable *bool_hash = NULL;
static GHashTable *string_hash = NULL;
+static gboolean gdm_never_cache = FALSE;
/*
* Hack to keep track if config functions should be printing error messages
@@ -51,6 +52,24 @@ gdm_openlog (const char *ident, int logopt, int facility)
}
/**
+ * gdm_config_never_cache
+ *
+ * Most programs want config data to be cached to avoid constantly
+ * grabbing the information over the wire and are happy calling
+ * gdm_update_config to update a key value. However, gdmsetup
+ * really does want the latest value each time it accesses a
+ * config option. To avoid needing to call update_config
+ * for each key to be retrieved, just calling this function will
+ * let the config system know to always get the value via the
+ * sockets connection.
+ */
+void
+gdm_config_never_cache (gboolean never_cache)
+{
+ gdm_never_cache = never_cache;
+}
+
+/**
* gdm_config_hash_lookup
*
* Accesses hash with key, stripping it so it doesn't contain
@@ -203,8 +222,8 @@ gdm_config_get_xservers (gboolean flexible)
while (*sec != NULL) {
GdmXserver *svr = g_new0 (GdmXserver, 1);
+ svr->id = gdm_config_get_xserver_details (*sec, "ID");
svr->name = gdm_config_get_xserver_details (*sec, "NAME");
- svr->id = g_strdup_printf ("server-%s", *sec);
svr->command = gdm_config_get_xserver_details (*sec, "COMMAND");
temp = gdm_config_get_xserver_details (*sec, "FLEXIBLE");
@@ -285,7 +304,7 @@ _gdm_config_get_string (gchar *key, gboolean reload, gboolean *changed, gboolean
g_free (result);
if (hashretval == NULL) {
- gchar** charval = g_new0 (gchar *, 1);
+ gchar **charval = g_new0 (gchar *, 1);
*charval = temp;
gdm_config_add_hash (string_hash, key, charval);
@@ -309,7 +328,10 @@ _gdm_config_get_string (gchar *key, gboolean reload, gboolean *changed, gboolean
gchar *
gdm_config_get_string (gchar *key)
{
- return _gdm_config_get_string (key, FALSE, NULL, TRUE);
+ if (gdm_never_cache == TRUE)
+ return _gdm_config_get_string (key, TRUE, NULL, TRUE);
+ else
+ return _gdm_config_get_string (key, FALSE, NULL, TRUE);
}
/**
@@ -359,7 +381,10 @@ _gdm_config_get_translated_string (gchar *key, gboolean reload, gboolean *change
gchar *
gdm_config_get_translated_string (gchar *key)
{
- return _gdm_config_get_translated_string (key, FALSE, NULL);
+ if (gdm_never_cache == TRUE)
+ return _gdm_config_get_translated_string (key, TRUE, NULL);
+ else
+ return _gdm_config_get_translated_string (key, FALSE, NULL);
}
/**
@@ -427,7 +452,10 @@ _gdm_config_get_int (gchar *key, gboolean reload, gboolean *changed)
gint
gdm_config_get_int (gchar *key)
{
- return _gdm_config_get_int (key, FALSE, NULL);
+ if (gdm_never_cache == TRUE)
+ return _gdm_config_get_int (key, TRUE, NULL);
+ else
+ return _gdm_config_get_int (key, FALSE, NULL);
}
/**
@@ -498,7 +526,10 @@ _gdm_config_get_bool (gchar *key, gboolean reload, gboolean *changed)
gboolean
gdm_config_get_bool (gchar *key)
{
- return _gdm_config_get_bool (key, FALSE, NULL);
+ if (gdm_never_cache == TRUE)
+ return _gdm_config_get_bool (key, TRUE, NULL);
+ else
+ return _gdm_config_get_bool (key, FALSE, NULL);
}
/**
diff --git a/gui/gdmconfig.h b/gui/gdmconfig.h
index 5c92da15..cac86ff0 100644
--- a/gui/gdmconfig.h
+++ b/gui/gdmconfig.h
@@ -30,6 +30,7 @@ void gdm_openlog (const char *ident,
int logopt,
int facility);
+void gdm_config_never_cache (gboolean never_cache);
gchar * gdm_config_get_string (gchar *key);
gchar * gdm_config_get_translated_string (gchar *key);
gint gdm_config_get_int (gchar *key);
diff --git a/gui/gdmflexiserver.c b/gui/gdmflexiserver.c
index 497efb79..7a38119b 100644
--- a/gui/gdmflexiserver.c
+++ b/gui/gdmflexiserver.c
@@ -530,7 +530,7 @@ check_for_users (void)
}
static void
-read_servers (gchar *config_file)
+read_servers (void)
{
GSList *li;
@@ -701,7 +701,6 @@ int
main (int argc, char *argv[])
{
GtkWidget *dialog;
- gchar *config_file;
char *command;
char *version;
char *ret;
@@ -733,12 +732,6 @@ main (int argc, char *argv[])
return 1;
}
- config_file = gdm_common_get_config_file ();
- if (config_file == NULL) {
- g_print (_("Could not access GDM configuration file.\n"));
- exit (0);
- }
-
if (send_command != NULL) {
if (authenticate)
auth_cookie = gdmcomm_get_auth_cookie ();
@@ -771,7 +764,6 @@ main (int argc, char *argv[])
if (ret != NULL) {
g_print ("%s\n", ret);
- g_free (config_file);
return 0;
} else {
dialog = ve_hig_dialog_new
@@ -786,7 +778,6 @@ main (int argc, char *argv[])
gtk_widget_show_all (dialog);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
- g_free (config_file);
return 1;
}
}
@@ -815,7 +806,6 @@ main (int argc, char *argv[])
gtk_widget_show_all (dialog);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
- g_free (config_file);
return 1;
}
command = g_strdup_printf (GDM_SUP_FLEXI_XNEST " %s %d %s %s",
@@ -842,11 +832,10 @@ main (int argc, char *argv[])
gtk_widget_show_all (dialog);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
- g_free (config_file);
return 1;
}
- read_servers (config_file);
+ read_servers ();
server = choose_server ();
if (server == NULL)
command = g_strdup (GDM_SUP_FLEXI_XSERVER);
@@ -856,8 +845,6 @@ main (int argc, char *argv[])
version = "2.2.4.0";
}
- g_free (config_file);
-
ret = gdmcomm_call_gdm (command, auth_cookie, version, 5);
g_free (command);
diff --git a/gui/gdmsetup.c b/gui/gdmsetup.c
index eb6d0b11..76380a9a 100644
--- a/gui/gdmsetup.c
+++ b/gui/gdmsetup.c
@@ -24,6 +24,7 @@
#include <unistd.h>
#include <signal.h>
#include <popt.h>
+#include <ctype.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -53,37 +54,39 @@
#include "gdmuser.h"
#include "gdmconfig.h"
+static char *GdmSoundProgram = NULL;
+gchar *GdmExclude = NULL;
+gchar *GdmInclude = NULL;
+gint GdmMinimalUID = 100;
+gint GdmIconMaxHeight;
+gint GdmIconMaxWidth;
+gboolean GdmIncludeAll;
+gboolean GdmAllowRoot;
+gboolean GdmAllowRemoteRoot;
+gboolean GdmUserChangesUnsaved;
+
/* set the DOING_GDM_DEVELOPMENT env variable if you want to
* search for the glade file in the current dir and not the system
* install dir, better then something you have to change
- * in the source and recompile */
-static gboolean DOING_GDM_DEVELOPMENT = FALSE;
-
-static gboolean RUNNING_UNDER_GDM = FALSE;
-
-gint GdmIconMaxHeight;
-gint GdmIconMaxWidth;
-gint GdmMinimalUID = 100;
-gchar *GdmExclude = NULL;
-gchar *GdmInclude = NULL;
-gboolean GdmIncludeAll;
-gboolean GdmAllowRoot;
-gboolean GdmAllowRemoteRoot;
-gboolean GdmUserChangesUnsaved;
-static char *GdmSoundProgram = NULL;
+ * in the source and recompile
+ */
-static gboolean gdm_running = FALSE;
-static GladeXML *xml;
-static GladeXML *xml_add_users;
-static GladeXML *xml_add_xservers;
-static GladeXML *xml_xdmcp;
-static GladeXML *xml_xservers;
+static gboolean DOING_GDM_DEVELOPMENT = FALSE;
+static gboolean RUNNING_UNDER_GDM = FALSE;
+static gboolean gdm_running = FALSE;
+static GladeXML *xml;
+static GladeXML *xml_add_users;
+static GladeXML *xml_add_xservers;
+static GladeXML *xml_xdmcp;
+static GladeXML *xml_xservers;
static GtkWidget *setup_notebook;
-static GList *timeout_widgets = NULL;
-static gchar *last_theme_installed = NULL;
-static char *selected_themes = NULL;
-static char *selected_theme = NULL;
-static gchar *config_file;
+static GList *timeout_widgets = NULL;
+static gchar *last_theme_installed = NULL;
+static char *selected_themes = NULL;
+static char *selected_theme = NULL;
+static gchar *config_file;
+static gchar *custom_config_file;
+static GSList *xservers;
enum {
XSERVER_COLUMN_VT,
@@ -330,22 +333,77 @@ update_key (const char *notify_key)
}
}
+void
+gdm_setup_config_set_bool (const char *key, const char *notify_key, gboolean val)
+{
+ VeConfig *cfg = ve_config_get (config_file);
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ gboolean defaultval = ve_config_get_bool (cfg, key);
+
+ if (val == defaultval) {
+ ve_config_delete_key (custom_cfg, key);
+ } else {
+ ve_config_set_bool (custom_cfg, key, val);
+ }
+
+ ve_config_save (custom_cfg, FALSE /* force */);
+
+ if (notify_key)
+ update_key (notify_key);
+}
+
+void
+gdm_setup_config_set_int (const char *key, const char *notify_key, int val)
+{
+ VeConfig *cfg = ve_config_get (config_file);
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ int defaultval = ve_config_get_int (cfg, key);
+
+ if (val == defaultval) {
+ ve_config_delete_key (custom_cfg, key);
+ } else {
+ ve_config_set_int (custom_cfg, key, val);
+ }
+
+ ve_config_save (custom_cfg, FALSE /* force */);
+
+ if (notify_key)
+ update_key (notify_key);
+}
+
+void
+gdm_setup_config_set_string (const char *key, const char *notify_key, gchar *val)
+{
+ VeConfig *cfg = ve_config_get (config_file);
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ gchar *defaultval = ve_config_get_string (cfg, key);
+
+ if (defaultval != NULL &&
+ strcmp (ve_sure_string (val), ve_sure_string (defaultval)) == 0) {
+ ve_config_delete_key (custom_cfg, key);
+ } else {
+ ve_config_set_string (custom_cfg, key, val);
+ }
+
+ if (defaultval)
+ g_free (defaultval);
+
+ ve_config_save (custom_cfg, FALSE /* force */);
+
+ if (notify_key)
+ update_key (notify_key);
+}
+
static gboolean
toggle_timeout (GtkWidget *toggle)
{
- const char *key = g_object_get_data (G_OBJECT (toggle), "key");
+ const char *key = g_object_get_data (G_OBJECT (toggle), "key");
const char *notify_key = g_object_get_data (G_OBJECT (toggle),
"notify_key");
gboolean val = gdm_config_get_bool ((gchar *)key);
if ( ! ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
- VeConfig *cfg = ve_config_get (config_file);
-
- ve_config_set_bool (cfg, key,
- GTK_TOGGLE_BUTTON (toggle)->active);
- ve_config_save (cfg, FALSE /* force */);
-
- update_key (notify_key);
+ gdm_setup_config_set_bool (key, notify_key, GTK_TOGGLE_BUTTON (toggle)->active);
}
return FALSE;
@@ -355,30 +413,24 @@ static gboolean
logo_toggle_timeout (GtkWidget *toggle)
{
const char *key = g_object_get_data (G_OBJECT (toggle), "key");
- VeConfig *cfg = ve_config_get (config_file);
GtkWidget *chooserbutton;
gchar *filename;
-
chooserbutton = glade_helper_get (xml, "local_logo_image_chooserbutton",
GTK_TYPE_FILE_CHOOSER_BUTTON);
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooserbutton));
if ((GTK_TOGGLE_BUTTON (toggle)->active) == FALSE) {
- ve_config_set_string (cfg, GDM_KEY_CHOOSER_BUTTON_LOGO, filename);
- ve_config_set_string (cfg, key, "");
- ve_config_save (cfg, FALSE);
-
- update_key (key);
+ gdm_setup_config_set_string (GDM_KEY_CHOOSER_BUTTON_LOGO,
+ GDM_KEY_CHOOSER_BUTTON_LOGO, filename);
+ gdm_setup_config_set_string (key, key, "");
update_greeters ();
}
else if (filename != NULL) {
- ve_config_set_string (cfg, GDM_KEY_CHOOSER_BUTTON_LOGO, filename);
- ve_config_set_string (cfg, key, filename);
- ve_config_save (cfg, FALSE);
-
- update_key (key);
+ gdm_setup_config_set_string (GDM_KEY_CHOOSER_BUTTON_LOGO,
+ GDM_KEY_CHOOSER_BUTTON_LOGO, filename);
+ gdm_setup_config_set_string (key, key, filename);
update_greeters ();
}
g_free (filename);
@@ -435,64 +487,138 @@ intspin_timeout (GtkWidget *spin)
val = gdm_config_get_int ((gchar *)key);
- if (val != new_val) {
- VeConfig *cfg = ve_config_get (config_file);
+ if (val != new_val)
+ gdm_setup_config_set_int (key, key, new_val);
- ve_config_set_int (cfg, key, new_val);
+ return FALSE;
+}
- ve_config_save (cfg, FALSE /* force */);
+static gint
+display_sort_func (gpointer d1, gpointer d2)
+{
+ return (strcmp (ve_sure_string ((gchar *)d1), ve_sure_string ((gchar *)d2)));
+}
- update_key (notify_key);
- }
+static GSList *displays = NULL;
+static GSList *displays_inactive = NULL;
+static GHashTable *dispval_hash = NULL;
- return FALSE;
+static void
+gdm_load_displays (VeConfig *cfg, GList *list )
+{
+ GList *li;
+ GSList *li2;
+
+ for (li = list; li != NULL; li = li->next) {
+ const gchar *key = li->data;
+
+ if (isdigit (*key)) {
+ gchar *fullkey;
+ gchar *dispval;
+ int keynum = atoi (key);
+ gboolean skip_entry = FALSE;
+
+ fullkey = g_strdup_printf ("%s/%s", GDM_KEY_SECTION_SERVERS, key);
+ dispval = ve_config_get_string (cfg, fullkey);
+ g_free (fullkey);
+
+ /* Do not add if already in the list */
+ for (li2 = displays; li2 != NULL; li2 = li2->next) {
+ gchar *disp = li2->data;
+ if (atoi (disp) == keynum) {
+ skip_entry = TRUE;
+ break;
+ }
+ }
+
+ /* Do not add if this display was marked as inactive already */
+ for (li2 = displays_inactive; li2 != NULL; li2 = li2->next) {
+ gchar *disp = li2->data;
+ if (atoi (disp) == keynum) {
+ skip_entry = TRUE;
+ break;
+ }
+ }
+
+ if (skip_entry == TRUE) {
+ g_free (dispval);
+ continue;
+ }
+
+ if (g_ascii_strcasecmp (ve_sure_string (dispval), "inactive") == 0) {
+ displays_inactive = g_slist_append (displays_inactive, g_strdup (key));
+ } else {
+ if (dispval_hash == NULL)
+ dispval_hash = g_hash_table_new (g_str_hash, g_str_equal);
+
+ displays = g_slist_insert_sorted (displays, g_strdup (key), (GCompareFunc) display_sort_func);
+ g_hash_table_insert (dispval_hash, g_strdup (key), g_strdup (dispval));
+ }
+
+ g_free (dispval);
+ }
+ }
}
static void
-xservers_get_servers (GtkListStore *store)
+xservers_get_displays (GtkListStore *store)
{
- /* Find server definitions */
- VeConfig *cfg = ve_config_get (config_file);
- GList *list, *li;
- gchar *server, *options, *cpy;
-
- /* Fill list with all the active servers */
- list = ve_config_get_keys (cfg, GDM_KEY_SECTION_SERVERS);
+ /* Find server definitions */
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ VeConfig *cfg = ve_config_get (config_file);
+ GList *list;
+ GSList *li;
+ gchar *server, *options, *cpy;
- for (li = list; li != NULL; li = li->next) {
- GtkTreeIter iter;
- char *key = li->data;
- int vt = atoi (key);
- key = g_strconcat (GDM_KEY_SECTION_SERVERS, "/", key, NULL);
- cpy = ve_config_get_string (cfg, key);
- g_free (key);
- server = ve_first_word (cpy);
- options = ve_rest (cpy);
+ /* Fill list with all the active displays */
+ if (custom_cfg) {
+ list = ve_config_get_keys (custom_cfg, GDM_KEY_SECTION_SERVERS);
+ gdm_load_displays (custom_cfg, list);
+ ve_config_free_list_of_strings (list);
+ }
+ list = ve_config_get_keys (cfg, GDM_KEY_SECTION_SERVERS);
+ gdm_load_displays (cfg, list);
+ ve_config_free_list_of_strings (list);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- XSERVER_COLUMN_VT, vt,
- XSERVER_COLUMN_SERVER, server,
- XSERVER_COLUMN_OPTIONS, options,
- -1);
- g_free(server);
- }
-}
+ for (li = displays; li != NULL; li = li->next) {
+ GtkTreeIter iter;
+ gchar *key = li->data;
+ int vt = atoi (key);
+ server = ve_first_word (g_hash_table_lookup (dispval_hash, key));
+ options = ve_rest (g_hash_table_lookup (dispval_hash, key));
-static GSList *
-xservers_get_server_definitions()
-{
- return gdm_config_get_xservers (FALSE);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ XSERVER_COLUMN_VT, vt,
+ XSERVER_COLUMN_SERVER, server,
+ XSERVER_COLUMN_OPTIONS, options,
+ -1);
+ g_free(server);
+ }
+ for (li = displays; li != NULL; li = li->next) {
+ gchar *disp = li->data;
+ g_free (disp);
+ }
+ g_slist_free (displays);
+ displays = NULL;
+ for (li = displays_inactive; li != NULL; li = li->next) {
+ gchar *disp = li->data;
+ g_free (disp);
+ }
+ g_slist_free (displays_inactive);
+ displays_inactive = NULL;
+ if (dispval_hash) {
+ g_hash_table_destroy (dispval_hash);
+ dispval_hash = NULL;
+ }
}
static void
-xserver_update_delete_sensitivity()
+xserver_update_delete_sensitivity ()
{
-
GtkWidget *modify_combobox, *delete_button;
GtkListStore *store;
GtkTreeIter iter;
- GSList *xservers;
GdmXserver *xserver;
gchar *text;
gchar *selected;
@@ -511,22 +637,21 @@ xserver_update_delete_sensitivity()
G_TYPE_STRING /* options */);
/* Get list of servers and determine which one was selected */
- xservers = xservers_get_server_definitions ();
- xservers_get_servers (store);
+ xservers_get_displays (store);
i = gtk_combo_box_get_active (GTK_COMBO_BOX (modify_combobox));
if (i < 0) {
gtk_widget_set_sensitive(delete_button, FALSE);
} else {
/* Get the xserver selected */
- xserver = g_slist_nth_data(xservers, i);
+ xserver = g_slist_nth_data (xservers, i);
/* Sensitivity of delete_button */
- if (g_slist_length(xservers) <= 1) {
- /* Can't delete the laster server */
- gtk_widget_set_sensitive(delete_button, FALSE);
+ if (g_slist_length (xservers) <= 1) {
+ /* Can't delete the last server */
+ gtk_widget_set_sensitive (delete_button, FALSE);
} else {
- gtk_widget_set_sensitive(delete_button, TRUE);
+ gtk_widget_set_sensitive (delete_button, TRUE);
valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store),
&iter);
selected = gtk_combo_box_get_active_text (
@@ -536,7 +661,7 @@ xserver_update_delete_sensitivity()
while (valid) {
gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
XSERVER_COLUMN_SERVER, &text, -1);
- if (strcmp (text, selected) == 0) {
+ if (strcmp (ve_sure_string (text), ve_sure_string (selected)) == 0) {
gtk_widget_set_sensitive(delete_button, FALSE);
break;
}
@@ -557,7 +682,6 @@ void init_servers_combobox (int index)
GtkWidget *handled_checkbutton;
GtkWidget *flexible_checkbutton;
GtkListStore *store;
- GSList *xservers;
GdmXserver *xserver;
mod_combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
@@ -578,10 +702,8 @@ void init_servers_combobox (int index)
G_TYPE_INT /* virtual terminal */,
G_TYPE_STRING /* server type */,
G_TYPE_STRING /* options */);
- xservers_get_servers (store);
+ xservers_get_displays (store);
- /* Get list of servers and determine which is selected */
- xservers = xservers_get_server_definitions ();
xserver = g_slist_nth_data (xservers, index);
gtk_combo_box_set_active (GTK_COMBO_BOX (mod_combobox), index);
@@ -685,7 +807,7 @@ refresh_remote_tab (void)
gtk_combo_box_remove_text (GTK_COMBO_BOX (remote_greeter), REMOTE_PLAIN_WITH_FACE);
gtk_combo_box_remove_text (GTK_COMBO_BOX (remote_greeter), REMOTE_PLAIN);
- local_style = gtk_combo_box_get_active (GTK_COMBO_BOX (local_greeter));
+ local_style = gtk_combo_box_get_active (GTK_COMBO_BOX (local_greeter));
remote_style = gdm_config_get_string (GDM_KEY_REMOTE_GREETER);
if (gdm_config_get_bool (GDM_KEY_XDMCP) == FALSE) {
@@ -754,7 +876,45 @@ refresh_remote_tab (void)
gtk_widget_show (welcome_message_vbox);
gtk_widget_show (configure_xdmcp_vbox);
}
- g_free (remote_style);
+}
+
+/*
+ * We probably should check the server definition in the gdm.conf defaults file
+ * and just erase the section if the values are the same, like we do for the
+ * displays section and the normal configuration sections.
+ */
+static void
+update_xserver (gchar *section, GdmXserver *svr)
+{
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ gchar *real_section = g_strdup_printf ("%s%s",
+ GDM_KEY_SERVER_PREFIX, section);
+ gchar *key;
+
+ key = g_strconcat (real_section, "/" GDM_KEY_SERVER_NAME, NULL);
+ ve_config_set_string (custom_cfg, key, svr->name);
+ g_free (key);
+
+ key = g_strconcat (real_section, "/" GDM_KEY_SERVER_COMMAND, NULL);
+ ve_config_set_string (custom_cfg, key, svr->command);
+ g_free (key);
+
+ key = g_strconcat (real_section, "/", GDM_KEY_SERVER_CHOOSER, NULL);
+ ve_config_set_bool (custom_cfg, key, svr->chooser);
+ g_free (key);
+
+ key = g_strconcat (real_section, "/" GDM_KEY_SERVER_HANDLED, NULL);
+ ve_config_set_bool (custom_cfg, key, svr->handled);
+ g_free (key);
+
+ key = g_strconcat (real_section, "/" GDM_KEY_SERVER_FLEXIBLE, NULL);
+ ve_config_set_bool (custom_cfg, key, svr->flexible);
+ g_free (key);
+
+ g_free (real_section);
+ ve_config_save (custom_cfg, FALSE);
+
+ update_key ("xservers/PARAMETERS");
}
static gboolean
@@ -762,10 +922,9 @@ combobox_timeout (GtkWidget *combo_box)
{
const char *key = g_object_get_data (G_OBJECT (combo_box), "key");
int selected = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box));
- VeConfig *cfg = ve_config_get (config_file);
/* Local Greeter Comboboxes */
- if (strcmp (key, GDM_KEY_GREETER) == 0) {
+ if (strcmp (ve_sure_string (key), GDM_KEY_GREETER) == 0) {
gchar *old_key_val;
gchar *new_key_val;
@@ -790,71 +949,63 @@ combobox_timeout (GtkWidget *combo_box)
if (new_key_val &&
strcmp (ve_sure_string (old_key_val), ve_sure_string (new_key_val)) != 0) {
- ve_config_set_string (cfg, key, new_key_val);
- ve_config_set_bool (cfg, GDM_KEY_BROWSER, browser_val);
- ve_config_save (cfg, FALSE);
- update_key (GDM_KEY_BROWSER);
- update_key (key);
+ gdm_setup_config_set_string (key, key, new_key_val);
+ gdm_setup_config_set_bool (GDM_KEY_BROWSER, GDM_KEY_BROWSER, browser_val);
update_greeters ();
}
else {
- ve_config_set_bool (cfg, GDM_KEY_BROWSER, browser_val);
- ve_config_save (cfg, FALSE);
- update_key (GDM_KEY_BROWSER);
+ gdm_setup_config_set_bool (GDM_KEY_BROWSER, GDM_KEY_BROWSER, browser_val);
update_greeters ();
}
refresh_remote_tab ();
- g_free (old_key_val);
g_free (new_key_val);
}
/* Remote Greeter Comboboxes */
- else if (strcmp (key, GDM_KEY_REMOTE_GREETER) == 0) {
+ else if (strcmp (ve_sure_string (key), GDM_KEY_REMOTE_GREETER) == 0) {
if (selected == REMOTE_DISABLED) {
- ve_config_set_bool (cfg, GDM_KEY_XDMCP, FALSE);
- ve_config_save (cfg, FALSE);
- update_key (key);
+ gdm_setup_config_set_bool (GDM_KEY_XDMCP, GDM_KEY_XDMCP, FALSE);
update_greeters ();
return FALSE;
}
- else {
- gchar *new_key_val = NULL;
+ else {
+ gchar *new_key_val = NULL;
+ gboolean free_new_val = TRUE;
if (selected == REMOTE_SAME_AS_LOCAL) {
new_key_val = gdm_config_get_string (GDM_KEY_GREETER);
+ free_new_val = FALSE;
}
else if (selected == REMOTE_PLAIN_WITH_FACE) {
new_key_val = g_strdup (EXPANDED_LIBEXECDIR "/gdmlogin");
- ve_config_set_bool (cfg, GDM_KEY_BROWSER, TRUE);
+ gdm_setup_config_set_bool (GDM_KEY_BROWSER, GDM_KEY_BROWSER, TRUE);
}
else {
gchar *selected_text;
selected_text = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box));
- if (strcmp (selected_text, _("Themed")) == 0) {
+ if (strcmp (ve_sure_string (selected_text), _("Themed")) == 0) {
new_key_val = g_strdup (EXPANDED_LIBEXECDIR "/gdmgreeter");
}
else {
new_key_val = g_strdup (EXPANDED_LIBEXECDIR "/gdmlogin");
- ve_config_set_bool (cfg, GDM_KEY_BROWSER, FALSE);
+ gdm_setup_config_set_bool (GDM_KEY_BROWSER, GDM_KEY_BROWSER, FALSE);
}
g_free (selected_text);
}
- ve_config_set_string (cfg, key, new_key_val);
- ve_config_set_bool (cfg, GDM_KEY_XDMCP, TRUE);
- ve_config_save (cfg, FALSE);
- update_key (key);
-
- g_free( new_key_val);
+ gdm_setup_config_set_string (key, key, new_key_val);
+ gdm_setup_config_set_bool (GDM_KEY_XDMCP, GDM_KEY_XDMCP, TRUE);
+ if (free_new_val)
+ g_free (new_key_val);
return FALSE;
}
/* Automatic Login Combobox */
- } else if (strcmp (key, GDM_KEY_AUTOMATIC_LOGIN) == 0 ||
- strcmp (key, GDM_KEY_TIMED_LOGIN) == 0) {
+ } else if (strcmp (ve_sure_string (key), GDM_KEY_AUTOMATIC_LOGIN) == 0 ||
+ strcmp (ve_sure_string (key), GDM_KEY_TIMED_LOGIN) == 0) {
GtkTreeIter iter;
char *new_val = NULL;
@@ -871,13 +1022,11 @@ combobox_timeout (GtkWidget *combo_box)
if (new_val &&
strcmp (ve_sure_string (val), ve_sure_string (new_val)) != 0) {
- ve_config_set_string (cfg, key, new_val);
- ve_config_save (cfg, FALSE /* force */);
- update_key (key);
+ gdm_setup_config_set_string (key, key, new_val);
}
g_free (new_val);
}
- else if (strcmp (key, GDM_KEY_GRAPHICAL_THEME_RAND) == 0 ) {
+ else if (strcmp (ve_sure_string (key), GDM_KEY_GRAPHICAL_THEME_RAND) == 0 ) {
/* Theme Combobox */
gboolean new_val;
@@ -886,48 +1035,47 @@ combobox_timeout (GtkWidget *combo_box)
old_val = gdm_config_get_bool ((gchar *)key);
/* Choose to display radio or checkbox toggle column */
- if (selected == RANDOM_THEME) {
+ if (selected == RANDOM_THEME)
new_val = TRUE;
- } else { /* Default to one theme */
+ else /* Default to one theme */
new_val = FALSE;
- }
/* Update config */
- if (new_val != old_val) {
- ve_config_set_bool (cfg, key, new_val);
- ve_config_save (cfg, FALSE /* force */);
- update_key (key);
- }
+ if (new_val != old_val)
+ gdm_setup_config_set_bool (key, key, new_val);
}
/* Style combobox */
- else if (strcmp (key, GDM_KEY_SERVER_CHOOSER) == 0) {
-
- VeConfig *cfg = ve_config_get (config_file);
+ else if (strcmp (ve_sure_string (key), GDM_KEY_SERVER_CHOOSER) == 0) {
GtkWidget *mod_combobox;
GtkWidget *style_combobox;
- gboolean val_new;
- gboolean val_old;
+ GSList *li;
gchar *section;
+ gboolean val_old, val_new;
- mod_combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
- GTK_TYPE_COMBO_BOX);
+ mod_combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
+ GTK_TYPE_COMBO_BOX);
style_combobox = glade_helper_get (xml_xservers, "xserver_style_combobox",
GTK_TYPE_COMBO_BOX);
/* Get xserver section to update */
section = gtk_combo_box_get_active_text (GTK_COMBO_BOX (mod_combobox));
- section = g_strconcat(GDM_KEY_SERVER_PREFIX, section, "/", NULL);
- section = g_strconcat(section, GDM_KEY_SERVER_CHOOSER, NULL);
- val_old = ve_config_get_bool (cfg, section);
- val_new = (gtk_combo_box_get_active (GTK_COMBO_BOX (style_combobox)) != 0);
+ for (li = xservers; li != NULL; li = li->next) {
+ GdmXserver *svr = li->data;
+ if (strcmp (ve_sure_string (svr->id), ve_sure_string (section)) == 0) {
+
+ val_old = svr->chooser;
+ val_new = (gtk_combo_box_get_active (GTK_COMBO_BOX (style_combobox)) != 0);
- /* Update this servers configuration */
- if (! ve_bool_equal (val_old, val_new)) {
- ve_config_set_bool (cfg, section, val_new);
- ve_config_save (cfg, FALSE /* force */);
+ /* Update this servers configuration */
+ if (! ve_bool_equal (val_old, val_new)) {
+ svr->chooser = val_new;
+ update_xserver (section, svr);
+ }
+ break;
+ }
}
- g_free(section);
+ g_free (section);
}
return FALSE;
}
@@ -977,7 +1125,7 @@ combobox_changed (GtkWidget *combobox)
{
const char *key = g_object_get_data (G_OBJECT (combobox), "key");
- if (strcmp (key, GDM_KEY_GREETER) == 0) {
+ if (strcmp (ve_sure_string (key), GDM_KEY_GREETER) == 0) {
GtkWidget *local_plain_vbox;
GtkWidget *local_themed_vbox;
@@ -1003,7 +1151,7 @@ combobox_changed (GtkWidget *combobox)
gtk_widget_hide (local_themed_vbox);
}
}
- else if (strcmp (key, GDM_KEY_REMOTE_GREETER) == 0) {
+ else if (strcmp (ve_sure_string (key), GDM_KEY_REMOTE_GREETER) == 0) {
GtkWidget *remote_plain_vbox;
GtkWidget *remote_themed_vbox;
@@ -1071,7 +1219,6 @@ combobox_changed (GtkWidget *combobox)
gtk_widget_hide (remote_themed_vbox);
gtk_widget_show (remote_plain_vbox);
}
- g_free (greeter_style);
}
else if (selected == REMOTE_PLAIN_WITH_FACE) {
update_remote_sensitivity (TRUE);
@@ -1084,7 +1231,7 @@ combobox_changed (GtkWidget *combobox)
selected_text = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combobox));
update_remote_sensitivity (TRUE);
- if (strcmp (selected_text, _("Themed")) == 0) {
+ if (strcmp (ve_sure_string (selected_text), _("Themed")) == 0) {
gtk_widget_hide (remote_plain_vbox);
gtk_widget_show (remote_themed_vbox);
}
@@ -1097,7 +1244,7 @@ combobox_changed (GtkWidget *combobox)
}
}
- else if (strcmp (key, GDM_KEY_GRAPHICAL_THEME_RAND) == 0) {
+ else if (strcmp (ve_sure_string (key), GDM_KEY_GRAPHICAL_THEME_RAND) == 0) {
GtkWidget *theme_list;
GtkWidget *theme_list_remote;
@@ -1203,7 +1350,7 @@ combobox_changed (GtkWidget *combobox)
}
}
}
- else if (strcmp (key, GDM_KEY_SERVER_PREFIX) == 0 ) {
+ else if (strcmp (ve_sure_string (key), GDM_KEY_SERVER_PREFIX) == 0 ) {
init_servers_combobox (gtk_combo_box_get_active (GTK_COMBO_BOX (combobox)));
}
run_timeout (combobox, 500, combobox_timeout);
@@ -1279,7 +1426,7 @@ setup_notify_toggle (const char *name,
"notify_key", g_strdup (notify_key),
(GDestroyNotify) g_free);
- if (strcmp (name, "sysmenu") == 0) {
+ if (strcmp (ve_sure_string (name), "sysmenu") == 0) {
GtkWidget *config_available;
GtkWidget *chooser_button;
@@ -1299,7 +1446,7 @@ setup_notify_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (toggle_toggled_sensitivity_positive), chooser_button);
}
- else if (strcmp ("autologin", name) == 0) {
+ else if (strcmp ("autologin", ve_sure_string (name)) == 0) {
GtkWidget *autologin_label;
GtkWidget *autologin_combo;
@@ -1321,7 +1468,7 @@ setup_notify_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (toggle_toggled), toggle);
}
- else if (strcmp ("timedlogin", name) == 0) {
+ else if (strcmp ("timedlogin", ve_sure_string (name)) == 0) {
GtkWidget *timedlogin_label;
GtkWidget *timedlogin_combo;
@@ -1498,7 +1645,7 @@ setup_user_combobox_list (const char *name, const char *key)
cnt=0;
for (li = users_string; li != NULL; li = li->next) {
- if (strcmp (li->data, selected_user) == 0)
+ if (strcmp (li->data, ve_sure_string (selected_user)) == 0)
selected=cnt;
gtk_list_store_append (combobox_store, &iter);
gtk_list_store_set(combobox_store, &iter, USERLIST_NAME, li->data, -1);
@@ -1515,7 +1662,6 @@ setup_user_combobox_list (const char *name, const char *key)
g_list_free (users);
g_list_foreach (users_string, (GFunc)g_free, NULL);
g_list_free (users_string);
- g_free (selected_user);
}
static void
@@ -1602,9 +1748,9 @@ setup_include_exclude (GtkWidget *treeview, const char *key)
gtk_tree_view_set_model (GTK_TREE_VIEW(treeview),
(GTK_TREE_MODEL (face_store)));
- if (strcmp (key, GDM_KEY_INCLUDE) == 0)
+ if (strcmp (ve_sure_string (key), GDM_KEY_INCLUDE) == 0)
list = g_strsplit (GdmInclude, ",", 0);
- else if (strcmp (key, GDM_KEY_EXCLUDE) == 0)
+ else if (strcmp (ve_sure_string (key), GDM_KEY_EXCLUDE) == 0)
list = g_strsplit (GdmExclude, ",", 0);
else
list = NULL;
@@ -1668,7 +1814,7 @@ face_add (FaceData *fd)
while (valid) {
gtk_tree_model_get (fd->fc->include_model, &iter, USERLIST_NAME,
&model_text, -1);
- if (strcmp (text, model_text) == 0) {
+ if (strcmp (ve_sure_string (text), ve_sure_string (model_text)) == 0) {
GtkWidget *setup_dialog;
GtkWidget *dialog;
gchar *str;
@@ -1698,7 +1844,7 @@ face_add (FaceData *fd)
while (valid) {
gtk_tree_model_get (fd->fc->exclude_model, &iter, USERLIST_NAME,
&model_text, -1);
- if (strcmp (text, model_text) == 0) {
+ if (strcmp (ve_sure_string (text), ve_sure_string (model_text)) == 0) {
GtkWidget *setup_dialog;
GtkWidget *dialog;
gchar *str;
@@ -1835,7 +1981,6 @@ browser_apply (GtkWidget *button, gpointer data)
gboolean valid;
gboolean update_greet = FALSE;
char *sep = "";
- VeConfig *cfg = ve_config_get (config_file);
valid = gtk_tree_model_get_iter_first (fc->include_model, &iter);
while (valid) {
@@ -1853,15 +1998,11 @@ browser_apply (GtkWidget *button, gpointer data)
if (strcmp (ve_sure_string (val),
ve_sure_string (userlist->str)) != 0) {
- ve_config_set_string (cfg, GDM_KEY_INCLUDE, userlist->str);
- ve_config_save (cfg, FALSE /* force */);
-
- update_key (GDM_KEY_INCLUDE);
+ gdm_setup_config_set_string (GDM_KEY_INCLUDE, GDM_KEY_INCLUDE, userlist->str);
update_greet = TRUE;
}
g_string_free (userlist, TRUE);
- g_free (val);
userlist = g_string_new (NULL);
sep = "";
@@ -1881,12 +2022,7 @@ browser_apply (GtkWidget *button, gpointer data)
if (strcmp (ve_sure_string (val),
ve_sure_string (userlist->str)) != 0) {
- VeConfig *cfg = ve_config_get (config_file);
-
- ve_config_set_string (cfg, GDM_KEY_EXCLUDE, userlist->str);
- ve_config_save (cfg, FALSE /* force */);
-
- update_key (GDM_KEY_EXCLUDE);
+ gdm_setup_config_set_string (GDM_KEY_EXCLUDE, GDM_KEY_EXCLUDE, userlist->str);
update_greet = TRUE;
}
@@ -1904,7 +2040,6 @@ browser_apply (GtkWidget *button, gpointer data)
GdmUserChangesUnsaved = FALSE;
g_string_free (userlist, TRUE);
- g_free (val);
}
@@ -2090,9 +2225,8 @@ greeter_toggle_timeout (GtkWidget *toggle)
gboolean val = gdm_config_get_bool ((gchar *)key);
if ( ! ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
- VeConfig *cfg = ve_config_get (config_file);
- if (strcmp (key, GDM_KEY_BACKGROUND_SCALE_TO_FIT) == 0) {
+ if (strcmp (ve_sure_string (key), GDM_KEY_BACKGROUND_SCALE_TO_FIT) == 0) {
if (gtk_notebook_get_current_page (GTK_NOTEBOOK (setup_notebook)) == LOCAL_TAB) {
@@ -2114,12 +2248,7 @@ greeter_toggle_timeout (GtkWidget *toggle)
GTK_TOGGLE_BUTTON (toggle)->active);
}
}
- ve_config_set_bool (cfg, key,
- GTK_TOGGLE_BUTTON (toggle)->active);
-
- ve_config_save (cfg, FALSE /* force */);
-
- update_key (key);
+ gdm_setup_config_set_bool (key, key, GTK_TOGGLE_BUTTON (toggle)->active);
update_greeters ();
}
@@ -2152,7 +2281,6 @@ sensitive_entry_toggled (GtkWidget *toggle, gpointer data)
static gboolean
local_background_type_toggle_timeout (GtkWidget *toggle)
{
- VeConfig *cfg = ve_config_get (config_file);
GtkWidget *color_radiobutton;
GtkWidget *image_radiobutton;
GtkWidget *color_remote_radiobutton;
@@ -2188,25 +2316,22 @@ local_background_type_toggle_timeout (GtkWidget *toggle)
if (image_value == TRUE && color_value == TRUE) {
/* Image & color */
- ve_config_set_int (cfg, GDM_KEY_BACKGROUND_TYPE, 1);
+ gdm_setup_config_set_int (GDM_KEY_BACKGROUND_TYPE, GDM_KEY_BACKGROUND_TYPE, 1);
}
else if (image_value == FALSE && color_value == TRUE) {
/* Color only */
- ve_config_set_int (cfg, GDM_KEY_BACKGROUND_TYPE, 2);
+ gdm_setup_config_set_int (GDM_KEY_BACKGROUND_TYPE, GDM_KEY_BACKGROUND_TYPE, 2);
}
else if (image_value == TRUE && color_value == FALSE) {
/* Image only*/
- ve_config_set_int (cfg, GDM_KEY_BACKGROUND_TYPE, 3);
+ gdm_setup_config_set_int (GDM_KEY_BACKGROUND_TYPE, GDM_KEY_BACKGROUND_TYPE, 3);
}
else {
/* No Background */
- ve_config_set_int (cfg, GDM_KEY_BACKGROUND_TYPE, 0);
+ gdm_setup_config_set_int (GDM_KEY_BACKGROUND_TYPE, GDM_KEY_BACKGROUND_TYPE, 0);
}
- ve_config_save (cfg, FALSE);
- update_key (GDM_KEY_BACKGROUND_TYPE);
update_greeters ();
-
return FALSE;
}
@@ -2243,7 +2368,7 @@ setup_greeter_toggle (const char *name,
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), val);
- if (strcmp ("sg_defaultwelcome", name) == 0) {
+ if (strcmp ("sg_defaultwelcome", ve_sure_string (name)) == 0) {
GtkWidget *welcome = glade_helper_get (xml,
"welcome", GTK_TYPE_ENTRY);
GtkWidget *custom = glade_helper_get (xml, "sg_customwelcome",
@@ -2255,7 +2380,7 @@ setup_greeter_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (sensitive_entry_toggled), welcome);
- } else if (strcmp ("sg_defaultwelcomeremote", name) == 0) {
+ } else if (strcmp ("sg_defaultwelcomeremote", ve_sure_string (name)) == 0) {
GtkWidget *welcomeremote = glade_helper_get (xml,
"welcomeremote", GTK_TYPE_ENTRY);
GtkWidget *customremote = glade_helper_get (xml, "sg_customwelcomeremote",
@@ -2267,7 +2392,7 @@ setup_greeter_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (sensitive_entry_toggled), welcomeremote);
- } else if (strcmp ("fb_allusers", name) == 0) {
+ } else if (strcmp ("fb_allusers", ve_sure_string (name)) == 0) {
GtkWidget *fb_includetree = glade_helper_get (xml, "fb_include_treeview",
GTK_TYPE_TREE_VIEW);
@@ -2297,7 +2422,7 @@ setup_greeter_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled",
G_CALLBACK (include_all_toggle), NULL);
}
- else if (strcmp ("acc_sound_ready", name) == 0) {
+ else if (strcmp ("acc_sound_ready", ve_sure_string (name)) == 0) {
GtkWidget *file_chooser;
GtkWidget *play_button;
@@ -2315,7 +2440,7 @@ setup_greeter_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled", G_CALLBACK (toggle_toggled_sensitivity_positive), file_chooser);
g_signal_connect (G_OBJECT (toggle), "toggled", G_CALLBACK (toggle_toggled_sensitivity_positive), play_button);
}
- else if (strcmp ("acc_sound_success", name) == 0) {
+ else if (strcmp ("acc_sound_success", ve_sure_string (name)) == 0) {
GtkWidget *file_chooser;
GtkWidget *play_button;
@@ -2331,7 +2456,7 @@ setup_greeter_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled", G_CALLBACK (toggle_toggled_sensitivity_positive), file_chooser);
g_signal_connect (G_OBJECT (toggle), "toggled", G_CALLBACK (toggle_toggled_sensitivity_positive), play_button);
}
- else if (strcmp ("acc_sound_failure", name) == 0) {
+ else if (strcmp ("acc_sound_failure", ve_sure_string (name)) == 0) {
GtkWidget *file_chooser;
GtkWidget *play_button;
@@ -2347,7 +2472,7 @@ setup_greeter_toggle (const char *name,
g_signal_connect (G_OBJECT (toggle), "toggled", G_CALLBACK (toggle_toggled_sensitivity_positive), file_chooser);
g_signal_connect (G_OBJECT (toggle), "toggled", G_CALLBACK (toggle_toggled_sensitivity_positive), play_button);
}
- else if (strcmp ("local_logo_image_checkbutton", name) == 0) {
+ else if (strcmp ("local_logo_image_checkbutton", ve_sure_string (name)) == 0) {
GtkWidget *file_chooser;
GtkWidget *file_chooser_remote;
@@ -2386,7 +2511,7 @@ greeter_color_timeout (GtkWidget *picker)
GtkWidget *colorbutton;
- if (strcmp (GDM_KEY_GRAPHICAL_THEME_COLOR, key) == 0) {
+ if (strcmp (GDM_KEY_GRAPHICAL_THEME_COLOR, ve_sure_string (key)) == 0) {
colorbutton = glade_helper_get (xml, "remote_background_theme_colorbutton",
GTK_TYPE_COLOR_BUTTON);
}
@@ -2399,7 +2524,7 @@ greeter_color_timeout (GtkWidget *picker)
else {
GtkWidget *colorbutton;
- if (strcmp (GDM_KEY_GRAPHICAL_THEME_COLOR, key) == 0) {
+ if (strcmp (GDM_KEY_GRAPHICAL_THEME_COLOR, ve_sure_string (key)) == 0) {
colorbutton = glade_helper_get (xml, "local_background_theme_colorbutton",
GTK_TYPE_COLOR_BUTTON);
}
@@ -2418,17 +2543,10 @@ greeter_color_timeout (GtkWidget *picker)
val = gdm_config_get_string ((gchar *)key);
if (strcmp (ve_sure_string (val), ve_sure_string (color)) != 0) {
- VeConfig *cfg = ve_config_get (config_file);
-
- ve_config_set_string (cfg, key, ve_sure_string (color));
-
- ve_config_save (cfg, FALSE /* force */);
-
- update_key (key);
+ gdm_setup_config_set_string (key, key, ve_sure_string (color));
update_greeters ();
}
- g_free (val);
g_free (color);
return FALSE;
@@ -2465,8 +2583,6 @@ setup_greeter_color (const char *name,
g_signal_connect (G_OBJECT (picker), "color_set",
G_CALLBACK (greeter_color_changed), NULL);
-
- g_free (val);
}
typedef enum {
@@ -2480,20 +2596,21 @@ typedef struct _ImageData {
gchar *key;
} ImageData;
+/*
+ * Do we really want to throw away the user's translations just because they
+ * changed the non-translated value?
+ */
static gboolean
greeter_entry_untranslate_timeout (GtkWidget *entry)
{
- VeConfig *cfg = ve_config_get (config_file);
- const char *key = g_object_get_data (G_OBJECT (entry), "key");
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ const char *key = g_object_get_data (G_OBJECT (entry), "key");
const char *text;
text = gtk_entry_get_text (GTK_ENTRY (entry));
- ve_config_delete_translations (cfg, key);
- ve_config_set_string (cfg, key, ve_sure_string (text));
- ve_config_save (cfg, FALSE /* force */);
-
- update_key (key);
+ ve_config_delete_translations (custom_cfg, key);
+ gdm_setup_config_set_string (key, key, (char *)ve_sure_string (text));
update_greeters ();
return FALSE;
@@ -2605,13 +2722,13 @@ setup_greeter_combobox (const char *name,
val = gdm_config_get_string ((gchar *)key);
if (val != NULL &&
- strcmp (val,
+ strcmp (ve_sure_string (val),
EXPANDED_LIBEXECDIR "/gdmlogin --disable-sound --disable-crash-dialog") == 0) {
g_free (val);
val = g_strdup (EXPANDED_LIBEXECDIR "/gdmlogin");
}
/* Set initial state of local style combo box. */
- if (strcmp (key, GDM_KEY_GREETER) == 0) {
+ if (strcmp (ve_sure_string (key), GDM_KEY_GREETER) == 0) {
if (strstr (val, "/gdmlogin") != NULL) {
@@ -2651,10 +2768,9 @@ setup_greeter_combobox (const char *name,
}
}
/* Set initial state of remote style combo box. */
- else if (strcmp (key, GDM_KEY_REMOTE_GREETER) == 0) {
+ else if (strcmp (ve_sure_string (key), GDM_KEY_REMOTE_GREETER) == 0) {
refresh_remote_tab ();
}
- g_free (val);
g_object_set_data_full (G_OBJECT (combobox), "key",
g_strdup (key), (GDestroyNotify) g_free);
@@ -2690,9 +2806,9 @@ module_compare (const char *mod1, const char *mod2)
/* first cannonify the names */
base1 = g_path_get_basename (mod1);
base2 = g_path_get_basename (mod2);
- if (strncmp (base1, "lib", 3) == 0)
+ if (strncmp (ve_sure_string (base1), "lib", 3) == 0)
strcpy (base1, &base1[3]);
- if (strncmp (base2, "lib", 3) == 0)
+ if (strncmp (ve_sure_string (base2), "lib", 3) == 0)
strcpy (base2, &base2[3]);
p = strstr (base1, ".so");
if (p != NULL)
@@ -2701,7 +2817,7 @@ module_compare (const char *mod1, const char *mod2)
if (p != NULL)
*p = '\0';
- ret = (strcmp (base1, base2) == 0);
+ ret = (strcmp (ve_sure_string (base1), ve_sure_string (base2)) == 0);
g_free (base1);
g_free (base2);
@@ -2747,7 +2863,7 @@ themes_list_contains (const char *themes_list, const char *theme)
return FALSE;
for (i = 0; vec[i] != NULL; i++) {
- if (strcmp (vec[i], theme) == 0) {
+ if (strcmp (ve_sure_string (vec[i]), ve_sure_string (theme)) == 0) {
g_strfreev (vec);
return TRUE;
}
@@ -2805,7 +2921,6 @@ strings_list_add (char *strings_list, const char *string, const char *sep)
static void
acc_modules_toggled (GtkWidget *toggle, gpointer data)
{
- VeConfig *cfg = ve_config_get (config_file);
gboolean add_gtk_modules = gdm_config_get_bool (GDM_KEY_ADD_GTK_MODULES);
char *modules_list = gdm_config_get_string (GDM_KEY_GTK_MODULES_LIST);
@@ -2836,17 +2951,11 @@ acc_modules_toggled (GtkWidget *toggle, gpointer data)
if (ve_string_empty (modules_list))
add_gtk_modules = FALSE;
- ve_config_set_string (cfg, GDM_KEY_GTK_MODULES_LIST,
+
+ gdm_setup_config_set_string (GDM_KEY_GTK_MODULES_LIST, GDM_KEY_GTK_MODULES_LIST,
ve_sure_string (modules_list));
-
- ve_config_set_bool (cfg, GDM_KEY_ADD_GTK_MODULES,
+ gdm_setup_config_set_bool (GDM_KEY_ADD_GTK_MODULES, GDM_KEY_ADD_GTK_MODULES,
add_gtk_modules);
- ve_config_save (cfg, FALSE /* force */);
-
- g_free (modules_list);
-
- update_key (GDM_KEY_GTK_MODULES_LIST);
- update_key (GDM_KEY_ADD_GTK_MODULES);
}
static void
@@ -2856,8 +2965,7 @@ test_sound (GtkWidget *button, gpointer data)
const char *file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (acc_sound_file_chooser));
const char *argv[3];
- if ((file == NULL) ||
- access (file, R_OK) != 0 ||
+ if ((file == NULL) || access (file, R_OK) != 0 ||
ve_string_empty (GdmSoundProgram))
return;
@@ -2878,24 +2986,19 @@ test_sound (GtkWidget *button, gpointer data)
static void
sound_response (GtkWidget *file_chooser, gpointer data)
{
- VeConfig *cfg = ve_config_get (config_file);
const char *file_name;
char *sound_key;
char *value;
file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
-
sound_key = g_object_get_data (G_OBJECT (file_chooser), "key");
- value = gdm_config_get_string (sound_key);
+ value = gdm_config_get_string (sound_key);
if (strcmp (ve_sure_string (value), ve_sure_string (file_name)) != 0) {
- ve_config_set_string (cfg, sound_key,
- ve_sure_string (file_name));
- ve_config_save (cfg, FALSE);
- update_key (sound_key);
+ gdm_setup_config_set_string (sound_key, sound_key,
+ (char *)ve_sure_string (file_name));
update_greeters ();
}
- g_free (value);
}
static void
@@ -2986,8 +3089,6 @@ setup_accessibility_tab (void)
TRUE);
}
- g_free (modules_list);
-
all_sounds_filter = gtk_file_filter_new ();
gtk_file_filter_set_name (all_sounds_filter, _("Sounds"));
gtk_file_filter_add_mime_type (all_sounds_filter, "audio/x-wav");
@@ -3017,8 +3118,6 @@ setup_accessibility_tab (void)
DATADIR"/sounds");
}
- g_free (value);
-
value = gdm_config_get_string (GDM_KEY_SOUND_ON_LOGIN_SUCCESS_FILE);
if (value != NULL && *value != '\0') {
@@ -3030,8 +3129,6 @@ setup_accessibility_tab (void)
DATADIR"/sounds");
}
- g_free (value);
-
value = gdm_config_get_string (GDM_KEY_SOUND_ON_LOGIN_FAILURE_FILE);
if (value != NULL && *value != '\0') {
@@ -3043,8 +3140,6 @@ setup_accessibility_tab (void)
DATADIR"/sounds");
}
- g_free (value);
-
gdm_key_sound_ready = g_strdup (GDM_KEY_SOUND_ON_LOGIN_FILE);
g_object_set_data (G_OBJECT (access_sound_ready_file_chooser), "key",
@@ -3316,7 +3411,7 @@ read_themes (GtkListStore *store, const char *theme_dir, DIR *dir,
g_free (full);
if (selected_theme != NULL &&
- strcmp (dent->d_name, selected_theme) == 0)
+ strcmp (ve_sure_string (dent->d_name), ve_sure_string (selected_theme)) == 0)
sel_theme = TRUE;
else
sel_theme = FALSE;
@@ -3384,7 +3479,7 @@ read_themes (GtkListStore *store, const char *theme_dir, DIR *dir,
-1);
if (select_item != NULL &&
- strcmp (dent->d_name, select_item) == 0) {
+ strcmp (ve_sure_string (dent->d_name), ve_sure_string (select_item)) == 0) {
/* anality */ g_free (select_iter);
select_iter = g_new0 (GtkTreeIter, 1);
*select_iter = iter;
@@ -3406,7 +3501,6 @@ read_themes (GtkListStore *store, const char *theme_dir, DIR *dir,
static gboolean
greeter_theme_timeout (GtkWidget *toggle)
{
- VeConfig *cfg = ve_config_get (config_file);
char *theme;
char *themes;
@@ -3417,31 +3511,23 @@ greeter_theme_timeout (GtkWidget *toggle)
if (selected_themes == NULL)
selected_themes = "";
- /* If themes have changed from the config file, update it. */
+ /* If themes have changed from the custom_config file, update it. */
if (strcmp (ve_sure_string (theme),
ve_sure_string (selected_theme)) != 0) {
- ve_config_set_string (cfg, GDM_KEY_GRAPHICAL_THEME,
- selected_theme);
-
- ve_config_save (cfg, FALSE /* force */);
- update_key (GDM_KEY_GRAPHICAL_THEME);
+ gdm_setup_config_set_string (GDM_KEY_GRAPHICAL_THEME,
+ GDM_KEY_GRAPHICAL_THEME, selected_theme);
update_greeters ();
}
if (strcmp (ve_sure_string (themes),
ve_sure_string (selected_themes)) != 0) {
- ve_config_set_string (cfg, GDM_KEY_GRAPHICAL_THEMES,
- selected_themes);
-
- ve_config_save (cfg, FALSE /* force */);
- update_key (GDM_KEY_GRAPHICAL_THEMES);
+ gdm_setup_config_set_string (GDM_KEY_GRAPHICAL_THEMES,
+ GDM_KEY_GRAPHICAL_THEMES, selected_themes);
update_greeters ();
}
- g_free (theme);
- g_free (themes);
return FALSE;
}
@@ -3553,7 +3639,7 @@ is_ext (const char *filename, const char *ext)
if (dot == NULL)
return FALSE;
- if (strcmp (dot, ext) == 0)
+ if (strcmp (ve_sure_string (dot), ve_sure_string (ext)) == 0)
return TRUE;
else
return FALSE;
@@ -3709,7 +3795,7 @@ get_the_dir (FILE *fp, char **error)
}
}
- if (strncmp (buf, dir, dirlen) != 0) {
+ if (strncmp (ve_sure_string (buf), ve_sure_string (dir), dirlen) != 0) {
*error = _("Archive is not of a single subdirectory");
g_free (dir);
return NULL;
@@ -3717,14 +3803,14 @@ get_the_dir (FILE *fp, char **error)
if ( ! got_info) {
s = g_strconcat (dir, "/GdmGreeterTheme.info", NULL);
- if (strcmp (buf, s) == 0)
+ if (strcmp (ve_sure_string (buf), ve_sure_string (s)) == 0)
got_info = TRUE;
g_free (s);
}
if ( ! got_info) {
s = g_strconcat (dir, "/GdmGreeterTheme.desktop", NULL);
- if (strcmp (buf, s) == 0)
+ if (strcmp (ve_sure_string (buf), ve_sure_string (s)) == 0)
got_info = TRUE;
g_free (s);
}
@@ -3831,7 +3917,7 @@ dir_exists (const char *parent, const char *dir)
return FALSE;
while ((dent = readdir (dp)) != NULL) {
- if (strcmp (dent->d_name, dir) == 0) {
+ if (strcmp (ve_sure_string (dent->d_name), ve_sure_string (dir)) == 0) {
closedir (dp);
return TRUE;
}
@@ -4243,25 +4329,50 @@ delete_theme (GtkWidget *button, gpointer data)
static gboolean
xserver_entry_timeout (GtkWidget *entry)
{
- VeConfig *cfg = ve_config_get (config_file);
- const char *key = g_object_get_data (G_OBJECT (entry), "key");
+ GtkWidget *mod_combobox;
+ GSList *li;
+ const char *key = g_object_get_data (G_OBJECT (entry), "key");
const char *text = gtk_entry_get_text (GTK_ENTRY (entry));
+ gchar *string_old;
+ gchar *section;
- /* Get xserver section to update */
- GtkWidget *combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
- GTK_TYPE_COMBO_BOX);
- gchar *section = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combobox));
- section = g_strconcat(GDM_KEY_SERVER_PREFIX, section, "/", NULL);
-
- if (strcmp (key, GDM_KEY_SERVER_NAME) == 0)
- section = g_strconcat(section, GDM_KEY_SERVER_NAME, NULL);
- else if (strcmp (key, GDM_KEY_SERVER_COMMAND) == 0)
- section = g_strconcat(section, GDM_KEY_SERVER_COMMAND, NULL);
+ mod_combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
+ GTK_TYPE_COMBO_BOX);
- /* Update this servers configuration */
- ve_config_set_string (cfg, section, ve_sure_string (text));
- ve_config_save (cfg, FALSE /* force */);
- g_free(section);
+ /* Get xserver section to update */
+ section = gtk_combo_box_get_active_text (GTK_COMBO_BOX (mod_combobox));
+
+ for (li = xservers; li != NULL; li = li->next) {
+ GdmXserver *svr = li->data;
+ if (strcmp (ve_sure_string (svr->id), ve_sure_string (section)) == 0) {
+
+ if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_NAME)) == 0)
+ string_old = svr->name;
+ else if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_COMMAND)) == 0)
+ string_old = svr->command;
+
+ /* Update this servers configuration */
+ if (strcmp (ve_sure_string (string_old),
+ ve_sure_string (text)) != 0) {
+ if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_NAME)) == 0) {
+ if (svr->name)
+ g_free (svr->name);
+ svr->name = g_strdup (text);
+ } else if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_COMMAND)) == 0) {
+ if (svr->command)
+ g_free (svr->command);
+ svr->command = g_strdup (text);;
+ }
+ update_xserver (section, svr);
+ }
+ break;
+ }
+ }
+ g_free (section);
return FALSE;
}
@@ -4269,31 +4380,46 @@ xserver_entry_timeout (GtkWidget *entry)
static gboolean
xserver_toggle_timeout (GtkWidget *toggle)
{
- VeConfig *cfg = ve_config_get (config_file);
+ GtkWidget *mod_combobox;
const char *key = g_object_get_data (G_OBJECT (toggle), "key");
- gboolean val;
+ GSList *li;
+ gboolean val;
+ gchar *section;
- /* Get xserver section to update */
- GtkWidget *combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
- GTK_TYPE_COMBO_BOX);
- gchar *section = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combobox));
- section = g_strconcat(GDM_KEY_SERVER_PREFIX, section, "/", NULL);
+ mod_combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
+ GTK_TYPE_COMBO_BOX);
- if (strcmp (key, GDM_KEY_SERVER_HANDLED) == 0)
- section = g_strconcat(section, GDM_KEY_SERVER_HANDLED, NULL);
- else if (strcmp (key, GDM_KEY_SERVER_FLEXIBLE) == 0)
- section = g_strconcat(section, GDM_KEY_SERVER_FLEXIBLE, NULL);
- else if (strcmp (key, GDM_KEY_SERVER_CHOOSER) == 0)
- section = g_strconcat(section, GDM_KEY_SERVER_CHOOSER, NULL);
+ /* Get xserver section to update */
+ section = gtk_combo_box_get_active_text (GTK_COMBO_BOX (mod_combobox));
/* Locate this server's section */
- val = ve_config_get_bool (cfg, section);
+ for (li = xservers; li != NULL; li = li->next) {
+ GdmXserver *svr = li->data;
+ if (strcmp (ve_sure_string (svr->id), ve_sure_string (section)) == 0) {
+
+ if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_HANDLED)) == 0) {
+ val = svr->handled;
+ } else if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_FLEXIBLE)) == 0) {
+ val = svr->flexible;
+ }
- /* Update this servers configuration */
- if ( ! ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
- ve_config_set_bool (cfg, section,
- GTK_TOGGLE_BUTTON (toggle)->active);
- ve_config_save (cfg, FALSE /* force */);
+ /* Update this servers configuration */
+ if ( ! ve_bool_equal (val, GTK_TOGGLE_BUTTON (toggle)->active)) {
+ gboolean new_val = GTK_TOGGLE_BUTTON (toggle)->active;
+
+ if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_HANDLED)) == 0)
+ svr->handled = new_val;
+ else if (strcmp (ve_sure_string (key),
+ ve_sure_string (GDM_KEY_SERVER_FLEXIBLE)) == 0)
+ svr->flexible = new_val;
+
+ update_xserver (section, svr);
+ }
+ break;
+ }
}
g_free(section);
@@ -4313,33 +4439,31 @@ xserver_entry_changed (GtkWidget *entry)
}
static void
-xserver_append_combobox(GdmXserver *xserver, GtkComboBox *combobox)
+xserver_append_combobox (GdmXserver *xserver, GtkComboBox *combobox)
{
- gtk_combo_box_append_text (combobox, xserver->id);
+ gtk_combo_box_append_text (combobox, (xserver->id));
}
static void
-xserver_populate_combobox(GtkComboBox* combobox)
+xserver_populate_combobox (GtkComboBox* combobox)
{
- gint i,j;
- GSList *xservers;
+ gint i,j;
/* Get number of items in combobox */
i = gtk_tree_model_iter_n_children(
gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)), NULL);
- /* Delete all items from combobox */
- for (j = 0; j < i; j++) {
- gtk_combo_box_remove_text(combobox,0);
- }
+ /* Delete all items from combobox */
+ for (j = 0; j < i; j++) {
+ gtk_combo_box_remove_text(combobox,0);
+ }
- /* Populate combobox with list of current servers */
- xservers = xservers_get_server_definitions();
- g_slist_foreach(xservers, (GFunc) xserver_append_combobox, combobox);
+ /* Populate combobox with list of current servers */
+ g_slist_foreach (xservers, (GFunc) xserver_append_combobox, combobox);
}
static void
-xserver_init_server_list()
+xserver_init_server_list ()
{
/* Get Widgets from glade */
GtkWidget *treeview = glade_helper_get (xml_xservers, "xserver_tree_view",
@@ -4354,7 +4478,7 @@ xserver_init_server_list()
G_TYPE_STRING /* options */);
/* Read all xservers to start from configuration */
- xservers_get_servers (store);
+ xservers_get_displays (store);
gtk_tree_view_set_model (GTK_TREE_VIEW (treeview),
GTK_TREE_MODEL (store));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
@@ -4362,7 +4486,7 @@ xserver_init_server_list()
}
static void
-xserver_init_servers()
+xserver_init_servers ()
{
GtkWidget *remove_button;
@@ -4384,10 +4508,12 @@ xserver_row_selected(GtkTreeSelection *selection, gpointer data)
gtk_widget_set_sensitive (remove_button, TRUE);
}
-/* Remove a server from the list of servers to start (not the same as
- * deleting a server definition) */
+/*
+ * Remove a server from the list of servers to start (not the same as
+ * deleting a server definition)
+ */
static void
-xserver_remove(gpointer data)
+xserver_remove_display (gpointer data)
{
GtkWidget *treeview, *combo;
GtkTreeSelection *selection;
@@ -4403,8 +4529,10 @@ xserver_remove(gpointer data)
if (gtk_tree_selection_get_selected (selection, &model, &iter))
{
- VeConfig *cfg = ve_config_get (config_file);
- char *key;
+ VeConfig *cfg = ve_config_get (config_file);
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ gchar *defaultval;
+ gchar *key;
combo = glade_helper_get (xml_add_xservers, "xserver_server_combobox",
GTK_TYPE_COMBO_BOX);
@@ -4414,23 +4542,37 @@ xserver_remove(gpointer data)
g_snprintf (vt_value, sizeof (vt_value), "%d", vt);
key = g_strconcat (GDM_KEY_SECTION_SERVERS, "/", vt_value, "=", NULL);
- ve_config_delete_key (cfg, key);
- ve_config_save (cfg, FALSE /* force */);
+
+ defaultval = ve_config_get_string (cfg, key);
+
+ /*
+ * If the value is in the default config file, set it to inactive in
+ * the custom config file, else delete it
+ */
+ if (! ve_string_empty (defaultval)) {
+ ve_config_set_string (custom_cfg, key, "inactive");
+ } else {
+ ve_config_delete_key (custom_cfg, key);
+ }
+ g_free (defaultval);
+
+ ve_config_save (custom_cfg, FALSE /* force */);
/* Update gdmsetup */
- xserver_init_server_list();
- xserver_update_delete_sensitivity();
+ xserver_init_server_list ();
+ xserver_update_delete_sensitivity ();
}
}
-/* Add a server to the list of servers to start (not the same as
- * creating a server definition) */
+/* Add a display to the list of displays to start */
static void
-xserver_add(gpointer data)
+xserver_add_display (gpointer data)
{
- VeConfig *cfg = ve_config_get (config_file);
+ VeConfig *cfg = ve_config_get (config_file);
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
GtkWidget *spinner, *combo, *entry, *button;
gchar *string;
+ gchar *defaultval;
char spinner_value[3], *key;
/* Get Widgets from glade */
@@ -4448,21 +4590,31 @@ xserver_add(gpointer data)
gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spinner)));
key = g_strconcat (GDM_KEY_SECTION_SERVERS, "/", spinner_value, "=", NULL);
- string = g_strconcat (gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo)),
- " ", gtk_entry_get_text (GTK_ENTRY (entry)),
- NULL);
+ if (! ve_string_empty (gtk_entry_get_text (GTK_ENTRY (entry)))) {
+ string = g_strconcat (gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo)),
+ " ", gtk_entry_get_text (GTK_ENTRY (entry)),
+ NULL);
+ } else {
+ string = g_strdup (gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo)));
+ }
+
+ defaultval = ve_config_get_string (cfg, key);
/* Add to config */
- ve_config_set_string (cfg, key, ve_sure_string(string));
- ve_config_save (cfg, FALSE /* force */);
+ if (strcmp (ve_sure_string (defaultval), ve_sure_string (string)) == 0)
+ ve_config_delete_key (custom_cfg, key);
+ else
+ ve_config_set_string (custom_cfg, key, ve_sure_string(string));
+ ve_config_save (custom_cfg, FALSE /* force */);
/* Reinitialize gdmsetup */
- xserver_init_servers();
- xserver_update_delete_sensitivity();
+ xserver_init_servers ();
+ xserver_update_delete_sensitivity ();
/* Free memory */
- g_free(string);
- g_free(key);
+ g_free (defaultval);
+ g_free (string);
+ g_free (key);
}
static void
@@ -4525,7 +4677,7 @@ xserver_add_button_clicked (void)
for (res = gtk_tree_model_get_iter_first (combobox_model, &combobox_iter); res; res = gtk_tree_model_iter_next (combobox_model, &combobox_iter)) {
gtk_tree_model_get (combobox_model, &combobox_iter, 0, &label, -1);
- if (strcmp (label, server) == 0) {
+ if (strcmp (ve_sure_string (label), ve_sure_string (server)) == 0) {
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (server_combobox), &combobox_iter);
}
g_free (label);
@@ -4533,9 +4685,9 @@ xserver_add_button_clicked (void)
gtk_tree_model_get (GTK_TREE_MODEL (treeview_model), &treeview_iter,
XSERVER_COLUMN_OPTIONS, &server, -1);
- gtk_entry_set_text (GTK_ENTRY (options_entry), server);
- }
- else {
+ if (server != NULL)
+ gtk_entry_set_text (GTK_ENTRY (options_entry), server);
+ } else {
gint high_value = 0;
gint vt;
@@ -4552,19 +4704,21 @@ xserver_add_button_clicked (void)
}
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- xserver_add (NULL);
+ xserver_add_display (NULL);
}
g_signal_handler_disconnect (vt_spinbutton, activate_signal_id);
gtk_widget_hide (dialog);
}
-/* TODO: This section needs a little work until it is ready (mainly config
- section modifications) */
-/* Create a server definition (not the same as removing a server
- * from the list of servers to start) */
+/*
+ * TODO: This section needs a little work until it is ready (mainly config
+ * section modifications)
+ * Create a server definition (not the same as removing a server
+ * from the list of servers to start)
+ */
#ifdef GDM_TODO_CODE
static void
-xserver_create(gpointer data)
+xserver_create (gpointer data)
{
/* VeConfig *cfg; */
gboolean success;
@@ -4603,7 +4757,7 @@ xserver_create(gpointer data)
/* TODO: Create a new section for this server */
/* TODO: Write this value to the config and update xservers list */
- /* cfg = ve_config_get (config_file); */
+ /* cfg = ve_config_get (custom_config_file); */
success = FALSE;
/* success = ve_config_add_section (cfg, SECTION_NAME); */
@@ -4636,7 +4790,7 @@ xserver_create(gpointer data)
#endif
static void
-xserver_init_definitions()
+xserver_init_definitions ()
{
GtkWidget *style_combobox;
GtkWidget *modify_combobox;
@@ -4652,11 +4806,25 @@ xserver_init_definitions()
init_servers_combobox (gtk_combo_box_get_active (GTK_COMBO_BOX (style_combobox)));
}
-/* Deletes a server definition (not the same as removing a server
- * from the list of servers to start) */
+/*
+ * Deletes a server definition (not the same as removing a server
+ * from the list of servers to start)
+ *
+ * NOTE, now that we have the gdm.conf and gdm.conf-custom files, this will
+ * need to work like the displays. So if you want to delete something that
+ * is gdm.conf you will need to write a new value to gdm.conf-custom section
+ * for this xserver like "inactive=true". For this to work, daemon/gdmconfig.c
+ * will also need to be modified so that it doesn't bother loading xservers
+ * that are marked as inactive in the gdm.conf-custom file. As I said, this
+ * is the same way the displays already work so the code should be similar.
+ * Or perhaps it makes more sense to just not allow deleting of server-foo
+ * sections as defined in the gdm.conf file. If the user doesn't want to
+ * use them, they can always create new server-foo sections in gdm.conf-custom
+ * and define their displays to only use the ones they define.
+ */
#ifdef GDM_UNUSED_CODE
static void
-xserver_delete(gpointer data)
+xserver_delete (gpointer data)
{
/* Get xserver section to delete */
GtkWidget *combobox = glade_helper_get (xml_xservers, "xserver_mod_combobox",
@@ -4664,8 +4832,8 @@ xserver_delete(gpointer data)
gchar *section = gtk_combo_box_get_active_text ( GTK_COMBO_BOX (combobox));
/* Delete xserver section */
- VeConfig *cfg = ve_config_get (config_file);
- ve_config_delete_section (cfg, g_strconcat (GDM_KEY_SERVER_PREFIX,
+ VeConfig *custom_cfg = ve_config_get (custom_config_file);
+ ve_config_delete_section (custom_cfg, g_strconcat (GDM_KEY_SERVER_PREFIX,
section, NULL));
/* Reinitialize definitions */
@@ -4750,7 +4918,7 @@ setup_xserver_support (GladeXML *xml_xservers)
gtk_tree_view_column_pack_start (column, renderer, TRUE);
gtk_tree_view_column_set_title (column, "Options");
gtk_tree_view_column_set_attributes (column, renderer,
- "text",XSERVER_COLUMN_OPTIONS,
+ "text", XSERVER_COLUMN_OPTIONS,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
@@ -4792,7 +4960,7 @@ setup_xserver_support (GladeXML *xml_xservers)
g_signal_connect (G_OBJECT (style_combobox), "changed",
G_CALLBACK (combobox_changed), NULL);
g_signal_connect (G_OBJECT (remove_button), "clicked",
- G_CALLBACK (xserver_remove), NULL);
+ G_CALLBACK (xserver_remove_display), NULL);
g_signal_connect (G_OBJECT (selection), "changed",
G_CALLBACK (xserver_row_selected), NULL);
@@ -5060,7 +5228,7 @@ setup_local_themed_settings (void)
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (theme_list), TRUE);
- selected_theme = gdm_config_get_string (GDM_KEY_GRAPHICAL_THEME);
+ selected_theme = gdm_config_get_string (GDM_KEY_GRAPHICAL_THEME);
selected_themes = gdm_config_get_string (GDM_KEY_GRAPHICAL_THEMES);
/* FIXME: If a theme directory contains the string GDM_DELIMITER_THEMES
@@ -5230,7 +5398,7 @@ dialog_response (GtkWidget *dlg, int response, gpointer data)
"if you cannot find what you are looking for.\n\n"
"For complete documentation see the GNOME help browser "
"under the \"Desktop\" category."),
- config_file);
+ custom_config_file);
gtk_dialog_set_has_separator (GTK_DIALOG (dlg), FALSE);
g_signal_connect (G_OBJECT (dlg), "destroy",
G_CALLBACK (gtk_widget_destroyed),
@@ -5245,7 +5413,6 @@ dialog_response (GtkWidget *dlg, int response, gpointer data)
static void
image_filechooser_response (GtkWidget *file_chooser, gpointer data)
{
- VeConfig *cfg = ve_config_get (config_file);
const char *file_name;
char *key;
char *value;
@@ -5293,26 +5460,21 @@ image_filechooser_response (GtkWidget *file_chooser, gpointer data)
G_CALLBACK (image_filechooser_response), image_filechooser);
}
- ve_config_set_string (cfg, key,
- ve_sure_string (file_name));
- ve_config_save (cfg, FALSE);
- update_key (key);
+ gdm_setup_config_set_string (key, key, (char *)ve_sure_string (file_name));
update_greeters ();
}
- g_free (value);
}
static void
logo_filechooser_response (GtkWidget *file_chooser, gpointer data)
{
- VeConfig *cfg = ve_config_get (config_file);
const char *file_name;
char *key;
char *value;
file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
- key = g_object_get_data (G_OBJECT (file_chooser), "key");
+ key = g_object_get_data (G_OBJECT (file_chooser), "key");
value = gdm_config_get_string (key);
if (strcmp (ve_sure_string (value), ve_sure_string (file_name)) != 0) {
@@ -5341,10 +5503,8 @@ logo_filechooser_response (GtkWidget *file_chooser, gpointer data)
G_CALLBACK (logo_filechooser_response), image_filechooser);
if (GTK_TOGGLE_BUTTON (image_toggle)->active == TRUE) {
- ve_config_set_string (cfg, key,
- ve_sure_string (file_name));
- ve_config_save (cfg, FALSE);
- update_key (key);
+ gdm_setup_config_set_string (key, key,
+ (char *)ve_sure_string (file_name));
update_greeters ();
}
}
@@ -5371,15 +5531,12 @@ logo_filechooser_response (GtkWidget *file_chooser, gpointer data)
G_CALLBACK (logo_filechooser_response), image_filechooser);;
if (GTK_TOGGLE_BUTTON (image_toggle)->active == TRUE) {
- ve_config_set_string (cfg, key,
- ve_sure_string (file_name));
- ve_config_save (cfg, FALSE);
- update_key (key);
+ gdm_setup_config_set_string (key, key,
+ (char *)ve_sure_string (file_name));
update_greeters ();
}
}
}
- g_free (value);
}
static GdkPixbuf *
@@ -5644,7 +5801,6 @@ hookup_plain_logo (void)
gtk_image_set_from_pixbuf (GTK_IMAGE (image_preview),
create_preview_pixbuf (previous_logo_filename));
}
- g_free (previous_logo_filename);
}
else {
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (logo_button),
@@ -5656,11 +5812,9 @@ hookup_plain_logo (void)
gtk_widget_set_sensitive (logo_button, TRUE);
}
- g_object_set_data (G_OBJECT (logo_button), "key",
- GDM_KEY_LOGO);
+ g_object_set_data (G_OBJECT (logo_button), "key", GDM_KEY_LOGO);
- g_object_set_data (G_OBJECT (logo_checkbutton), "key",
- GDM_KEY_LOGO);
+ g_object_set_data (G_OBJECT (logo_checkbutton), "key", GDM_KEY_LOGO);
g_signal_connect (G_OBJECT (logo_button), "selection-changed",
G_CALLBACK (logo_filechooser_response), logo_button);
@@ -5937,7 +6091,6 @@ hookup_remote_plain_logo (void)
gtk_image_set_from_pixbuf (GTK_IMAGE (image_preview),
create_preview_pixbuf (previous_logo_filename));
}
- g_free (previous_logo_filename);
}
else {
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (logo_button),
@@ -5948,7 +6101,6 @@ hookup_remote_plain_logo (void)
TRUE);
gtk_widget_set_sensitive (logo_button, TRUE);
}
- g_free (logo_filename);
g_object_set_data (G_OBJECT (logo_button), "key",
GDM_KEY_LOGO);
@@ -6316,11 +6468,6 @@ gdm_event (GSignalInvocationHint *ihint,
return TRUE;
}
-struct poptOption options [] = {
- { "config", 'c', POPT_ARG_STRING, &config_file, 0, N_("Alternative configuration file"), N_("CONFIGFILE") },
- { NULL, 0, 0, NULL, 0}
-};
-
static void
apply_user_changes (GObject *object, gint arg1, gpointer user_data)
{
@@ -6365,9 +6512,9 @@ apply_user_changes (GObject *object, gint arg1, gpointer user_data)
int
main (int argc, char *argv[])
{
- poptContext ctx;
GtkWidget *dialog;
- int nextopt;
+
+ gdm_config_never_cache (TRUE);
if (g_getenv ("DOING_GDM_DEVELOPMENT") != NULL)
DOING_GDM_DEVELOPMENT = TRUE;
@@ -6379,19 +6526,16 @@ main (int argc, char *argv[])
textdomain (GETTEXT_PACKAGE);
gtk_init(&argc, &argv);
- ctx = poptGetContext(NULL, argc, (const char**)argv, options, 0);
- while ((nextopt = poptGetNextOpt(ctx)) > 0 || nextopt == POPT_ERROR_BADOPT);
gtk_window_set_default_icon_from_file (DATADIR"/pixmaps/gdm-setup.png", NULL);
glade_gnome_init();
- /* It is not null if config file location is passed in via command line */
- if (config_file == NULL) {
- config_file = gdm_common_get_config_file ();
- if (config_file == NULL) {
- g_print (_("Could not access GDM configuration file.\n"));
- exit (EXIT_FAILURE);
- }
+ custom_config_file = g_strdup_printf ("%s-custom", GDM_SYSCONFDIR_CONFIG_FILE);
+
+ config_file = gdm_common_get_config_file ();
+ if (config_file == NULL) {
+ g_print (_("Could not access GDM configuration file.\n"));
+ exit (EXIT_FAILURE);
}
gdm_running = gdmcomm_check (FALSE);
@@ -6407,15 +6551,13 @@ main (int argc, char *argv[])
gtkrc = gdm_config_get_string (GDM_KEY_GTKRC);
if ( ! ve_string_empty (gtkrc))
gtk_rc_parse (gtkrc);
- g_free (gtkrc);
theme_name = g_strdup (g_getenv ("GDM_GTK_THEME"));
if (ve_string_empty (theme_name)) {
g_free (theme_name);
theme_name = gdm_config_get_string (GDM_KEY_GTK_THEME);
- }
-
- if ( ! ve_string_empty (theme_name)) {
+ gdm_set_theme (theme_name);
+ } else {
gdm_set_theme (theme_name);
}
@@ -6444,23 +6586,27 @@ main (int argc, char *argv[])
exit (EXIT_FAILURE);
}
- /* XXX: the setup proggie using a greeter config var for it's
- * ui? Say it ain't so. Our config sections are SUCH A MESS */
- GdmIconMaxHeight = gdm_config_get_int (GDM_KEY_MAX_ICON_HEIGHT);
- GdmIconMaxWidth = gdm_config_get_int (GDM_KEY_MAX_ICON_WIDTH);
- GdmMinimalUID = gdm_config_get_int (GDM_KEY_MINIMAL_UID);
- GdmIncludeAll = gdm_config_get_bool ( GDM_KEY_INCLUDE_ALL);
- GdmInclude = gdm_config_get_string (GDM_KEY_INCLUDE);
- GdmExclude = gdm_config_get_string (GDM_KEY_EXCLUDE);
- GdmSoundProgram = gdm_config_get_string (GDM_KEY_SOUND_PROGRAM);
- GdmAllowRoot = gdm_config_get_bool (GDM_KEY_ALLOW_ROOT);
+ /*
+ * XXX: the setup proggie using a greeter config var for it's
+ * ui? Say it ain't so. Our config sections are SUCH A MESS
+ */
+ GdmIconMaxHeight = gdm_config_get_int (GDM_KEY_MAX_ICON_HEIGHT);
+ GdmIconMaxWidth = gdm_config_get_int (GDM_KEY_MAX_ICON_WIDTH);
+ GdmMinimalUID = gdm_config_get_int (GDM_KEY_MINIMAL_UID);
+ GdmIncludeAll = gdm_config_get_bool ( GDM_KEY_INCLUDE_ALL);
+ GdmInclude = gdm_config_get_string (GDM_KEY_INCLUDE);
+ GdmExclude = gdm_config_get_string (GDM_KEY_EXCLUDE);
+ GdmSoundProgram = gdm_config_get_string (GDM_KEY_SOUND_PROGRAM);
+ GdmAllowRoot = gdm_config_get_bool (GDM_KEY_ALLOW_ROOT);
GdmAllowRemoteRoot = gdm_config_get_bool (GDM_KEY_ALLOW_REMOTE_ROOT);
+
if (ve_string_empty (GdmSoundProgram) ||
- access (GdmSoundProgram, X_OK) != 0) {
- g_free (GdmSoundProgram);
+ access (GdmSoundProgram, X_OK) != 0) {
GdmSoundProgram = NULL;
}
+ xservers = gdm_config_get_xservers (FALSE);
+
dialog = setup_gui ();
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (apply_user_changes), dialog);