🚀 Features
- Pixel perfect box drawing and block characters (#3416, #3428) via @meganrogge, @Tyriar
xterm-headless
is a new package available on npm that allows xterm to run in a headless mode within node.js (#3212, #3214, #3413, #3414, #3420, #3421) via @Tyriar, @joyceerhl- New strikethrough style support and underline support in the WebGL renderer (#3343, #3384, #3386, #3387) via @silamon, @Tyriar
- The scroll bar is now hidden when the scrollback option is set to 0 (#3398) via @Puneethnaik
📦 API
- The new readonly
modes
API exposes the terminal's internal modes (#3418) via @Tyriar. These are used for example in the xterm-addon-serialize to enable mode serialization.if (terminal.modes.applicationCursorKeysMode) { // DECCKM is enabled (CSI ? 1 h) }
🐞 Bug fixes
- Fix issue where scrollbar would be visible after clearing the scrollback with an escape sequence (#3372) via @Puneethnaik
- Fix cursor ghosting in canvas and webgl renderer when device pixel ratio is not 1 (#3392, #3393) via @Tyriar
- Fixed the cursor blink component not being property disposed of (#3403) via @Eugeny
- Remove role=document from terminal element (#3419) via @Tyriar
- Ensure underscore glyphs remain within the cell bounds (#3426) via @Tyriar
- Handle input from macOS and Windows emoji IMEs (#3429) via @Eugeny
- Properly handle dead keys and altgr (#3430, #3432, #3437) via @Eugeny
- Fix parser throughput regressions which should improve throughput approximately 2-3x (#3452) via @Tyriar
- Don't break the terminal when undefined is passed into the Terminal ctor explicitly (#3453) via @silamon
📝 Documentation and internal improvements
- The screen reader mode now gets updated at most once per second to avoid layout thrashing (#3399) via @pattch
- Fix some eslint errors in test code (#3415) via @Tyriar
- Improve demo usability by moving options into a side panel (#3439, #3447) via @simran916
- Use a common function to launch the test playwright browser (#3444) via @daiyam
- Allow running specific tests and support VS Code's mocha test explorer extension (#3445) via @daiyam
- Add a simple load test to the demo (#3451) via @Tyriar
- Reduce playwright test flakiness (#3458) via @Tyriar
- Switch the active unicode version in the demo when the unicode11 addon is activated/deactivated (#3462) via @anirudh1713
🎉 New real-world use cases
- HashiCorp Nomad (#3407) via @DingoEatingFuzz
- TermPair and gdbgui (#3409) via @cs01
📥 Addons
xterm-addon-ligatures
- Fix
navigator
typing issues (#3371) via @LabhanshAgrawal
xterm-addon-search
xterm-addon-serialize
- Support for node via xterm-headless (#3421) via @Tyriar
- Serializing terminal modes is now supported (#3418) via @Tyriar
- Add missing repository key to package.json (#3431) via @Tyriar
xterm-addon-unicode11
xterm-addon-webgl
- Fix an exception when disposing of the webgl addon (#3454) via @meganrogge
🤝 Compatible addon versions
xterm-addon-attach@0.6.0
xterm-addon-fit@0.5.0
xterm-addon-ligatures@0.5.1
xterm-addon-search@0.8.1
xterm-addon-serialize@0.6.0
xterm-addon-unicode11@0.3.0
xterm-addon-web-links@0.4.0
xterm-addon-webgl@0.11.2
🌐 Website
- Improve run on Linux instructions (xtermjs/xtermjs.org#152) via @Tyriar
- The website now has a new demo on the home page which shows off more of xterm.js' functionality (xtermjs/xtermjs.org#153, xtermjs/xtermjs.org#155, xtermjs/xtermjs.org#156, xtermjs/xtermjs.org#158) via @Tyriar