The ‘syncthing-gtk’ program doesn't seem to start the syncthing daemon
automatically. In fact trying to start ‘syncthing-gtk’ through shepherd doesn't
seem to want to work at the moment, complaining that it can't close a bunch of
file descriptors.
The example was using a system constructor with a kill destructor, but I don't
think those two work together. I prefer having the application run in the
foreground and using the shepherd way of forking so I have more control.
I thought that ‘syncthing-gtk’ was a program that would fork (given the fact
that it has a ‘--quit’ command), but it turns out that it doesn't. Using the
system constructor means that shepherd will block until ‘syncthing-gtk’ is
closed.
Even though the output of the ‘--help’ command promises that ‘--file-guile’ is
the same as ‘-fg’ it appears that specifying ‘--file-guile’ doesn't work. It
just pops up the help message.
The herbstluftwm configuration isn't complete yet, it's only the package so far,
but it does extend the xsession service to include a line in xsession to execute
the window manager in a bit of a hacky way.
This also adds a ‘mixed-executable-file’ function which is the same as the
‘mixed-text-file’ except that it also sets the executable bit for the computed
file.