/guile-daemon-config

My configuration for Guile-Daemon

Primary LanguageSchemeGNU General Public License v3.0GPL-3.0

About

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.

sound-volume-demo.gif

Note: along with (xosd) module from Guile-XOSD, my guile modules are used in this config (they have (al ...) form).

Files

  • 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 when osd-sound procedure is called, i.e., when I press one of my sound keys (bound to osd-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 as osd-text hello or osd-sound sset Master 3%+. For example, I bind several keys to such osd-sound commands in my stumpwm config. The result may be seen in the gif demo above.