summaryrefslogtreecommitdiffstats
path: root/desktop/durden/README
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/durden/README')
-rw-r--r--desktop/durden/README109
1 files changed, 109 insertions, 0 deletions
diff --git a/desktop/durden/README b/desktop/durden/README
new file mode 100644
index 0000000000..d1aaaa3e6d
--- /dev/null
+++ b/desktop/durden/README
@@ -0,0 +1,109 @@
+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.
+
+STARTING:
+
+distr/durden is a support script that can be run to try and
+automatically set everything up and start. It also takes care of
+relaunch/recover if the program terminated abnormally.
+
+If you have a system that uses the "XDG" set of directories, the script
+will build the directory tree in XDG_DATA_HOME/arcan, otherwise it will
+use $HOME/.arcan. To help debug issues, you can create a 'logs' folder
+in that directory and both engine output, Lua crash dumps and
+frameserver execution will be stored there.
+
+CONFIGURATION (RUNTIME)
+
+Most changes, from visuals to window management behavior and input
+device actions, can be done from within durden and the UI itself using
+the menu HUD. By default, this is accessed from META1+G for (global) and
+META1+T for current window (target).
+
+All actions in durden are mapped into a huge virtual filesystem tree.
+Keybindings, UI buttons etc. are all simply paths within this
+filesystem.
+
+These are covered in much more detail on the webpage, but the ones you
+might want to take extra note of is:
+
+ /global/input/bind/custom
+ /global/system/shutdown/yes
+ /global/open/terminal
+ /global/input/keyboard/maps/bind_sym
+ /global/input/keyboard/maps/bind_utf8
+
+Another thing to note is that at startup, after a crash or keyboard
+plug event, a fallback helper is activated. This triggers after a
+number of keypresses that does not activate a valid keybinding. It will
+then query for re-binding key functions,
+(meta keys, global menu, menu navigation) as a means for recovering from
+a broken or unknown keyboard.
+
+You can also reach most paths with a mouse by right- clicking on the
+active workspace indicator on the statusbar.
+
+CONFIGURATION (MANUAL)
+
+There are four ways of configuring durden without using the UI:
+
+1.The arcan_db tool
+
+This works offline (without durden running) and only after first
+successful run. All current settings are stored in a database.
+This can be viewed, and changed, like this:
+
+ arcan_db show_appl durden
+ arcan_db add_appl_kv durden my_key
+
+Or clear all settings and revert to defaults on the next run:
+
+ arcan_db drop_appl durden
+
+This is also used to control which programs (targets) and sets of
+arguments (configuration) durden is allowed to run.
+This restriction is a safety/security measure. Something like:
+
+ arcan_db add_target test BINARY /usr/bin/test arg1
+ arcan_db add_config test default arg2 arg3
+
+Would be added to /global/open/target/test
+
+2.Files
+
+The default settings used on an empty database is found in:
+
+ durden/config.lua
+
+You can also control what is being run at startup in:
+
+ durden/autorun.lua
+
+The first time durden is run, the following script will be run:
+
+ durden/firstrun.lua
+
+Advanced input device configuration is in durden/devmaps for the various
+categories of devices.
+
+3.Controls
+
+Everything can be accessed and controlled (while running) using a domain
+socket.
+This is enabled through the (global/settings/system/control=name) path.
+
+If enabled, it will appear in durden/ipc/name.
+You can use the socat tool to interact with it and control everything as
+if using input in the UI directly.
+
+The commands accepted by this socket is any of
+(ls, readdir, eval, read, write, exec) to navigate the menu tree, as
+well as a 'monitor' command which lets you monitor subsystem activity.
+
+There is also a 'MONITOR' command that lets you monitor one or several
+subsystems.
+
+There is also a tool in arcan that can be built and run, arcan_cfgfs,
+which allows the control socket to be mounted and treated like a
+filesystem.