diff --git a/lib/core/sudo.sh b/lib/core/sudo.sh index 57b80b4..31011c6 100644 --- a/lib/core/sudo.sh +++ b/lib/core/sudo.sh @@ -66,11 +66,11 @@ _request_password() { printf "${PURPLE}${ICON_ARROW}${NC} Password: " > "$tty_path" - # Disable terminal echo to hide password input - stty -echo -icanon min 1 time 0 < "$tty_path" 2> /dev/null || true + # Disable terminal echo to hide password input (keep canonical mode for reliable input) + stty -echo < "$tty_path" 2> /dev/null || true IFS= read -r password < "$tty_path" || password="" # Restore terminal echo immediately - stty echo icanon < "$tty_path" 2> /dev/null || true + stty echo < "$tty_path" 2> /dev/null || true printf "\n" > "$tty_path" diff --git a/lib/uninstall/batch.sh b/lib/uninstall/batch.sh index bca31ea..7e914ac 100755 --- a/lib/uninstall/batch.sh +++ b/lib/uninstall/batch.sh @@ -104,7 +104,7 @@ remove_login_item() { # Remove from Login Items using index-based deletion (handles broken items) if [[ -n "$clean_name" ]]; then - osascript <<-EOF 2>/dev/null || true + osascript <<- EOF 2> /dev/null || true tell application "System Events" try set itemCount to count of login items @@ -123,8 +123,6 @@ remove_login_item() { fi } - - # Remove files (handles symlinks, optional sudo). remove_file_list() { local file_list="$1"