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 procedure.

Scheme Procedure: (openbox-home config)

Generates configuration files for openbox, according to config, an openbox-configuration object.

Data Type: openbox-configuration

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

Example Configuration

(openbox-home
  (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: