UNPKG

skypager-repl

Version:
150 lines (133 loc) 2.75 kB
#!/usr/bin/env node 'use strict'; var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * 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 = void 0; 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((0, _stringify2.default)(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(); //# sourceMappingURL=index.js.map