]> git.proxmox.com Git - mirror_xterm.js.git/blobdiff - README.md
Add AUTHORS and AUTHORS generator script
[mirror_xterm.js.git] / README.md
index 4564ad726fc55798a5af0639fc5746644ced95c5..7c5ff60af06f4c27dfb9f536daa06f496f2ea5b5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,75 +1,76 @@
-# term.js
+# xterm.js
 
-A full xterm clone written in javascript. Used by
-[**tty.js**](https://github.com/chjj/tty.js).
+![xterm.js build status](https://api.travis-ci.org/sourcelair/xterm.js.svg)
 
-## Example
+Xterm.js is a full xterm clone, written in JavaScript.
 
-Server:
+It is used at [SourceLair](https://www.sourcelair.com/home) to help people develop their applications in their browsers.
 
-``` js
-var term = require('term.js');
-app.use(term.middleware());
-...
-```
+Xterm.js supplies a modular, event-based interface that lets developers build addons and themes on top of it.
+
+![xterm.js screenshot](xtermjs.png)
+
+## Browser Support
+
+Since xterm.js is typically implemented as a developer tool, only modern browsers are supported officially. Here is a list of the versions we aim to support: 
+
+- Chrome 48+
+- Edge 13+
+- Firefox 44+
+- Internet Explorer 11+
+- Opera 35+
+- Safari 8+
+
+xterm.js may work on earlier versions of the browsers but these are the browsers we strive to keep working.
+
+## Demo
 
-Client:
+To launch the demo simply run:
 
-``` js
-window.addEventListener('load', function() {
-  var socket = io.connect();
-  socket.on('connect', function() {
-    var term = new Terminal({
-      cols: 80,
-      rows: 24,
-      screenKeys: true
-    });
+```
+npm install
+npm start
+```
 
-    term.on('data', function(data) {
-      socket.emit('data', data);
-    });
+Then open http://0.0.0.0:3000 in a web browser (use http://127.0.0.1:3000 is running under Windows).
 
-    term.on('title', function(title) {
-      document.title = title;
-    });
+## Addons
 
-    term.open(document.body);
+Addons are JavaScript modules that attach functions to the `Terminal` prototype to extend its functionality. There are a handful available in the main repository in the `addons` directory, you can even write your own (though they may break when the internals of xterm.js change across versions).
 
-    term.write('\x1b[31mWelcome to term.js!\x1b[m\r\n');
+To use an addon, just include the JavaScript file after xterm.js and before the `Terminal` object has been instantiated. The function should then be exposed on the `Terminal` object:
 
-    socket.on('data', function(data) {
-      term.write(data);
-    });
+```html
+<script src="node_modules/src/xterm.js"></script>
+<script src="node_modules/addons/fit/fit.js"></script>
+```
 
-    socket.on('disconnect', function() {
-      term.destroy();
-    });
-  });
-}, false);
+```js
+var xterm = new Terminal();
+// init code...
+xterm.fit();
 ```
 
-## Tmux-like
+## Development and Contribution
+
+To contribute either code, documentation or issues to xterm.js please read the [Contributing document](CONTRIBUTING.md) before.
+
+The development of xterm.js does not require any special tool. All you need is an editor that supports JavaScript and a browser (if you would like to run the demo you will need Node.js to get all features).
+
+It is recommended though to use a development tool that uses xterm.js internally, to develop for xterm.js. [Eating our own dogfood](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) has been proved extremely beneficial for this project. Known tools that use xterm.js internally are:
+
+#### [SourceLair](https://www.sourcelair.com)
 
-While term.js has always supported copy/paste using the mouse, it now also
-supports several keyboard based solutions for copy/paste.
+Visit https://lair.io/sourcelair/xterm and follow the instructions. All development will happen in your browser.
 
-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.
+#### [Visual Studio Code](http://code.visualstudio.com/)
 
-`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.
+[Download Visual Studio Code](http://code.visualstudio.com/Download), clone xterm.js and you are all set.
 
-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.
+## License Agreement
 
-For mac users: consider `Ctrl` to be `Command/Apple` above.
+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.
 
-## License
+Copyright (c) 2014-2016, SourceLair, Private Company ([www.sourcelair.com](https://www.sourcelair.com/home)) (MIT License)
 
 Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)