This is my configuration for Guile-Daemon. I use it for 2 purposes:
- As the OSD daemon, i.e. to display something (clock, sound volume, etc.) on screen using Guile-XOSD.
- As a client for
lircd
(instead of irexec), i.e. to handle key signals from my remote control.
Note: along with (xosd)
module from Guile-XOSD, my guile modules are
used in this config (they have (al ...)
form).
- init.scm is the “config” file itself (it is symlinked to
$XDG_CONFIG_HOME/guile-daemon/init.scm). All this file does is:
it adds modules directory (see below) to the Guile
%load-path
, and loads(daemon-config)
module. - modules directory contains several modules with the code I use
for Guile-Daemon. I split the code into several modules to make
“logical pieces”, but more importantly to speed-up the start of
Guile-Daemon, as these modules are loaded on demand: only
(daemon-config)
is loaded on start-up, and it’s just a wrapper that autoloads procedures placed in the other modules.So, for example,
(daemon-config osd sound)
module is loaded only whenosd-sound
procedure is called, i.e., when I press one of my sound keys (bound toosd-sound ...
— see below) first time. - scripts directory contains a couple of shell scripts that send
expressions to the Guile Daemon using
gdpipe
(it is a part of Guile-Daemon). This directory is placed in my $PATH so I can use such commands asosd-text hello
orosd-sound sset Master 3%+
. For example, I bind several keys to suchosd-sound
commands in my stumpwm config. The result may be seen in the gif demo above.