#!/bin/sh set -e argv0="$0" error(){ printf "%s: %s\n" "$argv0" "$1" 1>&2 exit $2 } usage(){ set +x printf "\ Usage: %s [window manager] [action]\n" "$argv0" 1>&2 exit 64 # sysexits(3) EX_USAGE } [ -n "$2" ] \ || usage # sysexits(3) EX_OSERR [ -n "$HOME" ] \ || error "No \$HOME environment variable set. This is very bad." 71 if [ -z "$DISPLAYM_CONFIG" ]; then [ -z "$XDG_CONFIG_HOME" ] \ && DISPLAYM_CONFIG="$HOME/.displaym" \ || DISPLAYM_CONFIG="$XDG_CONFIG_HOME/displaym" fi export DISPLAYM_CONFIG [ -e "$DISPLAYM_CONFIG" ] && ! [ -d "$DISPLAYM_CONFIG" ] \ && bak "$DISPLAYM_CONFIG" \ || true [ -d "$DISPLAYM_CONFIG" ] \ || mkdir -p "$DISPLAYM_CONFIG" WM="$1"; export WM SCRIPT="$2" # with exported DISPLAYM_CONFIG and WM sh <"$DISPLAYM_CONFIG/$WM/$SCRIPT.sh"