aboutsummaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/durden/README109
-rw-r--r--desktop/durden/durden.SlackBuild96
-rw-r--r--desktop/durden/durden.info10
-rw-r--r--desktop/durden/slack-desc19
4 files changed, 234 insertions, 0 deletions
diff --git a/desktop/durden/README b/desktop/durden/README
new file mode 100644
index 000000000000..d1aaaa3e6d89
--- /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.
diff --git a/desktop/durden/durden.SlackBuild b/desktop/durden/durden.SlackBuild
new file mode 100644
index 000000000000..b412ebc4343c
--- /dev/null
+++ b/desktop/durden/durden.SlackBuild
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+# Slackware build script for durden
+
+# Copyright 2022 Damian Perticone, Berisso, Argentina
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=durden
+VERSION=${VERSION:-0.6.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+mkdir -p $PKG/usr/bin
+cp -a distr/durden $PKG/usr/bin/
+mkdir -p $PKG/usr/share/durden/durden
+cp -a durden/* /$PKG/usr/share/durden/durden
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG.md HACKING.md LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/desktop/durden/durden.info b/desktop/durden/durden.info
new file mode 100644
index 000000000000..8b6f01c57599
--- /dev/null
+++ b/desktop/durden/durden.info
@@ -0,0 +1,10 @@
+PRGNAM="durden"
+VERSION="0.6.1"
+HOMEPAGE="https://durden.arcan-fe.com"
+DOWNLOAD="https://github.com/letoram/durden/archive/0.6.1/durden-0.6.1.tar.gz"
+MD5SUM="9d9bacafe2d906cd8968c96317e61e67"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="arcan"
+MAINTAINER="Damian Perticone"
+EMAIL="mjolnirdam@gmail.com"
diff --git a/desktop/durden/slack-desc b/desktop/durden/slack-desc
new file mode 100644
index 000000000000..d1550ac26e40
--- /dev/null
+++ b/desktop/durden/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+durden: durden (desktop for arcan)
+durden:
+durden: Durden is a free (3-clause BSD) desktop environment for Arcan,
+durden: it requires a working arcan installation,
+durden:
+durden:
+durden:
+durden:
+durden:
+durden: Home: https://durden.arcan-fe.com
+durden: