mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
@@ -1877,7 +1877,7 @@ export class InputHandler extends Disposable implements IInputHandler {
|
||||
* | 7 | Auto-wrap Mode (DECAWM). | #Y |
|
||||
* | 8 | Auto-repeat Keys (DECARM). Always on. | #N |
|
||||
* | 9 | X10 xterm mouse protocol. | #Y |
|
||||
* | 12 | Start Blinking Cursor. | #Y |
|
||||
* | 12 | Start Blinking Cursor. | #P[Requires the allowSetCursorBlink quirk option enabled.] |
|
||||
* | 25 | Show Cursor (DECTCEM). | #Y |
|
||||
* | 45 | Reverse wrap-around. | #Y |
|
||||
* | 47 | Use Alternate Screen Buffer. | #Y |
|
||||
@@ -1930,7 +1930,9 @@ export class InputHandler extends Disposable implements IInputHandler {
|
||||
this._coreService.decPrivateModes.wraparound = true;
|
||||
break;
|
||||
case 12:
|
||||
this._optionsService.options.cursorBlink = true;
|
||||
if (this._optionsService.rawOptions.quirks?.allowSetCursorBlink) {
|
||||
this._optionsService.options.cursorBlink = true;
|
||||
}
|
||||
break;
|
||||
case 45:
|
||||
this._coreService.decPrivateModes.reverseWraparound = true;
|
||||
@@ -2125,7 +2127,7 @@ export class InputHandler extends Disposable implements IInputHandler {
|
||||
* | 7 | No Wraparound Mode (DECAWM). | #Y |
|
||||
* | 8 | No Auto-repeat Keys (DECARM). | #N |
|
||||
* | 9 | Don't send Mouse X & Y on button press. | #Y |
|
||||
* | 12 | Stop Blinking Cursor. | #Y |
|
||||
* | 12 | Stop Blinking Cursor. | #P[Requires the allowSetCursorBlink quirk option enabled.] |
|
||||
* | 25 | Hide Cursor (DECTCEM). | #Y |
|
||||
* | 45 | No reverse wrap-around. | #Y |
|
||||
* | 47 | Use Normal Screen Buffer. | #Y |
|
||||
@@ -2171,7 +2173,9 @@ export class InputHandler extends Disposable implements IInputHandler {
|
||||
this._coreService.decPrivateModes.wraparound = false;
|
||||
break;
|
||||
case 12:
|
||||
this._optionsService.options.cursorBlink = false;
|
||||
if (this._optionsService.rawOptions.quirks?.allowSetCursorBlink) {
|
||||
this._optionsService.options.cursorBlink = false;
|
||||
}
|
||||
break;
|
||||
case 45:
|
||||
this._coreService.decPrivateModes.reverseWraparound = false;
|
||||
|
||||
@@ -53,7 +53,8 @@ export const DEFAULT_OPTIONS: Readonly<Required<ITerminalOptions>> = {
|
||||
convertEol: false,
|
||||
termName: 'xterm',
|
||||
cancelEvents: false,
|
||||
overviewRuler: {}
|
||||
overviewRuler: {},
|
||||
quirks: {}
|
||||
};
|
||||
|
||||
const FONT_WEIGHT_OPTIONS: Extract<FontWeight, string>[] = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];
|
||||
|
||||
@@ -262,6 +262,7 @@ export interface ITerminalOptions {
|
||||
windowOptions?: IWindowOptions;
|
||||
wordSeparator?: string;
|
||||
overviewRuler?: IOverviewRulerOptions;
|
||||
quirks?: ITerminalQuirks;
|
||||
scrollOnEraseInDisplay?: boolean;
|
||||
|
||||
[key: string]: any;
|
||||
@@ -300,6 +301,10 @@ export interface ITheme {
|
||||
extendedAnsi?: string[];
|
||||
}
|
||||
|
||||
export interface ITerminalQuirks {
|
||||
allowSetCursorBlink?: boolean;
|
||||
}
|
||||
|
||||
export const IOscLinkService = createDecorator<IOscLinkService>('OscLinkService');
|
||||
export interface IOscLinkService {
|
||||
serviceBrand: undefined;
|
||||
|
||||
Vendored
+21
@@ -197,6 +197,12 @@ declare module '@xterm/xterm' {
|
||||
*/
|
||||
minimumContrastRatio?: number;
|
||||
|
||||
/**
|
||||
* Control various quirks features that are either non-standard or standard
|
||||
* in but generally rejected in modern terminals.
|
||||
*/
|
||||
quirks?: ITerminalQuirks;
|
||||
|
||||
/**
|
||||
* Whether to reflow the line containing the cursor when the terminal is
|
||||
* resized. Defaults to false, because shells usually handle this
|
||||
@@ -406,6 +412,21 @@ declare module '@xterm/xterm' {
|
||||
extendedAnsi?: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Control various quirks features that are either non-standard or standard
|
||||
* in but generally rejected in modern terminals.
|
||||
*/
|
||||
export interface ITerminalQuirks {
|
||||
/**
|
||||
* Enables support for DECSET 12 and DECRST 12 which controls cursor blink.
|
||||
* Programs such as `vim` may use this to set the cursor blink state but may
|
||||
* not change it back when exiting. Generally the terminal emulator should
|
||||
* be in control of whether the cursor blinks or not and the application in
|
||||
* modern terminals. Note that DECRQM works regardless of this option.
|
||||
*/
|
||||
allowSetCursorBlink?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pty information for Windows.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user