chjj/term.js

A terminal written in javascript.

JavaScript

1,564

93 commits

updated Mar 25, 2024

See the code

README

term.js

A full xterm clone written in javascript. Used by tty.js.

⚠️ This project is no longer maintained ⚠️. For a maintained fork take a look at sourcelair/xterm.js.

Example

Server:

var term = require('term.js');
app.use(term.middleware());
...

Client:

window.addEventListener('load', function() {
  var socket = io.connect();
  socket.on('connect', function() {
    var term = new Terminal({
      cols: 80,
      rows: 24,
      screenKeys: true
    });

    term.on('data', function(data) {
      socket.emit('data', data);
    });

    term.on('title', function(title) {
      document.title = title;
    });

    term.open(document.body);

    term.write('\x1b[31mWelcome to term.js!\x1b[m\r\n');

    socket.on('data', function(data) {
      term.write(data);
    });

    socket.on('disconnect', function() {
      term.destroy();
    });
  });
}, false);

Tmux-like

While term.js has always supported copy/paste using the mouse, it now also supports several keyboard based solutions for copy/paste.

term.js includes a tmux-like selection mode (enabled with the screenKeys option) which makes copy and paste very simple. Ctrl-A enters prefix mode, from here you can type Ctrl-V to paste. Press [ in prefix mode to enter selection mode. To select text press v (or space) to enter visual mode, use hjkl to navigate and create a selection, and press Ctrl-C to copy.

Ctrl-C (in visual mode) and Ctrl-V (in prefix mode) should work in any OS for copy and paste. y (in visual mode) will work for copying only on X11 systems. It will copy to the primary selection.

Note: Ctrl-C will also work in prefix mode for the regular OS/browser selection. If you want to select text with your mouse and copy it to the clipboard, simply select the text and type Ctrl-A + Ctrl-C, and Ctrl-A + Ctrl-V to paste it.

For mac users: consider Ctrl to be Command/Apple above.

Contribution and License Agreement

If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. </legalese>

License

Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)

chjj/term.js

A terminal written in javascript.

JavaScript

1,564

93 commits

updated Mar 25, 2024

See the code

README

term.js

A full xterm clone written in javascript. Used by tty.js.

⚠️ This project is no longer maintained ⚠️. For a maintained fork take a look at sourcelair/xterm.js.

Example

Server:

var term = require('term.js');
app.use(term.middleware());
...

Client:

window.addEventListener('load', function() {
  var socket = io.connect();
  socket.on('connect', function() {
    var term = new Terminal({
      cols: 80,
      rows: 24,
      screenKeys: true
    });

    term.on('data', function(data) {
      socket.emit('data', data);
    });

    term.on('title', function(title) {
      document.title = title;
    });

    term.open(document.body);

    term.write('\x1b[31mWelcome to term.js!\x1b[m\r\n');

    socket.on('data', function(data) {
      term.write(data);
    });

    socket.on('disconnect', function() {
      term.destroy();
    });
  });
}, false);

Tmux-like

While term.js has always supported copy/paste using the mouse, it now also supports several keyboard based solutions for copy/paste.

term.js includes a tmux-like selection mode (enabled with the screenKeys option) which makes copy and paste very simple. Ctrl-A enters prefix mode, from here you can type Ctrl-V to paste. Press [ in prefix mode to enter selection mode. To select text press v (or space) to enter visual mode, use hjkl to navigate and create a selection, and press Ctrl-C to copy.

Ctrl-C (in visual mode) and Ctrl-V (in prefix mode) should work in any OS for copy and paste. y (in visual mode) will work for copying only on X11 systems. It will copy to the primary selection.

Note: Ctrl-C will also work in prefix mode for the regular OS/browser selection. If you want to select text with your mouse and copy it to the clipboard, simply select the text and type Ctrl-A + Ctrl-C, and Ctrl-A + Ctrl-V to paste it.

For mac users: consider Ctrl to be Command/Apple above.

Contribution and License Agreement

If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. </legalese>

License

Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)

Project health

Overall

2.5/10

Maintained

0/10

Code review

3/10
OpenSSF Scorecard

Latest release

0.0.7 · Aug 24, 2015

Releases this year

0

Significant stargazers

Brian E. Granger

1,075 followers · starred Jul 2014

William Stein

502 followers · starred Jun 2017

Jon Ludlam

117 followers · starred Oct 2013

Bobby Powers

158 followers · starred Apr 2016