On 12/29/2009 9:13 AM, solarg wrote:
> hello all,
> i opened a new thread for this problem i'm unable to solve on my machine.
> Brian told me to use:
> gconftool-2 --direct --config-source
> xml:readwrite:/var/lib/gdm/.gconf.mandatory -t string -s
> /desktop/gnome/background/picture_filename
> /usr/share/pixmaps/backgrounds/opensolaris/stream.jpg
>
> but .gconf.mandatory isn't listed in /etc/gconf/2/path, there is:
> xml:readwrite:$(HOME)/.gconf
>
> but also an include:
> include "$(HOME)/.gconf.path"
>
> but gdm's home contains gconf.path not .gconf.path, is it normal? I'm
> wondering who created this file gconf.path that doesn't exist for others
> users?

When GDM starts up the login GUI, it starts GConf with an environment
variable which tells it to use the ~gdm/gconf.path file instead
of /etc/gconf/2/path.  You'll notice that the ~gdm/gconf.path file
specifies ~gdm/.gconf.mandatory.

The reason that this is done is so that GConf can set up different
configuration subdirectories in a per-seat (or per-display) fashion.
Otherwise, if you launched an AT program on one GDM login screen, it
would launch on them all, for example.  This would be a problem for
Sun Ray.

You might notice directories like this: ~gdm/StaticSeat1/.gconf,
~gdm/Seat1/.gconf.  These are the individual GConf directories
associated with each ConsoleKit seat.  These directories are
specified via the ~gdm/gconf.path file.  So, if you want to change
the settings for a particular seat, you need to specify the .gconf
directory that corresponds to your ConsoleKit seat.  If you are just
using one Seat (if you only use the console display, for example)
then there should only be one such directory.

If you want to change the configuration setting for all seats, then
you should modify the ~gdm/.gconf.mandatory directory.  Since most
users want to do this, the examples in the gdm manpage just suggest
that this is what you should do.

Perhaps this should be better documented in the manpage.  Let's further
discuss until we figure out what your problem is, then we might have a
better idea of what improvements need to be made to the manpage to avoid
future confusion.

> Anyway, i did:
> gdm at ultra20:~$ gconftool-2 --direct --config-source
> xml:readwrite:/var/lib/gdm/.gconf -t string -s
> /desktop/gnome/background/picture_filename /home/henry/screenshot.png
> gdm at ultra20:~$ gconftool-2 --direct --config-source
> xml:readwrite:/var/lib/gdm/.gconf -g
> /desktop/gnome/background/picture_filename /home/henry/screenshot.png
> gdm at ultra20:~$ gconftool-2 --direct --config-source
> xml:readwrite:/var/lib/gdm/.gconf -t bool -s
> /apps/gdm/simple-greeter/disable_user_list false
> gdm at ultra20:~$ gconftool-2 --direct --config-source
> xml:readwrite:/var/lib/gdm/.gconf -g
> /apps/gdm/simple-greeter/disable_user_list
>
> but after restarting gdm, there is no change...

I would not expect the above commands to work since you are modifying
~gdm/.gconf. You need to either modify the mandatory directory, or
the .gconf directory for the seat you are using.  The seat value should
be persistent for your console display, even if you do VT switching.

If you have errors running the gconftool-2 command after su'ing to
the gdm user, then does it work better if you run the command with
pfexec?

The fix to make GDM work with the multi-display feature described above
is a very recent addition to GDM, and I hope that hasn't complicated
using gconftool-2 to make simple configuration changes.

You do have to restart GDM after changing the configuration, so
run "svcadm restart gdm" after changing configuration, or reboot.

Brian

Reply via email to