📢 The package has been migrated to the @xterm
scope (#4860, #4861) via @Tyriar. This means that the old xterm
and xterm-*
packages are now deprecated and will no longer be maintained. This was done mainly for security reasons to remove ambiguity around the package names and to prevent potential typosquatting attacks.
Please use the new scoped @xterm/*
packages.
📦 API
input(data: string, wasUserInput?: boolean): void
API to emit an input event fromTerminal
(#4953) via @arencoskundocumentOverride
option to help multi-window app support (#4844) via @TyriarattachCustomWheelEventHandler
API to allow embedders to intercept wheel events (#4913, #4915) via @Tyriar, @tisilent
🐞 Bug fixes
- Selection is now synchronized between the accessibility tree and the main selection model (#4742) via @JasonXJ
- Fix and add integration tests for inactive selection drawing (#4763, #4808) via @tisilent
- Fix a possible exception when disposing
Terminal
(#4776, #4785) via @Tyriar - Fix handling of invisible characters in the DOM renderer (#4762) via @tisilent
- Improve reliability of playwright tests across browsers (#4777) via @Tyriar
- Fix inverse minimum contrast ratio edge cases (#4778) via @Tyriar
- Fix regression in forced mouse selection handling (#4783) via @Tyriar
- Always render cursor above selection in the DOM renderer (#4786) via @Tyriar
- Get voice over to announce terminal output consistently (#4789) via @meganrogge
- Use
isCursorInitialized
correctly in the DOM renderer (#4798) via @tisilent - Move WidthCache measurment container to the helper element (#4807) via @mofux
- Fix DOM renderer showing selection overflowing its container (#4815, #4837) via @tisilent
- Don't re-render after parse if the viewport did not change (#4820) via @Tyriar
- Send correct code for ctrl+alt+backspace (#4839) via @JasonXJ
- Make xterm.js multi-window aware (#4846, #4912) via @Tyriar, @jeanp413
- Fix node process check for node v21+ (#4851) via @davidfiala
- Improve non-browser usage of xterm package by preferring globalThis over self (#4856) via @alan-agius4
- Fix crosshair cursor not working (#4921) via @Tyriar
- Fix exception in render service (#4954) via @Tyriar
- Fix spacing when measuring before element is attached to the DOM (#4973) via @Tyriar
📝 Documentation and internal improvements
- New default text metrics measure strategy (#4929) via @Tyriar. This should improve general performance and also some cases where characters would be cut off.
- The addon repository package.jsons now point at the correct URL (#4795) via @ujjwalpandey922
- Upgrade from es6 target to es2021 (#4743) via @Tyriar
- Set up shared playwright tests for the DOM and canvas renderers (#4768, #4770) via @Tyriar
- Add Edge as a debug target (#4782) via @Tyriar
- Fix server debugging target (#4784) via @Tyriar
- Tweak worker use in playwright tests (#4787) via @Tyriar
- Remove noisy trace calls (#4796, #4919) via @Tyriar
- Remove duplicate overviewRulerWidth from demo (#4803) via @tisilent
- Clean up setCellFromCodePOint internal API (#4825) via @PerBothner
- Update node-pty (#4832) via @Tyriar
- Have addons implement their API so it's checked at compile time (#4847) via @tisilent
- Fix image addon build (#4862) via @Tyriar
- Remove testing on node v16 (#4866) via @silamon
- Help embedders avoid memory leaks by unsetting options on dispose (#4910) via @Tyriar
- Improve structure of link implementation (#4924) via @Tyriar
- Refactor color handling code and add tests (#4927) via @Tyriar
- Update eslint and eslint-plugin-jsdoc (#4930) via @PerBothner
- Ignore out/ dirs in eslint (#4931) via @Tyriar
⚠️ Deprecations
- The old
xterm
andxterm-*
packages are now deprecated and will no longer be maintained. Please use the new scoped@xterm/*
packages instead.
📥 Addons
@xterm/addon-canvas
- Add underline variants to make underline patterns appear correctly (#4703) via @tisilent
- Improve rendering of dashed underline patterns (#4874) via @tisilent
- Support blending of selection and background/powerline characters and the selection (#4920, #4950) via @Tyriar
@xterm/addon-unicode-graphemes
This is a new experimental addon that provides support for grapheme clusters in the terminal (#4519) via @PerBothner
@xterm/addon-search
- Bring back
clearActiveDecoration
API implementation (#4827) via @Tyriar - Re-search when options change (#4831) via @tisilent
@xterm/addon-serialize
- Fix hex color serialization (#4833) via @arcanis
- Add ability to serialize via a range (#4877) via @Tyriar
@xterm/addon-webgl
- Add underline variants to make underline patterns appear correctly (#4703) via @tisilent
- Improve rendering of dashed underline patterns (#4874) via @tisilent
- Fix inactive cursor rendering (#4801) via @tisilent
- Allow addon to work on legacy versions of Safari when webgl2 is explicitly enabled (#4836) via @xiaoxiaobt
- Support blending of selection and background/powerline characters and the selection (#4920, #4950) via @Tyriar
@xterm/addon-web-links
- Fix url parsing for urls with percentage sign (#4937) via @szymonkaliski
- Fix uppercase url parsing (#4965) via @jerch
🤝 Compatible addon versions
Addon | Version |
---|---|
@xterm/addon-attach
| 0.10.0
|
@xterm/addon-canvas
| 0.6.0
|
@xterm/addon-fit
| 0.9.0
|
@xterm/addon-image
| 0.7.0
|
@xterm/addon-ligatures
| 0.8.0
|
@xterm/addon-search
| 0.14.0
|
@xterm/addon-serialize
| 0.12.0
|
@xterm/addon-unicode-graphemes
| 0.2.0
|
@xterm/addon-unicode11
| 0.7.0
|
@xterm/addon-web-links
| 0.10.0
|
@xterm/addon-webgl
| 0.17.0
|