From ebc0d83d8e384aeabf7a1967174f2b05ebede827 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 21 Dec 2025 04:58:45 -0800 Subject: [PATCH 1/2] Remove deprecated/unused fastScrollModifier --- typings/xterm.d.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 95b6ffcb..72d2b063 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -107,13 +107,6 @@ declare module '@xterm/xterm' { */ drawBoldTextInBrightColors?: boolean; - /** - * The modifier key hold to multiply scroll speed. - * @deprecated This option is no longer available and will always use alt. - * Setting this will be ignored. - */ - fastScrollModifier?: 'none' | 'alt' | 'ctrl' | 'shift'; - /** * The scroll speed multiplier used for fast scrolling when `Alt` is held. */ From 3571d1f51aa13b66a6a0f9eb850556682d69e02a Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 21 Dec 2025 05:01:15 -0800 Subject: [PATCH 2/2] Remove windowsMode in favor of windowsPty --- src/browser/Terminal.test.ts | 41 ------------------------------------ typings/xterm.d.ts | 19 ----------------- 2 files changed, 60 deletions(-) diff --git a/src/browser/Terminal.test.ts b/src/browser/Terminal.test.ts index b871058e..be5ac614 100644 --- a/src/browser/Terminal.test.ts +++ b/src/browser/Terminal.test.ts @@ -1079,47 +1079,6 @@ describe('Terminal', () => { assert.equal(windowsModeTerminal.buffer.lines.get(2)!.isWrapped, false); }); }); - describe('Windows Mode', () => { - it('should mark lines as wrapped when the line ends in a non-null character after a LF', async () => { - const data = [ - 'aaaaaaaaaa\n\r', // cannot wrap as it's the first - 'aaaaaaaaa\n\r', // wrapped (windows mode only) - 'aaaaaaaaa' // not wrapped - ]; - - const normalTerminal = new TestTerminal({ rows: 5, cols: 10, windowsMode: false }); - await normalTerminal.writeP(data.join('')); - assert.equal(normalTerminal.buffer.lines.get(0)!.isWrapped, false); - assert.equal(normalTerminal.buffer.lines.get(1)!.isWrapped, false); - assert.equal(normalTerminal.buffer.lines.get(2)!.isWrapped, false); - - const windowsModeTerminal = new TestTerminal({ rows: 5, cols: 10, windowsMode: true }); - await windowsModeTerminal.writeP(data.join('')); - assert.equal(windowsModeTerminal.buffer.lines.get(0)!.isWrapped, false); - assert.equal(windowsModeTerminal.buffer.lines.get(1)!.isWrapped, true, 'This line should wrap in Windows mode as the previous line ends in a non-null character'); - assert.equal(windowsModeTerminal.buffer.lines.get(2)!.isWrapped, false); - }); - - it('should mark lines as wrapped when the line ends in a non-null character after a CUP', async () => { - const data = [ - 'aaaaaaaaaa\x1b[2;1H', // cannot wrap as it's the first - 'aaaaaaaaa\x1b[3;1H', // wrapped (windows mode only) - 'aaaaaaaaa' // not wrapped - ]; - - const normalTerminal = new TestTerminal({ rows: 5, cols: 10, windowsMode: false }); - await normalTerminal.writeP(data.join('')); - assert.equal(normalTerminal.buffer.lines.get(0)!.isWrapped, false); - assert.equal(normalTerminal.buffer.lines.get(1)!.isWrapped, false); - assert.equal(normalTerminal.buffer.lines.get(2)!.isWrapped, false); - - const windowsModeTerminal = new TestTerminal({ rows: 5, cols: 10, windowsMode: true }); - await windowsModeTerminal.writeP(data.join('')); - assert.equal(windowsModeTerminal.buffer.lines.get(0)!.isWrapped, false); - assert.equal(windowsModeTerminal.buffer.lines.get(1)!.isWrapped, true, 'This line should wrap in Windows mode as the previous line ends in a non-null character'); - assert.equal(windowsModeTerminal.buffer.lines.get(2)!.isWrapped, false); - }); - }); it('convertEol setting', async () => { // not converting const termNotConverting = new TestTerminal({ cols: 15, rows: 10 }); diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 72d2b063..457f1612 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -284,25 +284,6 @@ declare module '@xterm/xterm' { */ theme?: ITheme; - /** - * Whether "Windows mode" is enabled. Because Windows backends winpty and - * conpty operate by doing line wrapping on their side, xterm.js does not - * have access to wrapped lines. When Windows mode is enabled the following - * changes will be in effect: - * - * - Reflow is disabled. - * - Lines are assumed to be wrapped if the last character of the line is - * not whitespace. - * - * When using conpty on Windows 11 version >= 21376, it is recommended to - * disable this because native text wrapping sequences are output correctly - * thanks to https://github.com/microsoft/terminal/issues/405 - * - * @deprecated Use {@link windowsPty}. This value will be ignored if - * windowsPty is set. - */ - windowsMode?: boolean; - /** * Compatibility information when the pty is known to be hosted on Windows. * Setting this will turn on certain heuristics/workarounds depending on the