Skip to content

Instantly share code, notes, and snippets.

@johnspackman
Created August 9, 2013 14:06
Show Gist options
  • Save johnspackman/6193853 to your computer and use it in GitHub Desktop.
Save johnspackman/6193853 to your computer and use it in GitHub Desktop.
shows a problem with node.js blessed keybaord handling (fixed in pull request)
var blessed = require('blessed');
// Create a screen object.
var screen = blessed.screen();
var list1 = blessed.list({
width: 50,
height: 10,
top: 1,
left: 1,
fg: 'blue',
border: {
type: 'line'
},
selectedBg: 'green',
keys: true,
vi: true
});
list1.setItems([
'one',
'two',
'three',
'four',
'five'
]);
list1.prepend(new blessed.Text({
left: 2,
content: ' My list1 '
}));
var list2 = blessed.list({
width: 50,
height: 10,
top: 2,
left: 10,
fg: 'blue',
border: {
type: 'line'
},
selectedBg: 'green',
keys: true,
vi: true
});
list2.setItems([
'six',
'seven',
'eight',
'nine',
'ten'
]);
list2.prepend(new blessed.Text({
left: 2,
content: ' My list2 '
}));
// Select the first item.
list1.select(0);
screen.key('q', function(ch, key) {
return process.exit(0);
});
screen.append(list1);
list1.focus();
screen.render();
var visible = false;
list1.key('a', function(ch, key) {
if (!visible) {
screen.append(list2);
list2.focus();
screen.render();
visible = true;
}
});
list2.key('b', function(ch, key) {
if (visible) {
screen.remove(list2);
screen.render();
visible = false;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment