#19 Automatic reload of config files on change

Matthew Palmer

In the Debian packages, it is important that changes to
the system configuration (or menu) get quickly noticed
and reloaded into the running fbpanels. Since killall
-USR1 fbpanel is prone to error, I instead decided to
implement a "config watcher", to keep note of all of
the config files we're using, and if any of them gets
updated, we reload the panel.

There appears to be a memory leak that occurs on panel
reload, which I find faintly disturbing, but I haven't
been able to distinguish if it's my changes or a
pre-existing leak (probably in GTK).

The current implementation is available from
(click '(all patches)' for the complete changeset).
Fixes will be included there. For testing, I've run
fbpanel and touched various included files and each
time it causes fbpanel to reload. I will be including
the patch into the Debian fbpanel packages, so it'll
soon get a whole lot of exercise. Feel free to hold
off on applying this patch for a few weeks to get all
the kinks out in the Debian package first.


    • status: open --> open-rejected
  • Logged In: YES

    personally, I do not like idea of fbpanel constanly acesses
    disk. This way you never get power save mode on laptop. And
    I want a fbpanel to be the only one who read/write its
    config file so I have to update code in one place and do not
    worry about file lokcing etc.

  • Matthew Palmer
    Matthew Palmer

    Logged In: YES

    Unfortunately, there must be a means to allow all running
    fbpanel instances to reload their config files at arbitrary
    times. I'll continue to include the patch I provided in the
    Debian-packaged fbpanel until such time as there is an
    alternate means of performing this action.

  • Logged In: YES

    may be it's good idea to write invisible (no-gui) plugin
    that will watch for alteration of all config files and
    restart fbpanel if they were changed.
    this way, interested users can enable it whist other do not.

    If you implement it as plugin I will include it.

    P.S. icons is a good example of invisible plugin

  • Logged In: YES

    actually adding comand line option to enable/disable such
    behaviour will be enough.