#!/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