123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #!/usr/bin/env node
- /**
- * multiplex.js
- * https://github.com/chjj/blessed
- * Copyright (c) 2013-2015, Christopher Jeffrey (MIT License)
- * A terminal multiplexer created by blessed.
- */
- process.title = 'multiplex.js';
- var blessed = require('blessed')
- , screen;
- screen = blessed.screen({
- smartCSR: true,
- log: process.env.HOME + '/blessed-terminal.log',
- fullUnicode: true,
- dockBorders: true,
- ignoreDockContrast: true
- });
- var topleft = blessed.terminal({
- parent: screen,
- cursor: 'line',
- cursorBlink: true,
- screenKeys: false,
- label: ' multiplex.js ',
- left: 0,
- top: 0,
- width: '50%',
- height: '50%',
- border: 'line',
- style: {
- fg: 'default',
- bg: 'default',
- focus: {
- border: {
- fg: 'green'
- }
- }
- }
- });
- topleft.pty.on('data', function(data) {
- screen.log(JSON.stringify(data));
- });
- var topright = blessed.terminal({
- parent: screen,
- cursor: 'block',
- cursorBlink: true,
- screenKeys: false,
- label: ' multiplex.js ',
- left: '50%-1',
- top: 0,
- width: '50%+1',
- height: '50%',
- border: 'line',
- style: {
- fg: 'red',
- bg: 'black',
- focus: {
- border: {
- fg: 'green'
- }
- }
- }
- });
- var bottomleft = blessed.terminal({
- parent: screen,
- cursor: 'block',
- cursorBlink: true,
- screenKeys: false,
- label: ' multiplex.js ',
- left: 0,
- top: '50%-1',
- width: '50%',
- height: '50%+1',
- border: 'line',
- style: {
- fg: 'default',
- bg: 'default',
- focus: {
- border: {
- fg: 'green'
- }
- }
- }
- });
- var bottomright = blessed.terminal({
- parent: screen,
- cursor: 'block',
- cursorBlink: true,
- screenKeys: false,
- label: ' multiplex.js ',
- left: '50%-1',
- top: '50%-1',
- width: '50%+1',
- height: '50%+1',
- border: 'line',
- style: {
- fg: 'default',
- bg: 'default',
- focus: {
- border: {
- fg: 'green'
- }
- }
- }
- });
- [topleft, topright, bottomleft, bottomright].forEach(function(term) {
- term.enableDrag(function(mouse) {
- return !!mouse.ctrl;
- });
- term.on('title', function(title) {
- screen.title = title;
- term.setLabel(' ' + title + ' ');
- screen.render();
- });
- term.on('click', term.focus.bind(term));
- });
- topleft.focus();
- screen.key('C-q', function() {
- topleft.kill();
- topright.kill();
- bottomleft.kill();
- bottomright.kill();
- return screen.destroy();
- });
- screen.program.key('S-tab', function() {
- screen.focusNext();
- screen.render();
- });
- screen.render();
|