46 lines
848 B
Bash
Executable File
46 lines
848 B
Bash
Executable File
#!/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"
|