Awesome
TermColors
Import and export between multiple terminal colour scheme formats
Many templates are sourced from the Base16-Builder.
Colors are handled using Colr.
Installation
npm install termcolors
Terminal Usage
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
JS API Usage
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);
Supported Formats
Note: only a select few formats support importing.
Name | ID | Import | Export |
---|---|---|---|
Alacritty | alacritty | ✅ | ✅ |
Chrome Secure Shell | chromeshell | ✅ | |
Gnome | gnome | ✅ | |
Guake | guake | ✅ | |
iTerm | iterm | ✅ | ✅ |
JSON | json | ✅ | ✅ |
Kitty | kitty | ✅ | |
Konsole | konsole | ✅ | |
Linux Console | linux | ✅ | |
lxterminal | lxterminal | ✅ | |
MinTTY | mintty | ✅ | |
Putty | putty | ✅ | |
Simple Terminal | st | ✅ | |
Terminal.app | terminalapp | ✅ | ✅ |
Terminator | terminator | ✅ | |
Termite | termite | ✅ | ✅ |
Plain Text | text | ✅ | |
Sublime Text / Textmate | textmate | ✅ | |
Tilix | tilix | ✅ | |
urxvt | urxvt | ✅ | |
Wal | wal | ✅ | |
XFCE4 Terminal | xfce | ✅ | |
Windows Terminal | windowsTerminal | ✅ | ✅ |
Xresources | xresources | ✅ | ✅ |
XSHELL | xshell | ✅ |
DIY 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);