feat(electrobun): upgrade to xterm 6.0.0, disable incompatible Canvas/Image addons (DOM renderer)

This commit is contained in:
Hibryda 2026-03-23 16:22:30 +01:00
parent adee8e03c5
commit b506dfc39a
3 changed files with 22 additions and 32 deletions

View file

@ -1,9 +1,12 @@
<script lang="ts">
import { onMount, onDestroy } from 'svelte';
import { Terminal } from '@xterm/xterm';
import { CanvasAddon } from '@xterm/addon-canvas';
import { FitAddon } from '@xterm/addon-fit';
import { ImageAddon } from '@xterm/addon-image';
// CanvasAddon and ImageAddon require xterm ^5.0.0 — disabled on xterm 6.x
// xterm 6's default renderer uses DOM (no Canvas/WebGL needed)
// TODO: re-enable when @xterm/addon-canvas releases a 6.x-compatible version
// import { CanvasAddon } from '@xterm/addon-canvas';
// import { ImageAddon } from '@xterm/addon-image';
import { appRpc } from './rpc.ts';
import { fontStore } from './font-store.svelte.ts';
import { themeStore } from './theme-store.svelte.ts';
@ -55,21 +58,8 @@
const openAndLoadAddons = () => {
term.open(termEl);
// Now safe to load addons that depend on _linkifier2
try { term.loadAddon(new CanvasAddon()); } catch (e) {
console.warn('[Terminal] CanvasAddon failed:', (e as Error).message);
}
try {
term.loadAddon(new ImageAddon({
enableSizeReports: true,
sixelSupport: true,
sixelScrolling: true,
sixelPaletteLimit: 4096,
showPlaceholder: true,
}));
} catch (e) {
console.warn('[Terminal] ImageAddon failed:', (e as Error).message);
}
// xterm 6.x uses improved default DOM renderer — no Canvas/WebGL addon needed
// Re-enable when addons release 6.x-compatible versions
fitAddon.fit();
};