terminal-menu

retro ansi terminal menus for serious 80s technicolor business

npm install terminal-menu
270 downloads in the last day
1 561 downloads in the last week
6 700 downloads in the last month

terminal-menu

retro ansi terminal menus for serious 80s technicolor business

terminal menu

example

var menu = require('../')({ width: 29, x: 4, y: 2 });
menu.reset();
menu.write('SERIOUS BUSINESS TERMINAL\n');
menu.write('-------------------------\n');

menu.add('ADD TRANSACTION INVOICE');
menu.add('BUSINESS INTELLIGENCE');
menu.add('ACCOUNTS PAYABLE');
menu.add('LEDGER BOOKINGS');
menu.add('INDICATOR CHART METRICS');
menu.add('BACKUP DATA TO FLOPPY DISK');
menu.add('RESTORE FROM FLOPPY DISK');
menu.add('EXIT');

menu.on('select', function (label) {
    menu.close();
    console.log('SELECTED: ' + label);
});
menu.createStream().pipe(process.stdout);

methods

var createMenu = require('terminal-menu')

var menu = createMenu(opts)

Create a menu with opts:

  • opts.width - menu width in columns
  • opts.x - top-left corner x offset, default: 1
  • opts.y - top-left corner y offset, default: 1
  • opts.fg - foreground color, default: 'white'
  • opts.bg - background color, default: 'blue'
  • opts.padding.left - left padding in columns
  • opts.padding.right - right padding in columns
  • opts.padding.top - top padding in rows
  • opts.padding.bottom - bottom padding in rows

The menu can be driven around with the arrow keys and j/k, vi-style. To quit out of the menu, hit ^C or q.

Create a new selectable menu item with the string label.

Write a message to the menu.

Return the stream to be piped to a terminal.

Reset the terminal, clearing all contents.

Unregister all listeners and put the terminal back to its original state.

install

With npm do:

npm install terminal-menu

license

MIT

npm loves you