Lua Other
Clone or download
Latest commit be451c3 Jul 19, 2018


Durden is a free (3-clause BSD) desktop environment for Arcan, thus it requires a working arcan installation, optionally set-up with compatible launch targets etc. See the Arcan repository and wiki for those details.

For detailed feature and use descriptions, please see the Durden-Web. The individual markdown pages are also accessible in the gh-pages branch of the durden repository.

Authors and Contact

Development is discussed on the IRC channel #arcan on the Freenode network (

2015-2018, Björn Ståhl


Durden is Licensed in the 3-clause BSD format that can be found in the licensing file.

The included terminal font, Hack-Bold is (c) Chris Simpkins and licensed under the Apache-2.0 license.

The included UI font, designosaur, is provided free (cc-by 3.0 attribution) by Archy Studio,

The included fallback font, Emoji-One, is provided free (cc-by 4.0 attribution) by


See the file for information on where/how to extend and modify.

Starting / Configuring

Make sure that arcan is built with support for builtin frameservers for terminal, decode, encode, remoting etc. else those features will be missing. Durden probes for available engine features and enables/disables access to these accordingly.

Install by adding or symlinking the durden subdirectory of the git repository to your home appl folder (/home/myuser/.arcan/appl/durden) or start arcan with an explicit path reference, e.g.

 arcan /home/myuser/path/to/durden/durden

Start arcan with the resource path set to whatever directory subtree you want to be able to access for assets when browsing for images, video etc.

e.g. arcan -p /home/myuser/stuff durden

There are numerous other ways for setting this up, see the Arcan wiki and manpages for configuration options. If you're "lucky" (linux, normal "no-X" VT, build dependencies fullfilled and KMS/GBM on) the entire process should land in something like:

 git clone
 git clone
 cd arcan/external/git; bash ./
 cd ../../ ; mkdir build ; cd build
 make -j 8
 ./arcan ../../durden/durden

If you are on a more limited platform, like raspberry pi, you can try the the -DVIDEO_PLATFORM=egl-gles -DAGP_PLATFORM=gles2 build, which should work with the proprietary drivers. You will also need to activate 'simple' display mode which deactivates some features:

 arcan_db add_appl_kv durden display_simple true

Note: the egl-dri video platforms are for running this as a dedicated desktop, if you just want to try things out, use -DVIDEO_PLATFORM=sdl instead. Some features when it comes to display management and input will behave differently, and you likely want to bind a key for enabling/disabling cursor locking.

Another option, if your drivers give you accelerated GL in X but not working KMS/DRI is to merely run arcan/durden with SDL as the video platform in fullscreen- mode and only application, essentially making X your "driver".

Default meta keys are META1: MENU and META2:RSHIFT, look into keybindings.lua for the currently mapped defaults. If you don't press any of the valid META + key bindings during the first n (20 or so) keypresses, it is assumed that your meta bindings are broken and you will be queried for new ones.

Quick! meta1+enter - now you should get a terminal window.

You should also make sure that meta1+g (unless rebound) gives you access to the global menu, and meta1+h gives you access to the target menu. You can view or modify the default keybindings in 'durden/keybindings.lua' or you can bind your own menu paths in global/input/bind/custom. This menu path will also show the currently custom bound keys.

Also try double-tapping meta-2 and you should see the titlebar change color. This indicates that all normal bindings are ignored and input is forwarded raw to the selected window. This is important for clients that need access to keys you have bound to various key combinations, like Xarcan-, QEmu, and so on.