diff --git a/defaults.inc b/defaults.inc index 3fc68e5..dbe9109 100755 --- a/defaults.inc +++ b/defaults.inc @@ -3,7 +3,7 @@ action="${1:-}" FOLDER='/opt/idssys/ta-proxmenu' -VERS='2026.7.26-2' +VERS='2026.7.26-3' noupdate=' ' diff --git a/proxmenu-scripts.sh b/proxmenu-scripts.sh index 2cd36a3..a64f6f5 100755 --- a/proxmenu-scripts.sh +++ b/proxmenu-scripts.sh @@ -1682,13 +1682,17 @@ SELECT_MENU() { local labels_name="$2" local values_name="$3" local allow_back="${4:-1}" + local allow_space="${5:-0}" + local initial_selected="${6:-0}" local -n labels_ref="$labels_name" local -n values_ref="$values_name" - local selected=0 + local selected="$initial_selected" local key local sequence local index + [[ "$selected" =~ ^[0-9]+$ ]] || selected=0 + (( selected < ${#labels_ref[@]} )) || selected=0 while true; do MENU_HEADER echo @@ -1704,12 +1708,18 @@ SELECT_MENU() { done echo - if (( allow_back == 1 )); then + if (( allow_back == 1 && allow_space == 1 )); then + echo " ↑/↓ Navigate Space Toggle Enter Select Number Quick Select ←/Esc/B Back Q Quit" + elif (( allow_back == 1 )); then echo " ↑/↓ Navigate Enter Select Number Quick Select ←/Esc/B Back Q Quit" + elif (( allow_space == 1 )); then + echo " ↑/↓ Navigate Space Toggle Enter Select Number Quick Select Q Quit" else echo " ↑/↓ Navigate Enter Select Number Quick Select Q Quit" fi + MENU_INPUT="" + MENU_SELECTED_INDEX="$selected" key="" if [[ "$UPDATE_STATUS" == "checking" ]]; then IFS= read -rsn1 -t 1 key || continue @@ -1718,12 +1728,23 @@ SELECT_MENU() { fi case "$key" in "") + MENU_INPUT="enter" MENU_SELECTION="${values_ref[$selected]}" return 0 ;; + " ") + if (( allow_space == 1 )); then + MENU_INPUT="space" + MENU_SELECTION="${values_ref[$selected]}" + return 0 + fi + ;; [1-9]) index=$((10#$key - 1)) if (( index < ${#values_ref[@]} )); then + selected="$index" + MENU_SELECTED_INDEX="$selected" + MENU_INPUT="number" MENU_SELECTION="${values_ref[$index]}" return 0 fi @@ -1907,6 +1928,7 @@ TAPM_POST_TOGGLE_FLAG() { TAPM_POST_CUSTOMIZE() { local -a labels local -a values + local selected_index=0 TAPM_POST_DEFAULT_SELECTIONS while true; do @@ -1928,7 +1950,12 @@ TAPM_POST_CUSTOMIZE() { utilities time panic limits journald logrotate memory network bbr pigz apt_network apply ) - SELECT_MENU "Customize TAPM Host Profile" labels values + SELECT_MENU "Customize TAPM Host Profile" labels values 1 1 \ + "$selected_index" + selected_index="$MENU_SELECTED_INDEX" + if [[ "$MENU_INPUT" == space && "$MENU_SELECTION" == apply ]]; then + continue + fi case "$MENU_SELECTION" in utilities) TAPM_POST_TOGGLE_FLAG TAPM_POST_DO_UTILITIES ;; time) TAPM_POST_TOGGLE_FLAG TAPM_POST_DO_TIME ;;