From 9a5393814be48ca2af0e44a91344c87d11513a15 Mon Sep 17 00:00:00 2001 From: Damian Perticone Date: Fri, 24 Jun 2022 20:01:14 +0100 Subject: desktop/durden: Added (desktop for arcan) Signed-off-by: Dave Woodfall Signed-off-by: Willy Sudiarto Raharjo --- desktop/durden/README | 109 +++++++++++++++++++++++++++++++++++++++ desktop/durden/durden.SlackBuild | 96 ++++++++++++++++++++++++++++++++++ desktop/durden/durden.info | 10 ++++ desktop/durden/slack-desc | 19 +++++++ 4 files changed, 234 insertions(+) create mode 100644 desktop/durden/README create mode 100644 desktop/durden/durden.SlackBuild create mode 100644 desktop/durden/durden.info create mode 100644 desktop/durden/slack-desc 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. diff --git a/desktop/durden/durden.SlackBuild b/desktop/durden/durden.SlackBuild new file mode 100644 index 0000000000..b412ebc434 --- /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 0000000000..8b6f01c575 --- /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 0000000000..d1550ac26e --- /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: -- cgit v1.2.3