2023-01-20 23:17:30 +01:00
|
|
|
#!/bin/sh
|
2023-03-08 13:56:18 +01:00
|
|
|
[ -z "$TERMINAL" ] && TERMINAL="st -e"
|
|
|
|
[ -z "$BROWSER" ] && BROWSER="xdg-open"
|
|
|
|
[ -z "$TORRENT" ] && TORRENT="qbittorrent"
|
2023-03-09 16:20:10 +01:00
|
|
|
[ -z "$HISTORY" ] && HISTORY="${XDG_CACHE_HOME:-$HOME/.cache/}/spmenu_run.hist"
|
2023-03-08 13:56:18 +01:00
|
|
|
|
|
|
|
path() { echo "$PATH" | tr ':' '\n' | uniq | sed 's#$#/#' | xargs ls -lu --time-style=+%s 2>&1 | awk '/^(-|l)/ { print $6, $7 }' | sort -rn | cut -d' ' -f 2 2>&1; }
|
2023-01-20 23:17:30 +01:00
|
|
|
|
2023-03-08 13:56:18 +01:00
|
|
|
# run spmenu and parse it
|
|
|
|
parse() {
|
2023-03-09 16:20:10 +01:00
|
|
|
dout="$(path | sed "s/\&/\&/g" | spmenu -im -H "$HISTORY" "$@")"
|
2023-01-20 23:17:30 +01:00
|
|
|
|
2023-03-24 15:58:36 +01:00
|
|
|
# parse
|
2023-03-08 13:56:18 +01:00
|
|
|
[ "$(printf '%c' "$dout")" = "#" ] && RUN_ARG="$TERMINAL"
|
2023-03-24 15:58:36 +01:00
|
|
|
[ "$(printf "$dout" | awk '{ print $1 }')" = "magnet" ] && "$TORRENT" "$(printf "$dout" | sed "s/magnet //")"
|
|
|
|
[ "$(printf "$dout" | awk '{ print $1 }')" = "www" ] && "$BROWSER" "$(printf "$dout" | sed "s/www //")"
|
2023-03-08 13:56:18 +01:00
|
|
|
|
|
|
|
# terminal
|
2023-03-24 15:58:36 +01:00
|
|
|
[ -z "$RUN_ARG" ] && \
|
|
|
|
printf "%s" "$dout" | sed "s/#//g" | ${SHELL:-"/bin/sh"} &
|
|
|
|
|
2023-03-08 13:56:18 +01:00
|
|
|
[ "$RUN_ARG" = "$TERMINAL" ] && $TERMINAL -e "$(printf "%s" "$dout" | sed "s/#//g")"; return
|
2023-01-20 23:17:30 +01:00
|
|
|
}
|
|
|
|
|
2023-03-08 13:56:18 +01:00
|
|
|
main() {
|
|
|
|
parse "$@"
|
|
|
|
rm -f "$HOME/.cache/spmenu_run"
|
|
|
|
}
|
2023-01-20 23:17:30 +01:00
|
|
|
|
2023-03-08 13:56:18 +01:00
|
|
|
main "$@"
|