Import and export between multiple terminal colour scheme formats
Many templates are sourced from the Base16-Builder.
Colors are handled using Colr.
npm install termcolors
Use the -i
and -o
flags to set the input and output formats. Pipe the input
data into stdin.
Missing colors will be automatically replaced with the default colors.
Reading from one file and writing to another:
$ termcolors -i xresources -o json < ~/.Xresources > output.json
Reading from xrdb
output, and writing to stdout:
$ xrdb -q | termcolors -i xresources -o text
var fs = require('fs');
var termcolors = require('termcolors');
var xresources = fs.readFileSync('~/.Xresources', 'utf8');
var colors = termcolors.xresources.import(xresources);
var iterm = termcolors.iterm.export(colors);
fs.writeFile('~/config.itermcolors', iterm);
Note: only a select few formats support importing.
Chrome Secure Shell
chromeshell
- Export
Gnome
gnome
- Export
Guake
guake
- Export
iTerm
iterm
- Import
- Export
JSON
json
- Import
- Export
Konsole
konsole
- Export
Linux console
linux
- Export
MinTTY
mintty
- Export
Putty
putty
- Export
Simple Terminal
st
- Export
Terminal.app
terminalapp
- Import (experimental)
- Export
Terminator
terminator
- Export
Termite
termite
- Import
- Export
Plain Text
text
- Export
Textmate / Sublime Text
textmate
- Export
XFCE4 Terminal
xfce
- Export
Xresources
xresources
- Import
- Export
Templates use doT.js.
Check the templates
folder for some examples.
Usage:
termcolors.export(template, [transformer])
- template (string)
- transformer (function)
The transformer is an optional function that is passed the colors input into the template and can transform them for use in the template.
This is useful so that you don't have to use the tinycolor
Example Without Converter:
var template = 'body { background {{=c.background.hexString()}}; }'
var cssTemplate = termcolors.export(template);
Example With Converter:
var template = 'body { background: {{=c.background}}; }'
var toHex = function (colors) {
return {
background: colors.background.hexString();
}
};
var cssTemplate = termcolors.export(template, toHex);
Example With Lodash Mapping:
var _ = require('lodash');
var template = 'body { background: {{=c.background}}; }'
var toHex = _.partialRight(_.mapValues, function (color) {
return color.hexString();
});
var cssTemplate = termcolors.export(template, toHex);