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.
- Make the header more robust. If we need to add more argumetns to the scsh
command-line this will let us do that more easily in the future without having
to change the header again.
- Don't ‘display’ the result of the call to ‘run’ because that should always be
‘0’, unless something went wrong. Regardless, it doesn't belong in the output
of this program.
- Use ‘rx’ in Emacs to build the regular expression. This is easier to read,
especially considering how many times a single ‘\’ has to be escaped (once for
the string in scsh, and once more for the string in Emacs).
Other file headers come with caveats:
- ‘#!/usr/bin/scsh -s’ :: Now that scsh is installed through Guix, this is not
where this file lives.
- ‘#!/usr/bin/env -S scsh -s’ :: This doesn't work when we need to specify move
arguments on the command line and need to use the meta-argument.
‘env -S scsh \’ doesn't work.
Write a small DSL for converting a simple lisp expression to an MPD query
format. This turns, for example:
(and (= artist "Katatonia") (= album "Last Fair Deal Gone Down"))
Into:
((artist == "Katatonia") AND (album == "Last Fair Deal Gone Down"))
The expressions inside ‘query’ are quasi-quoted, so that variable substitution
is possible.