fix some bugs, add multisel for spmenu_run
This commit is contained in:
parent
e7ecfd4114
commit
5aefbf249a
|
@ -281,7 +281,6 @@ void selectitem(Arg *arg) {
|
|||
for (int i = 0; i < sel_size; i++) {
|
||||
if (sel_index[i] != -1 && (!sel || sel->index != sel_index[i])) {
|
||||
puts(items[sel_index[i]].text);
|
||||
savehistory(items[sel_index[i]].text);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -165,6 +165,10 @@ int drawitemtext(struct item *item, int x, int y, int w) {
|
|||
memcpy(scm, scheme[SchemeItemNormPri], sizeof(scm));
|
||||
}
|
||||
|
||||
if (is_selected(item->index)) {
|
||||
memcpy(scm, scheme[SchemeItemSel], sizeof(scm));
|
||||
}
|
||||
|
||||
// don't color
|
||||
if (!coloritems) memcpy(scm, scheme[SchemeItemNorm1], sizeof(scm));
|
||||
}
|
||||
|
|
|
@ -277,8 +277,9 @@ EOF
|
|||
}
|
||||
|
||||
parse() {
|
||||
sout="$(path | sed "s/\&/\&/g" | $RUNLAUNCHER "${rl_run[@]}")"
|
||||
path | sed "s/\&/\&/g" | $RUNLAUNCHER "${rl_run[@]}" > /tmp/spmenu_out
|
||||
|
||||
while read -r sout; do
|
||||
# parse
|
||||
case "${sout:0:1}" in
|
||||
"#") EXEC="term" ;;
|
||||
|
@ -304,6 +305,9 @@ parse() {
|
|||
# check for keywords
|
||||
printf "%s" "$sout" | grep -qE "$WEB_GREP" && EXEC=web
|
||||
printf "%s" "$sout" | grep -qE "$MAGNET_GREP" && EXEC=torrent
|
||||
|
||||
exec_cmd "$args"
|
||||
done < /tmp/spmenu_out
|
||||
}
|
||||
|
||||
exec_cmd() {
|
||||
|
@ -615,8 +619,9 @@ print_desktop_menu() {
|
|||
|
||||
HIDDEN_ENTRY_KEYWORDS="${HIDDEN_ENTRY_KEYWORDS:-NULL_ENTRY}"
|
||||
|
||||
menusel="$(print_desktop_list | uniq "${uniq_args[@]}" | sort "${sort_args[@]}" | grep -vE "$HIDDEN_ENTRY_KEYWORDS" | grep -E "$ENTRY_KEYWORDS" | $RUNLAUNCHER "${rl_desktop[@]}")"
|
||||
print_desktop_list | uniq "${uniq_args[@]}" | sort "${sort_args[@]}" | grep -vE "$HIDDEN_ENTRY_KEYWORDS" | grep -E "$ENTRY_KEYWORDS" | $RUNLAUNCHER "${rl_desktop[@]}" > /tmp/spmenu_out
|
||||
|
||||
while read -r menusel; do
|
||||
[ "$menusel" = "?" ] && print_desktop_help && print_desktop_menu
|
||||
command -v desktop_post_func > /dev/null && desktop_post_func "$menusel"
|
||||
[ -z "$menusel" ] && return 1 \
|
||||
|
@ -626,6 +631,7 @@ print_desktop_menu() {
|
|||
menusel="$(printf "%s" "$menusel" | sed "s/ -.*//")"
|
||||
|
||||
exec_program "$@"
|
||||
done < /tmp/spmenu_out; rm -f /tmp/spmenu_out
|
||||
}
|
||||
|
||||
prep_desktop() {
|
||||
|
@ -740,7 +746,6 @@ main() {
|
|||
case "$function" in
|
||||
"run")
|
||||
parse "$args"
|
||||
exec_cmd "$args"
|
||||
;;
|
||||
"fm") prepare_dirnav "$args"
|
||||
;;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
# spmenu test script
|
||||
|
||||
PREFIX="${PREFIX:-/usr}"
|
||||
|
|
Loading…
Reference in a new issue