Merge pull request 'chore: update .gitignore, remove tracked .pi-lens files, and sync pending changes' (#13) from chore/update-gitignore-and-changes into master
Some checks failed
Update Nix Packages with nix-update / nix-update (push) Failing after 3h9m59s

Reviewed-on: #13
This commit was merged in pull request #13.
This commit is contained in:
2026-04-17 12:12:29 +02:00
2 changed files with 31 additions and 1 deletions

1
.gitignore vendored
View File

@@ -44,3 +44,4 @@ flake.lock.bak
.sidecar-base .sidecar-base
.td-root .td-root
.pi-lens .pi-lens
.cache

View File

@@ -397,5 +397,34 @@ in
${concatStringsSep "\n" (map (arg: ''cmd+=( ${escapeShellArg arg} )'') cfg.wrapper.extraRunArgs)} ${concatStringsSep "\n" (map (arg: ''cmd+=( ${escapeShellArg arg} )'') cfg.wrapper.extraRunArgs)}
cmd+=( "$@" ) cmd+=( "$@" )
exec "''${cmd[@]}" # Reset terminal keyboard protocol modes that pi's TUI may have enabled.
# If pi crashes or is killed (OOM, SIGKILL, etc.), its cleanup handler
# never runs and the host terminal stays in Kitty keyboard protocol or
# xterm modifyOtherKeys mode. This causes all keystrokes to appear as
# raw escape sequences like ^[[99;5u (ctrl+c in CSI-u encoding).
#
# Try /dev/tty first (controlling terminal), fall back to stdout
# (connected through sudo to the user's Ghostty terminal).
cleanup_terminal() {
local output_dev=""
if [ -w /dev/tty ]; then
output_dev=/dev/tty
elif [ -w /dev/stdout ]; then
output_dev=/dev/stdout
fi
if [ -n "$output_dev" ]; then
# Disable Kitty keyboard protocol (pop all flags)
printf '\033[<u' > "$output_dev" 2>/dev/null || true
# Disable xterm modifyOtherKeys
printf '\033[>4;0m' > "$output_dev" 2>/dev/null || true
# Disable bracketed paste mode
printf '\033[?2004l' > "$output_dev" 2>/dev/null || true
# Restore cursor visibility
printf '\033[?25h' > "$output_dev" 2>/dev/null || true
fi
}
trap cleanup_terminal EXIT
# Run without exec so the EXIT trap fires after pi exits (normal or crash).
"''${cmd[@]}"
'' ''