workspace/arch-user/bin/bemenu/run.sh
2025-09-21 23:19:49 +00:00

23 lines
747 B
Bash
Executable File

#!/bin/bash
rl_full="$(cat "$HOME/.config/bemenu/"*.runlist)"
rl="$(echo "$rl_full" | cut -d' ' -f2-)"
inp="$(echo "$rl" | bemenu --prompt ">")"
[ -z "$inp" ] && exit 0
eval "inp_arr=($inp)"
exectr=float-sh-keep
while IFS= read -r line; do
if [[ "$inp" == "$line"* ]]; then
exectr="$(echo "$rl_full" | grep -F "$line" -m 1 | cut -d' ' -f1)"
fi
done <<< "$rl"
case "$exectr" in
exec) exec $inp;;
float-sh) exec alacritty msg create-window --class="term_float" --working-directory="$HOME" --command "$SHELL" -c "($inp)";;
float-sh-keep) exec alacritty msg create-window --class="term_float" --working-directory="$HOME" --command "($inp); read -n1";;
*) exec bash "$HOME/.local/bin/bemenu/run-$exectr.sh" "${inp_arr[@]}"
esac