#!/bin/sh THEMES_PATH=~/.config/bspwm/themes CURRENT_THEME_PATH="${THEMES_PATH}/theme.sh" DEFAULT_THEME=lupan-dark FONT='Iosevka Slab Light-12' BAR_FONT="${FONT};5" CMD="$1" shift # Determine current theme THEME= if [ -e "${CURRENT_THEME_PATH}" ]; then . "${CURRENT_THEME_PATH}" fi THEME="${THEME:-$DEFAULT_THEME}" list_themes() { ( cd "$THEMES_PATH" && ls *-theme.sh | sed 's/-theme.sh$//' | sort ) } # Select next or named theme if [ "$CMD" = theme -a "$1" = --next ]; then NEXT=$(list_themes | grep -A 1 "^${THEME}\$" | tail -1) if [ "$NEXT" = "$THEME" ]; then THEME=$(list_themes | head -1) elif [ "$THEME" = "" ]; then THEME="${DEFAULT_THEME}" else THEME="$NEXT" fi elif [ "$CMD" = theme -a "$1" != --set ]; then if [ "$1" = "" ]; then exit elif [ -e "${THEMES_PATH}/$1-theme.sh" ]; then THEME="$1" else THEME="${DEFAULT_THEME}" fi fi # Load theme THEME_PATH="${THEMES_PATH}/${THEME}-theme.sh" if [ -e "${THEME_PATH}" ]; then . "${THEME_PATH}" else . "${THEMES_PATH}/${DEFAULT_THEME}-theme.sh" fi dmenu() { command dmenu -nb ${BAR_BG} -nf ${BAR_FG} -sb ${BAR_ACTIVE} -sf ${BAR_FG} -fn "${FONT}" $@ } dmenu_run() { command dmenu_run -nb ${BAR_BG} -nf ${BAR_FG} -sb ${BAR_ACTIVE} -sf ${BAR_FG} -fn "${FONT}" $@ } set_theme() { echo "THEME=${THEME}" > "${CURRENT_THEME_PATH}" xrdb -merge <