From ae171acb79c777da0c837ee0196ee1fdfecf1dbe Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Tue, 27 Jan 2026 18:44:40 -0800 Subject: [PATCH] Dont forget about action o for compression --- .../src/KittyGraphicsAddon.ts | 2 +- demo/server/server.ts | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/addons/addon-kitty-graphics/src/KittyGraphicsAddon.ts b/addons/addon-kitty-graphics/src/KittyGraphicsAddon.ts index 4ce0aa8a..670ec77e 100644 --- a/addons/addon-kitty-graphics/src/KittyGraphicsAddon.ts +++ b/addons/addon-kitty-graphics/src/KittyGraphicsAddon.ts @@ -86,8 +86,8 @@ export function parseKittyCommand(data: string): IKittyCommand { case 'c': cmd.columns = parseInt(value); break; case 'r': cmd.rows = parseInt(value); break; case 'm': cmd.more = parseInt(value); break; - case 'q': cmd.quiet = parseInt(value); break; case 'o': cmd.compression = value; break; + case 'q': cmd.quiet = parseInt(value); break; } } diff --git a/demo/server/server.ts b/demo/server/server.ts index 0f4a79b3..ef98eb84 100644 --- a/demo/server/server.ts +++ b/demo/server/server.ts @@ -65,6 +65,8 @@ function startServer(): void { } const cols = parseInt(req.query.cols); const rows = parseInt(req.query.rows); + const pixelWidth = typeof req.query.pixelWidth === 'string' ? parseInt(req.query.pixelWidth) : 0; + const pixelHeight = typeof req.query.pixelHeight === 'string' ? parseInt(req.query.pixelHeight) : 0; const isWindows = process.platform === 'win32'; const term = pty.spawn(isWindows ? 'powershell.exe' : 'bash', [], { name: 'xterm-256color', @@ -77,7 +79,13 @@ function startServer(): void { useConptyDll: isWindows, }); - console.log('Created terminal with PID: ' + term.pid); + // Set pixel dimensions immediately after spawn (pty.spawn doesn't support them) + if (pixelWidth > 0 && pixelHeight > 0) { + term.resize(cols, rows, { width: pixelWidth, height: pixelHeight }); + console.log('Created terminal with PID: ' + term.pid + ' (' + cols + 'x' + rows + ', ' + pixelWidth + 'px x ' + pixelHeight + 'px)'); + } else { + console.log('Created terminal with PID: ' + term.pid); + } terminals[term.pid] = term; unsentOutput[term.pid] = ''; temporaryDisposable[term.pid] = term.onData(function(data) { @@ -95,10 +103,17 @@ function startServer(): void { const pid = parseInt(req.params.pid); const cols = parseInt(req.query.cols); const rows = parseInt(req.query.rows); + const pixelWidth = typeof req.query.pixelWidth === 'string' ? parseInt(req.query.pixelWidth) : 0; + const pixelHeight = typeof req.query.pixelHeight === 'string' ? parseInt(req.query.pixelHeight) : 0; const term = terminals[pid]; - term.resize(cols, rows); - console.log('Resized terminal ' + pid + ' to ' + cols + ' cols and ' + rows + ' rows.'); + if (pixelWidth > 0 && pixelHeight > 0) { + term.resize(cols, rows, { width: pixelWidth, height: pixelHeight }); + console.log('Resized terminal ' + pid + ' to ' + cols + ' cols, ' + rows + ' rows, ' + pixelWidth + 'px x ' + pixelHeight + 'px'); + } else { + term.resize(cols, rows); + console.log('Resized terminal ' + pid + ' to ' + cols + ' cols and ' + rows + ' rows.'); + } res.end(); });