xfce4-settings nick/xsettingsd-merge ready for merge

Nick Schermer nickschermer at gmail.com
Fri Feb 25 10:40:42 CET 2011

I've just finished the last bit in the branch so I think it's ready to
be merged in master. A small summary of what the changes are:

* Old xfsettingsd was removed (xsettings manager). To reduce the
number of precess; the helper and xsettings can easily run together.
The idea that people use only one of the two is not very likely.

* Xfce4-settings-helper renamed to xfsettingd, just because I like the
name better.

* Startup changes: in 4.8 it was already possible to spawn the helper
multiple times on startup without problems. While this is not very
efficient it doesn't hurt. Previously we disabled the helper's
autostart desktop file when it was restored from a session; as a
result; when starting from a new session the helper was not launched
because the .desktop files was disabled.

To resolve this xfsettingsd installs a desktop file to autostart and
in xfce4-session (nick/xsettingsd-merge branch) is also is added in
the default session (with the old early xfsettingsd start hack
removed). This way it's likely the process is started twice on a fresh
login (2nd instance quits before doing anything), but at least we're
sure it started. And because of the xsettings merge you will also have
no theming if starting failed, so it will be quite obvious when it
crashed (not leaving you clueless why the keyboard shortcuts don't
work ;-).

* New xfsettings daemon. To make this old code work in a single object
and share the efforts across screens why fully using the power of
xfconf I rewrote the old implementation here and there to have the
following advantages:
  - xsettings properties are all ready from xsettings channel, no
internal hard-coded values. The installed xsettings channel contains
all the defaults making it easier to add new values or change defaults
for distros.
  - Improvements in the properties serial handling, so xsettings
watchers can do less work why updating new values (in in the xsetting
spec, not in our old code, that said gtk does use this but i reported
a bug for that).
  - We watch fontconfig changes and notify applications on config file
changes or new/removed fonts.
  - Lot of comments added -in-code- to explain the spec offsets, so
anyone can understand what's being done.
  - Various other cleanups to steal xfconf data on startup and not
creating new property strings strings for each screen, use hastables
to search properties etc...

* Debugging. Over time we've received a number of bugs that are hard
to track, so I've added a debugging system like in xfce4-panel. Very
simple to use and not optional. It will print output what's being done
when setting XFSETTINGSD_DEBUG=1 in the environment, more info will be
printed with XFSETTINGSD_DEBUG=all or a specific debug domain (see
Not very related to the branch, but it can't hurt.

So, any complains this will be merged?


More information about the Xfce4-dev mailing list