diff --git a/setup.sh b/setup.sh index f162a1a..020616c 100755 --- a/setup.sh +++ b/setup.sh @@ -383,21 +383,48 @@ while true; do mapfile -t SVCS < <(services_in_group "$CHOSEN_CAT") SELECTED=() if [ "$have_whiptail" = true ]; then + # listheight was a flat 14 regardless of category size — utilities + # alone has 35+ services, so anything past row 14 only reachable by + # scrolling, with no on-screen hint that more rows exist below the + # fold. Size it to the category instead, capped to what the actual + # terminal can show (tput lines, falling back to a conservative 24 + # for a non-terminal/unknown size) so this can't request a dialog + # taller than the screen. + local _term_lines _list_h _box_h + _term_lines="$(tput lines 2>/dev/null &1 1>&2 2>&3