42 lines
746 B
Bash
Executable File
42 lines
746 B
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
set -eu
|
|
|
|
readonly LAYOUTS_DIR="${HOME}/.screenlayout"
|
|
|
|
|
|
if [ ! -d "${LAYOUTS_DIR}" ]; then
|
|
mkdir "${LAYOUTS_DIR}"
|
|
fi
|
|
|
|
cmd_list() {
|
|
find "$LAYOUTS_DIR" -type f,l -exec basename {} \;
|
|
}
|
|
|
|
cmd_wallpaper() {
|
|
readonly wallpapers="${HOME}/.wallpaper"
|
|
feh --no-fehbg --bg-scale "$(find "${wallpapers}" | shuf -n 1)"
|
|
}
|
|
|
|
cmd_load() {
|
|
if [ -z "${1:-}" ]; then
|
|
"${LAYOUTS_DIR}/default"
|
|
else
|
|
"${LAYOUTS_DIR}/${1}"
|
|
fi
|
|
cmd_wallpaper
|
|
}
|
|
|
|
cmd_help () {
|
|
echo "slm (ls|load|wallpaper)" >&2
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
ls) shift; cmd_list "$@" ;;
|
|
load) shift; cmd_load "$@" ;;
|
|
wallpaper) shift; cmd_wallpaper "$@" ;;
|
|
*) shift; cmd_help "$@" ;;
|
|
esac
|
|
exit 0 |