Parse the terminfo database
$ npm install --save terminfo
const terminfo = require('terminfo');
const xterm256 = terminfo('xterm-256color');
console.log(xterm256.enterStandoutMode + 'hello!' + xterm256.exitStandoutMode);
Parses the given terminal's information from the terminfo database.
Type: string
, optional
The terminal to lookup. If a terminal isn't supplied, defaults to process.env['TERM'] || 'dummy'
.
Returns a map of terminal capabilities for the given terminal
For example, the following is for the xterm-256color
terminal:
{
"path": "/usr/share/terminfo/78/xterm-256color",
"namesSize": 37,
"boolSize": 38,
"numCount": 15,
"offCount": 413,
"strSize": 1449,
"names": [
"xterm-256color",
"xterm with 256 colors"
],
"autoLeftMargin": false,
"autoRightMargin": true,
"noEscCtlc": false,
"ceolStandoutGlitch": false,
"eatNewlineGlitch": true,
"eraseOverstrike": false,
"genericType": false,
"hardCopy": false,
"hasMetaKey": true,
"hasStatusLine": false,
"insertNullGlitch": false,
"memoryAbove": false,
"memoryBelow": false,
"moveInsertMode": true,
"moveStandoutMode": true,
"overStrike": false,
"statusLineEscOk": false,
"destTabsMagicSmso": false,
"tildeGlitch": false,
"transparentUnderline": false,
"xonXoff": false,
"needsXonXoff": false,
"prtrSilent": true,
"hardCursor": false,
"nonRevRmcup": false,
"noPadChar": true,
"nonDestScrollRegion": false,
"canChange": true,
"backColorErase": true,
"hueLightnessSaturation": false,
"colAddrGlitch": false,
"crCancelsMicroMode": false,
"hasPrintWheel": false,
"rowAddrGlitch": false,
"semiAutoRightMargin": false,
"cpiChangesRes": false,
"lpiChangesRes": false,
"columns": 80,
"initTabs": 8,
"lines": 24,
"maxColors": 256,
"maxPairs": 32767,
"backTab": "\u001b[Z",
"bell": "\u0007",
"carriageReturn": "\r",
"changeScrollRegion": "\u001b[%i%p1%d;%p2%dr",
"clearAllTabs": "\u001b[3g",
"clearScreen": "\u001b[H\u001b[2J",
"clrEol": "\u001b[K",
"clrEos": "\u001b[J",
"columnAddress": "\u001b[%i%p1%dG",
"cursorAddress": "\u001b[%i%p1%d;%p2%dH",
"cursorDown": "\n",
"cursorHome": "\u001b[H",
"cursorInvisible": "\u001b[?25l",
"cursorLeft": "\b",
"cursorNormal": "\u001b[?12l\u001b[?25h",
"cursorRight": "\u001b[C",
"cursorUp": "\u001b[A",
"cursorVisible": "\u001b[?12;25h",
"deleteCharacter": "\u001b[P",
"deleteLine": "\u001b[M",
"enterAltCharsetMode": "\u001b(0",
"enterBlinkMode": "\u001b[5m",
"enterBoldMode": "\u001b[1m",
"enterCaMode": "\u001b[?1049h",
"enterInsertMode": "\u001b[4h",
"enterSecureMode": "\u001b[8m",
"enterReverseMode": "\u001b[7m",
"enterStandoutMode": "\u001b[7m",
"enterUnderlineMode": "\u001b[4m",
"eraseChars": "\u001b[%p1%dX",
"exitAltCharsetMode": "\u001b(B",
"exitAttributeMode": "\u001b(B\u001b[m",
"exitCaMode": "\u001b[?1049l",
"exitInsertMode": "\u001b[4l",
"exitStandoutMode": "\u001b[27m",
"exitUnderlineMode": "\u001b[24m",
"flashScreen": "\u001b[?5h$<100/>\u001b[?5l",
"init2String": "\u001b[!p\u001b[?3;4l\u001b[4l\u001b>",
"insertLine": "\u001b[L",
"keyBackspace": "\b",
"keyDc": "\u001b[3~",
"keyDown": "\u001bOB",
"keyF1": "\u001bOP",
"keyF10": "\u001b[21~",
"keyF2": "\u001bOQ",
"keyF3": "\u001bOR",
"keyF4": "\u001bOS",
"keyF5": "\u001b[15~",
"keyF6": "\u001b[17~",
"keyF7": "\u001b[18~",
"keyF8": "\u001b[19~",
"keyF9": "\u001b[20~",
"keyHome": "\u001bOH",
"keyIc": "\u001b[2~",
"keyLeft": "\u001bOD",
"keyNpage": "\u001b[6~",
"keyPpage": "\u001b[5~",
"keyRight": "\u001bOC",
"keySf": "\u001b[1;2B",
"keySr": "\u001b[1;2A",
"keyUp": "\u001bOA",
"keypadLocal": "\u001b[?1l\u001b>",
"keypadXmit": "\u001b[?1h\u001b=",
"metaOff": "\u001b[?1034l",
"metaOn": "\u001b[?1034h",
"parmDch": "\u001b[%p1%dP",
"parmDeleteLine": "\u001b[%p1%dM",
"parmDownCursor": "\u001b[%p1%dB",
"parmIch": "\u001b[%p1%d@",
"parmIndex": "\u001b[%p1%dS",
"parmInsertLine": "\u001b[%p1%dL",
"parmLeftCursor": "\u001b[%p1%dD",
"parmRightCursor": "\u001b[%p1%dC",
"parmRindex": "\u001b[%p1%dT",
"parmUpCursor": "\u001b[%p1%dA",
"printScreen": "\u001b[i",
"prtrOff": "\u001b[4i",
"prtrOn": "\u001b[5i",
"reset1String": "\u001bc",
"reset2String": "\u001b[!p\u001b[?3;4l\u001b[4l\u001b>",
"restoreCursor": "\u001b8",
"rowAddress": "\u001b[%i%p1%dd",
"saveCursor": "\u001b7",
"scrollForward": "\n",
"scrollReverse": "\u001bM",
"setAttributes": "%?%p9%t\u001b(0%e\u001b(B%;\u001b[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m",
"setTab": "\u001bH",
"tab": "\t",
"keyB2": "\u001bOE",
"acsChars": "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
"keyBtab": "\u001b[Z",
"enterAmMode": "\u001b[?7h",
"exitAmMode": "\u001b[?7l",
"keyEnd": "\u001bOF",
"keyEnter": "\u001bOM",
"keySdc": "\u001b[3;2~",
"keySend": "\u001b[1;2F",
"keyShome": "\u001b[1;2H",
"keySic": "\u001b[2;2~",
"keySleft": "\u001b[1;2D",
"keySnext": "\u001b[6;2~",
"keySprevious": "\u001b[5;2~",
"keySright": "\u001b[1;2C",
"keyF11": "\u001b[23~",
"keyF12": "\u001b[24~",
"keyF13": "\u001b[1;2P",
"keyF14": "\u001b[1;2Q",
"keyF15": "\u001b[1;2R",
"keyF16": "\u001b[1;2S",
"keyF17": "\u001b[15;2~",
"keyF18": "\u001b[17;2~",
"keyF19": "\u001b[18;2~",
"keyF20": "\u001b[19;2~",
"keyF21": "\u001b[20;2~",
"keyF22": "\u001b[21;2~",
"keyF23": "\u001b[23;2~",
"keyF24": "\u001b[24;2~",
"keyF25": "\u001b[1;5P",
"keyF26": "\u001b[1;5Q",
"keyF27": "\u001b[1;5R",
"keyF28": "\u001b[1;5S",
"keyF29": "\u001b[15;5~",
"keyF30": "\u001b[17;5~",
"keyF31": "\u001b[18;5~",
"keyF32": "\u001b[19;5~",
"keyF33": "\u001b[20;5~",
"keyF34": "\u001b[21;5~",
"keyF35": "\u001b[23;5~",
"keyF36": "\u001b[24;5~",
"keyF37": "\u001b[1;6P",
"keyF38": "\u001b[1;6Q",
"keyF39": "\u001b[1;6R",
"keyF40": "\u001b[1;6S",
"keyF41": "\u001b[15;6~",
"keyF42": "\u001b[17;6~",
"keyF43": "\u001b[18;6~",
"keyF44": "\u001b[19;6~",
"keyF45": "\u001b[20;6~",
"keyF46": "\u001b[21;6~",
"keyF47": "\u001b[23;6~",
"keyF48": "\u001b[24;6~",
"keyF49": "\u001b[1;3P",
"keyF50": "\u001b[1;3Q",
"keyF51": "\u001b[1;3R",
"keyF52": "\u001b[1;3S",
"keyF53": "\u001b[15;3~",
"keyF54": "\u001b[17;3~",
"keyF55": "\u001b[18;3~",
"keyF56": "\u001b[19;3~",
"keyF57": "\u001b[20;3~",
"keyF58": "\u001b[21;3~",
"keyF59": "\u001b[23;3~",
"keyF60": "\u001b[24;3~",
"keyF61": "\u001b[1;4P",
"keyF62": "\u001b[1;4Q",
"keyF63": "\u001b[1;4R",
"clrBol": "\u001b[1K",
"user6": "\u001b[%i%d;%dR",
"user7": "\u001b[6n",
"user8": "\u001b[?1;2c",
"user9": "\u001b[c",
"origPair": "\u001b[39;49m",
"initializeColor": "\u001b]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\u001b\\",
"keyMouse": "\u001b[M",
"setAForeground": "\u001b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
"setABackground": "\u001b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m"
}
MIT © Josh Junon