mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 14:10:37 -07:00
82 lines
1.8 KiB
TypeScript
82 lines
1.8 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { writeToStdout } from './stdio.js';
|
|
|
|
/**
|
|
* ANSI escape codes for disabling mouse tracking.
|
|
*/
|
|
export function disableMouseTracking() {
|
|
writeToStdout(
|
|
[
|
|
'\x1b[?1000l', // Normal tracking
|
|
'\x1b[?1003l', // Any-event tracking
|
|
'\x1b[?1015l', // urxvt extended mouse mode
|
|
'\x1b[?1006l', // SGR-style mouse tracking
|
|
'\x1b[?1002l', // Button-event tracking
|
|
].join(''),
|
|
);
|
|
}
|
|
|
|
export function enableMouseEvents() {
|
|
// Enable mouse tracking with SGR format
|
|
// ?1002h = button event tracking (clicks + drags + scroll wheel)
|
|
// ?1006h = SGR extended mouse mode (better coordinate handling)
|
|
writeToStdout('\u001b[?1002h\u001b[?1006h');
|
|
}
|
|
|
|
export function disableMouseEvents() {
|
|
// Disable mouse tracking with SGR format
|
|
writeToStdout('\u001b[?1006l\u001b[?1002l');
|
|
}
|
|
|
|
export function enableKittyKeyboardProtocol() {
|
|
writeToStdout('\x1b[>1u');
|
|
}
|
|
|
|
export function disableKittyKeyboardProtocol() {
|
|
writeToStdout('\x1b[<u');
|
|
}
|
|
|
|
export function enableModifyOtherKeys() {
|
|
writeToStdout('\x1b[>4;2m');
|
|
}
|
|
|
|
export function disableModifyOtherKeys() {
|
|
writeToStdout('\x1b[>4;0m');
|
|
}
|
|
|
|
export function enableBracketedPasteMode() {
|
|
writeToStdout('\x1b[?2004h');
|
|
}
|
|
|
|
export function disableBracketedPasteMode() {
|
|
writeToStdout('\x1b[?2004l');
|
|
}
|
|
|
|
export function enableLineWrapping() {
|
|
writeToStdout('\x1b[?7h');
|
|
}
|
|
|
|
export function disableLineWrapping() {
|
|
writeToStdout('\x1b[?7l');
|
|
}
|
|
|
|
export function enterAlternateScreen() {
|
|
writeToStdout('\x1b[?1049h');
|
|
}
|
|
|
|
export function exitAlternateScreen() {
|
|
writeToStdout('\x1b[?1049l');
|
|
}
|
|
|
|
export function shouldEnterAlternateScreen(
|
|
useAlternateBuffer: boolean,
|
|
isScreenReader: boolean,
|
|
): boolean {
|
|
return useAlternateBuffer && !isScreenReader;
|
|
}
|