Skip to content
application menu
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

A standalone application menu based on xdg and qt, notably for openbox, awesome, i3 and other window managers without a automatic xdg menu.

californium with default-theme and arc-icon-theme

Screenshot of californium


  • creates a main application menu automatically
  • creates the menu based on the freedesktop xdg specification
  • updates itself automatically for new installed applications
  • menu is easily customizable via the standard menu-files
  • based on QT and easily themable with qss files
  • supports transparency
  • easy to use with key and mouse-bindings

Get it

  • clone the repository with $ git clone


  • download as zip and extract it

Build it

californium uses clang as compiler, g++ as linker and make as build-tool.

To build californium open a terminal in the root folder of the repository and:

$ make


  • Qt5Xdg
  • Qt5Widgets
  • Qt5Gui
  • Qt5DBus
  • Qt5Core


A build californium is provided in data/usr/bin. It was build on my arch64 system.

Install it

To install californium open a terminal in the root folder of the repository and:

$ sudo make install

Configure it

californium will look for the following conf-files. The first one found will be used.


If none of these exists, it will create ~/.config/californium/californium.conf with default values:


Used config-files and theme-files are monitored and changes are applied automatically.

Predefined menu-file

sulfur provides a predefined menu-file and directory-files that work well with californium. To use an existing or new menu-file simply point to this menu-file in the conf-file.

Menu-files are typically placed in /etc/xdg/menus/. Directory-files are typically placed in /usr/share/desktop-directories.


In the default-conf the path to the theme is set to the default theme /usr/share/californium/themes/default/default.qss. You can simply change that path in the conf-file ie ~/.config/californium/californium.conf. Any url's in the qss may be relative to the path of the qss-file.

See for specific and for general reference.


Per default californium uses the global icon theme which is set via your desktop manager or via qt5ct.


Run it

californium provides the binary californium which starts a QT Application without a visible GUI, but with the application menu. It then listens to a specific DBus Signal to toggle this menu. The signal can be send with californium toggle, the menu pops up.

Start californium as background process:

$ californium &

Send signal to toggle/show menu:

$ californium toggle


To replace the build-in menu in openbox with californium, do this:


Add entry to ~/.config/openbox/autostart:

californium &

Mouse bindings

Find this part in ~/.config/openbox/rc.xml:

<context name="Root">
    <mousebind button="Right" action="Press">
        <action name="ShowMenu"><menu>root-menu</menu></action>

Change it to:

<context name="Root">
    <mousebind action="Press" button="Right">
        <action name="Execute">
            <command>californium toggle</command>

Key bindings

To add a keybind for ie Super-Key (windows key), add this to ~/.config/openbox/rc.xml:

    <keybind key="Super_L">
        <action name="Execute">
            <command>californium toggle</command>

See for reference.

Uninstall it

To uninstall californium open a terminal in the root folder of the repository and:

$ sudo make uninstall

Of course, you have to reset any settings ie in openbox too.


californium is inspired and based on the great work of the LXQt team. I really liked their new LXQt Desktop, especially the main menu plugin from their lxqt-panel repository. However, i'm using a openbox setup without a panel. So i created a simple standalone main menu based on the main menu plugin.

You can’t perform that action at this time.