74 lines
1.5 KiB
Bash
Executable file
74 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
# X11 utilities -- only usable under X11 sessions
|
|
|
|
[ "$XDG_SESSION_TYPE" = "x11" ] || {
|
|
echo "x: requires X11 session (current: ${XDG_SESSION_TYPE:-unknown})" >&2
|
|
exit 1
|
|
}
|
|
|
|
require() {
|
|
for cmd in "$@"; do
|
|
command -v "$cmd" >/dev/null 2>&1 || {
|
|
echo "x: missing dependency: $cmd" >&2
|
|
exit 1
|
|
}
|
|
done
|
|
}
|
|
|
|
cmd="$1"; shift
|
|
|
|
case "$cmd" in
|
|
setup)
|
|
require xrdb xset xmodmap xss-lock slock
|
|
xrdb -merge "$XDG_CONFIG_HOME"/X11/xresources."$THEME"
|
|
xset b off
|
|
xset m 0
|
|
xset r rate 300 50
|
|
xset s 300
|
|
xset dpms 420 540 720
|
|
xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap
|
|
xss-lock -- slock &
|
|
;;
|
|
bg)
|
|
require xrandr feh
|
|
randr="$(xrandr | rg ' connected ')"
|
|
mons="$(echo "$randr" | wc -l)"
|
|
wpdir="$HOME"/Pictures/wp
|
|
|
|
[ "$1" ] && bgone="$1" || bgone="$wpdir"/one/cliff.jpg
|
|
cmd="feh --no-fehbg --bg-fill $bgone"
|
|
|
|
if [ "$mons" = 2 ]; then
|
|
[ "$2" ] && bgtwo="$2" || bgtwo="$wpdir"/two/lilies.jpg
|
|
cmd="$cmd --bg-fill $bgtwo"
|
|
else
|
|
cmd="feh --no-fehbg --bg-fill $bgone"
|
|
fi
|
|
|
|
eval "$cmd"
|
|
;;
|
|
mon)
|
|
require xrandr
|
|
mons="$(xrandr | rg --no-config ' connected ' | awk '{ print $1 }')"
|
|
|
|
one="$(echo "$mons" | head -n 1)"
|
|
two="$(echo "$mons" | tail -n 1)"
|
|
case "$two" in
|
|
*None* | "$one")
|
|
unset two
|
|
;;
|
|
esac
|
|
|
|
xrandr --auto
|
|
|
|
xrandr --output "$one" --primary --mode 1920x1200 --scale 1x1 --set TearFree on --dpi 161.73
|
|
|
|
[ -z "$two" ] && exit
|
|
|
|
xrandr --output "$one" --pos 960x2160 --output "$two" --scale 1.5x1.5 --pos 0x0
|
|
;;
|
|
*)
|
|
echo "Usage: x {setup|bg|mon}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|