dotfiles/scripts/menu/menu
2025-09-20 17:41:35 -06:00

104 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
MENU_BACKEND="${MENU_BACKEND:-menu_bemenu}"
# Configuration
font="JetbrainsMono Medium"
font_size="12"
col_white="#ebdbb2" # White
col_sb="#7fbbb3" # Selected background
col_sf="#1e2326" # Selected foreground
col_nb="#1e2326" # Normal background
col_nf="#374145" # Normal foreground
_help() {
printf "Usage: menu [run/dmenu/pass] [prompt]\nDefault backend: %s\n" "$MENU_BACKEND"
}
menu_bemenu() {
bemenu$BRUN \
--no-exec \
-i \
-c \
-l 10 \
-W 0.4 \
-B 2 \
-H 30 \
--cw 1 \
--tb $col_sb \
--tf $col_sf \
--fb $col_nb \
--ff $col_nf \
--cb $col_nb \
--cf $col_white \
--nb $col_nb \
--nf $col_nf \
--hb $col_sb \
--hf $col_sf \
--ab $col_nb \
--af $col_nf \
--bdr $col_sb \
--fn "$font $font_size" \
-p "$PROMPT" \
$BPASS
}
menu_dmenu() {
dmenu$DRUN \
-i \
-l 10 \
-nb $col_nb \
-nf $col_nf \
-sb $col_sb \
-sf $col_sf \
-fn "$font:size=$font_size" \
-p "$PROMPT" \
$DPASS
}
menu_tofi() {
tofi$TRUN \
--prompt-text "$PROMPT"
}
menu_fzf() {
fzf \
--cycle \
--reverse
}
menu_wofi() {
wofi $WRUN \
-i \
--prompt "$PROMPT" \
$WPASS
}
MODE="$1" PROMPT="$2"
case "$MODE" in
run)
BRUN="-run"
DRUN="_run"
TRUN="-run"
FRUN=""
WRUN="--show drun -I"
$MENU_BACKEND
;;
dmenu)
BRUN=""
DRUN=""
TRUN=""
FRUN=""
WRUN="--show dmenu"
$MENU_BACKEND
;;
pass)
BPASS="-x"
DPASS="-P"
WPASS="-P"
$MENU_BACKEND
;;
*)
_help
exit 0
;;
esac