guix-home-manager/doc/openbox.md

openbox.md

Openbox

Openbox is a simple window manager that lets you configure the appearance of windows, menus, shortcuts and autostarted programs. The (home openbox) module provides configuration options for openbox.

Main Configuration

Openbox is configured by using the openbox-home-type service type.

Scheme Procedure: openbox-home-type

The type of service that generates configuration files for openbox. Its value is an openbox-configuration object.

Data Type: openbox-configuration

Data type that represents the Openbox configuration. This data type has the following fields:

Example Configuration

(user-home
  openbox-home-type
  (openbox-configuration
    (autostart (local-file "files/autostart"))
    (menus
      (list
        (openbox-menu
          (id "apps-game-menu")
          (label "Games")
          (elements
            (list
              (openbox-element-execute
                (label "MineTest")
                (command (file-append minetest "/bin/minetest")))
              (openbox-element-execute
                (label "harmonist")
                (command (file-append harmonist "/bin/harmonist")))
              (openbox-element-execute
                (label "Xonotic")
                (command (file-append xonotic "/bin/xonotic"))))))))
          (root-elements
            (list
              (openbox-element-menu (id "apps-game-menu"))
              (openbox-element-execute
                (label "Terminal")
                (command (file-append xfce4-terminal "/bin/xfce4-terminal")))
              (openbox-element-execute
                (label "Icecat")
                (command (file-append icecat "/bin/icecat -P --no-remote")))
              (openbox-element-execute
                (label "File Manager")
                (command (file-append pcmanfm "/bin/pcmanfm")))))
          (rc (local-files "files/openbox-rc"))))

Menu Configuration

Menus in Openbox can be configured with the following data types:

Data Type: openbox-menu

This data type represents the content of a menu. This data type has the following fields:

Data Type: openbox-element-menu

This data type represents a menu, as an element of another menu. This data type has the following fields:

Data Type: openbox-element-execute

This data type represents a menu element that is something to execute when the user clicks on it. This data type has the following fields: