Skip to content

Releases: xtermjs/xterm.js

2.4.0

08 Mar 10:08
b1619e4
Compare
Choose a tag to compare

In xterm.js 2.4 we are introducing a great new feature, improvements and fixes!

First off, let's start with what's new!

🆕 WebLinks

Now xterm.js will detect and WebLinks in the terminal's buffer and convert them to a elements, which you can click to navigate to them (all link elements open in a new browser tab by default).

image

For more information on this take a look a the corresponding Pull Request: #538.

☣️ Experimental

The new built-in WebLinks mechanism is not just for "web links". We exposed a few experimental APIs that let you match custom link formats (e.g. local file paths) to make this suit your needs better. For more information take a look at the corresponding Pull Request: #538.

TIP: You can even register multiple link matchers and assign priorities.

🆕 Add-on API

Xterm.js now has a public API for importing and using it's add-ons. Check it out at http://xtermjs.org/docs/.

Improvements and fixes

  • Send more accurate mouse coordinates (#556)
  • Hide the internal CharMeasure element from assistive technologies (#557)
  • Fix demo on Windows (#569 and #584)
  • Make blink animation work even with non-white colored cursors (#545)
  • Stop fit add-on from crashing, with a non-existent parent element (#544)
  • Fix "Autowrap Mode" after "Soft Terminal reset" (#541)
  • Introduce testing with jsdom as part of the WebLinks feature (#571)

🆓 Bonus: Coverage stats via coveralls.io

OK, that's nothing special but now we can be easily aware about the testing coverage status of the repository and easily make sure to improve this rate as time passes: #565.

2.3.2

19 Feb 20:18
8fd4426
Compare
Choose a tag to compare

Fixed an issue where the terminal was the wrong size initially #539

2.3.1

09 Feb 01:53
639a2fd
Compare
Choose a tag to compare

Fixed an issue on IE (#533), thanks @vincentwoo!

2.3.0

08 Feb 22:30
8dd11f5
Compare
Choose a tag to compare

Xterm.js 2.3.0 is a big release with a lot of goodies, and some huge strides in performance. This gif demonstrates v2.2.0 vs 2.3.0:

xterm-js-2 3 0-v2

Performance improvements

  • A circular list is now used to manage the buffer, so any new rows that come in once the buffer is full will override rows. This reduces the time spent allocating space for arrays and garbage collecting (#422).
  • Significantly reduce the amount of times the viewport is redrawn and use an animation frame to prevent skipping frames (#438).
  • Introduced a new experimental option useFlowControl which will send the newly implemented XOFF and XON to the pty process to make sure it doesn't get too far ahead of xterm.js (#447). This makes sending signals to the running process far more responsive and prevents lock ups. Note that this option is disabled by default because the popular oh-my-zsh overrides ^S and ^Q by default (see #513).
  • Refactor the parser for performance (#462).
  • Remove comments from the build artifacts (#485).

Features

  • Make alt+/ on Mac skip words (#417).
  • Add a disableStdin option that will completely disable all input handling (#453).
  • Add a tabStopWidth option to customize the size of tabs (#497)
  • Support flow control (^S for XOFF, ^Q for XOFF) (#447).
  • Support setting cursor style CSI control sequence (eg. \e[3 q for blinking underline) (#492).
  • Support British, Dutch, Finnish, French, French Canadian, German, Italian, Norwegian/Danish, Spanish, Swedish and Swiss VT100 character sets (#499).

Bug fixes

  • Immediately synchronize the scroll bar when the alt buffer is switched in (#431).
  • Size wide characters to exactly 2 character widths (#440).
  • Apply scrollback and cursorBlink options immediately after the setOption call (#477, #479)
  • Don't drop the selection when only a modifier key is pressed (#482).
  • Fixed the scroll bar state breaking when resizing an invisible terminal (#495).
  • Fixed tab stops not being refreshed correctly after a resize, this made the output of ls wrap incorrectly sometimes (#498).
  • Align several control sequence behavior to act like xterm, see the issue for more details (#500).
  • Fix exception when setting scroll region and calling eraseLeft/eraseRight (#514, #520).
  • Fix issue when resizing hidden terminals with the fit addon (#525)

Internal improvements

  • The migration to TypeScript is coming along nicely with the renderer, parser and majority of the input handling code being converted. tslint is also now run in continuous integration (#411).
  • npm script and package.json improvements (#419, #402)
  • Improved the docker image (#403).
  • Use gulp as the build system (#435).
  • Make the demo support Windows (#442).
  • Fix many of the xterm tests (#500).
  • Bundle top level js and json files in npm so xterm.js can be built after installing from npm (#502).

2.2.3

15 Dec 22:00
ef407ae
Compare
Choose a tag to compare

📢 Fixes issues with missing files in npm release after 2.2.2 (#414).

Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.

  • 📢 Started migrating the code base to TypeScript (#296, #353, #355, #370, #371, #372, #383, #392)
  • Added ttyd to real-world uses 🎉 (#347)
  • Documentation improvements for the open, scroll and title events (#351)
  • Implemented the ^\ string terminator (#377)
  • Further improvements in the scroll back feature introduced in 2.1.0 (#379, #367)
  • Cleaned up license declaration in the documentation (#388)
  • Fixed browser jumping issues when focusing on xterm (#391)

Bugfixes from 2.2.0

  • Checkout addons in dist/addons (b76b2d0)
  • Fix requiring xterm.js with Browserify and SystemJS when installed via npm (#398)
  • Fix missing CSS files in npm release of xterm.js (#416)

Full list of patches from 2.1.0 to 2.2.3

2.2.2

15 Dec 17:26
8a146b5
Compare
Choose a tag to compare

📢 Fixes issues with requiring xterm.js with Browserify and SystemJS after 2.2, when installed via NPM (#397, #412).

This was fixed in #398 by pointing the main field of package.json to the lib directory, which is ignored by Git, but published to NPM.

Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.

  • 📢 Started migrating the code base to TypeScript (#296, #353, #355, #370, #371, #372, #383, #392)
  • Added ttyd to real-world uses 🎉 (#347)
  • Documentation improvements for the open, scroll and title events (#351)
  • Implemented the ^\ string terminator (#377)
  • Further improvements in the scroll back feature introduced in 2.1.0 (#379, #367)
  • Cleaned up license declaration in the documentation (#388)
  • Fixed browser jumping issues when focusing on xterm (#391)

Bugfixes from 2.2.0

  • Checkout addons in dist/addons (b76b2d0)
  • Fix requiring xterm.js with Browserify and SystemJS when installed via npm (#398)

Full list of patches from 2.1.0 to 2.2.2

2.2.1

08 Dec 19:45
60a59be
Compare
Choose a tag to compare

📢 ⚠️ PSA: Addons are now placed in the dist/addons, instead of addons. Please update the path you use to load add-ons in your applications accordingly 🙂 .

Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.

  • 📢 Started migrating the code base to TypeScript (#296, #353, #355, #370, #371, #372, #383, #392)
  • Added ttyd to real-world uses 🎉 (#347)
  • Documentation improvements for the open, scroll and title events (#351)
  • Implemented the ^\ string terminator (#377)
  • Further improvements in the scroll back feature introduced in 2.1.0 (#379, #367)
  • Cleaned up license declaration in the documentation (#388)
  • Fixed browser jumping issues when focusing on xterm (#391)

Bugfixes from 2.2.0

  • Checkout addons in dist/addons (b76b2d0)

Full list of patches from 2.1.0 to 2.2.1

2.2.0

08 Dec 19:41
cd70d29
Compare
Choose a tag to compare

Xterm.js 2.2.0 is a generally uneventful release, except for the fact that we started 📢 migrating the code base to TypeScript.

  • 📢 Started migrating the code base to TypeScript (#296, #353, #355, #370, #371, #372, #383, #392)
  • Added ttyd to real-world uses 🎉 (#347)
  • Documentation improvements for the open, scroll and title events (#351)
  • Implemented the ^\ string terminator (#377)
  • Further improvements in the scroll back feature introduced in 2.1.0 (#379, #367)
  • Cleaned up license declaration in the documentation (#388)
  • Fixed browser jumping issues when focusing on xterm (#391)

Full list of patches from 2.1.0 to 2.2.0

2.1.0

08 Nov 23:08
521d7db
Compare
Choose a tag to compare
  • 🆕 Scroll API (#308)
  • 🆕 Terminado addon (#303)
  • Multiple IME improvements (#323, #320, #301, #299)
  • Stop scrolling when output is being rendered and viewport is scrolled up (#336)
  • Fix addon loading (#304)
  • Documented Terminal constructor (#321)
  • Add main field in bower.json (#337)
  • Fix right-click copy and paste in Mozilla and IE (#342, #345)
  • Fix right-click error when no selection exists (#332)
  • Fix paste in IE (#334)
  • FIx copy in IE (#339)

2.0.1

03 Oct 13:02
76a890a
Compare
Choose a tag to compare

🎉 We are excited to announce new major release: 2.0 🎉

Official announcement: http://xtermjs.org/blog/articles/2016-10-03-xtermjs-2.0

Major changes

⚠️ API breakages

  • Xterm.js should be loaded from the dist directory, where the built files reside, instead of src, where the unbuilt modules reside

Updates

Bugfixes from 2.0.0

  • Checkout built files into repository (5ce522a)

Full list of patches