Next: , Previous: , Up: Home Services   [Contents][Index]

13.3.7 Desktop Home Services

The (gnu home services desktop) module provides services that you may find useful on “desktop” systems running a graphical user environment such as Xorg.

Variable: home-redshift-service-type

This is the service type for Redshift, a program that adjusts the display color temperature according to the time of day. Its associated value must be a home-redshift-configuration record, as shown below.

A typical configuration, where we manually specify the latitude and longitude, might look like this:

(service home-redshift-service-type
          (location-provider 'manual)
          (latitude 35.81)    ;northern hemisphere
          (longitude -0.80))) ;west of Greenwich
Data Type: home-redshift-configuration

Available home-redshift-configuration fields are:

redshift (default: redshift) (type: file-like)

Redshift package to use.

location-provider (default: geoclue2) (type: symbol)

Geolocation provider—'manual or 'geoclue2. In the former case, you must also specify the latitude and longitude fields so Redshift can determine daytime at your place. In the latter case, the Geoclue system service must be running; it will be queried for location information.

adjustment-method (default: randr) (type: symbol)

Color adjustment method.

daytime-temperature (default: 6500) (type: integer)

Daytime color temperature (kelvins).

nighttime-temperature (default: 4500) (type: integer)

Nighttime color temperature (kelvins).

daytime-brightness (type: maybe-inexact-number)

Daytime screen brightness, between 0.1 and 1.0, or left unspecified.

nighttime-brightness (type: maybe-inexact-number)

Nighttime screen brightness, between 0.1 and 1.0, or left unspecified.

latitude (type: maybe-inexact-number)

Latitude, when location-provider is 'manual.

longitude (type: maybe-inexact-number)

Longitude, when location-provider is 'manual.

dawn-time (type: maybe-string)

Custom time for the transition from night to day in the morning—"HH:MM" format. When specified, solar elevation is not used to determine the daytime/nighttime period.

dusk-time (type: maybe-string)

Likewise, custom time for the transition from day to night in the evening.

extra-content (default: "") (type: raw-configuration-string)

Extra content appended as-is to the Redshift configuration file. Run man redshift for more information about the configuration file format.

Variable: home-dbus-service-type

This is the service type for running a session-specific D-Bus, for unprivileged applications that require D-Bus to be running.

Data Type: home-dbus-configuration

The configuration record for home-dbus-service-type.

dbus (default: dbus)

The package providing the /bin/dbus-daemon command.

Variable: home-unclutter-service-type

This is the service type for Unclutter, a program that runs on the background of an X11 session and detects when the X pointer hasn’t moved for a specified idle timeout, after which it hides the cursor so that you can focus on the text underneath. Its associated value must be a home-unclutter-configuration record, as shown below.

A typical configuration, where we manually specify the idle timeout (in seconds), might look like this:

(service home-unclutter-service-type
          (idle-timeout 2)))
Data Type: home-unclutter-configuration

The configuration record for home-unclutter-service-type.

unclutter (default: unclutter) (type: file-like)

Unclutter package to use.

idle-timeout (default: 5) (type: integer)

A timeout in seconds after which to hide cursor.

Variable: home-xmodmap-service-type

This is the service type for the xmodmap utility to modify keymaps and pointer button mappings under the Xorg display server. Its associated value must be a home-xmodmap-configuration record, as shown below.

The key-map field takes a list of objects, each of which is either a statement (a string) or an assignment (a pair of strings). As an example, the snippet below swaps around the Caps_Lock and the Control_L keys, by first removing the keysyms (on the right-hand side) from the corresponding modifier maps (on the left-hand side), re-assigning them by swapping each other out, and finally adding back the keysyms to the modifier maps.

(service home-xmodmap-service-type
          (key-map '(("remove Lock" . "Caps_Lock")
                     ("remove Control" . "Control_L")
                     ("keysym Control_L" . "Caps_Lock")
                     ("keysym Caps_Lock" . "Control_L")
                     ("add Lock" . "Caps_Lock")
                     ("add Control" . "Control_L")))))
Data Type: home-xmodmap-configuration

The configuration record for home-xmodmap-service-type. Its available fields are:

xmodmap (default: xmodmap) (type: file-like)

The xmodmap package to use.

key-map (default: '()) (type: list)

The list of expressions to be read by xmodmap on service startup.

Next: , Previous: , Up: Home Services   [Contents][Index]