@@ -41,10 +41,16 @@ const wrapWrite = (baseWrite: OutputWrite): OutputWrite =>
4141 return baseWrite ( chunk , encoding , cb )
4242}
4343
44- const disableMouseModes = ( ) : void => {
45- // Disable xterm/urxvt mouse tracking and "alternate scroll" mode (wheel -> arrow keys) .
44+ const disableTerminalInputModes = ( ) : void => {
45+ // Disable mouse/input modes that can leak across TUI < -> SSH transitions .
4646 process . stdout . write (
47- "\u001B[?1000l\u001B[?1002l\u001B[?1003l\u001B[?1005l\u001B[?1006l\u001B[?1015l\u001B[?1007l"
47+ "\u001B[0m" +
48+ "\u001B[?25h" +
49+ "\u001B[?1l" +
50+ "\u001B>" +
51+ "\u001B[?1000l\u001B[?1002l\u001B[?1003l\u001B[?1005l\u001B[?1006l\u001B[?1015l\u001B[?1007l" +
52+ "\u001B[?1004l\u001B[?2004l" +
53+ "\u001B[>4;0m\u001B[>4m\u001B[<u"
4854 )
4955}
5056
@@ -201,7 +207,7 @@ export const suspendTui = (): void => {
201207 if ( ! process . stdout . isTTY ) {
202208 return
203209 }
204- disableMouseModes ( )
210+ disableTerminalInputModes ( )
205211 if ( process . stdin . isTTY && typeof process . stdin . setRawMode === "function" ) {
206212 process . stdin . setRawMode ( false )
207213 }
@@ -226,13 +232,13 @@ export const resumeTui = (): void => {
226232 return
227233 }
228234 setStdoutMuted ( false )
229- disableMouseModes ( )
235+ disableTerminalInputModes ( )
230236 // Return to the alternate screen for Ink rendering.
231237 process . stdout . write ( "\u001B[?1049h\u001B[2J\u001B[H" )
232238 if ( process . stdin . isTTY && typeof process . stdin . setRawMode === "function" ) {
233239 process . stdin . setRawMode ( true )
234240 }
235- disableMouseModes ( )
241+ disableTerminalInputModes ( )
236242}
237243
238244export const leaveTui = ( ) : void => {
@@ -241,7 +247,7 @@ export const leaveTui = (): void => {
241247 }
242248 // Ensure we don't leave the terminal in a broken "mouse reporting" mode.
243249 setStdoutMuted ( false )
244- disableMouseModes ( )
250+ disableTerminalInputModes ( )
245251 // Restore the primary screen on exit without clearing it (keeps useful scrollback).
246252 process . stdout . write ( "\u001B[?1049l" )
247253 if ( process . stdin . isTTY && typeof process . stdin . setRawMode === "function" ) {
0 commit comments