#!/bin/bash rl_full="$(cat ~/.config/menu/*.runlist)" rl="$(echo "$rl_full" | cut -d' ' -f2-)" inp="$(echo "$rl" | sed 's/$/ /' | ~/.local/bin/menu/vertical.sh -p ">")" [ -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;; *) bash "$HOME/.local/bin/menu/run-$exectr.sh" "${inp_arr[@]}" || notify-send "Executor error" -a run.sh "exec: $exectr\nargs: ${inp_arr[@]}\ncode: $?" esac