dylanaraps / Paleta
Programming Languages
Labels
Projects that are alternatives of or similar to Paleta
paleta
Change terminal colors on-the-fly independent of terminal emulator.
Most terminal emulators support a set of escape sequences which allow for the modification of the terminal's color palette. Combined with the ability to write to all open terminal devices, this allows for theming in a truly independent way.
Paleta reads a list of colors over , transforms the input into the set of escape sequences and sends these sequences to every open terminal in the system. It additionally prints the sequences to .
+------------------------------------------------------------------------------+ | | | $ paleta < palettes/jellybeans-dark > ~/.cache/current-palette | | | +------------------------------------------------------------------------------+
This tool is small and generic. It reads input and writes output. Effortless to incorporate with the system. This repository also contains 150~ popular palettes ready for use with paleta.
terminal support
+------------------------------------------------------------------------------+ | | | this list is not complete | | | | | | alacritty good https://github.com/alacritty/alacritty/issues/656 | | kitty good | | vte [0] good 1a651cf990e67c4046fbff7674249259bcaa89a8 | | xterm good | | urxvt good | | | | st patch ./misc/st-osc_10_11_12-20200418-66520e1.patch | | | | hyper clueless https://github.com/vercel/hyper/issues/2038 | | | | | +------------------------------------------------------------------------------+
[0] vte includes Termite, XFCE terminal, GNOME terminal, Konsole and many more.
dependencies
- POSIX <stdio.h> <stdlib.h> <glob.h>
- C99 compiler
build
See src/config.h for configuration.
+------------------------------------------------------------------------------+ | | | Using make (recommended) | | | | $ make | | $ make install | | | | | | Invoking the compiler directly | | | | $ c99 $CFLAGS -o paleta src/paleta.c | | | | | +------------------------------------------------------------------------------+
usage
+------------------------------------------------------------------------------+ | | | 1. Set the colorscheme to jellybeans-dark in all open terminals. | | | | $ paleta < palettes/jellybeans-dark > ~/.cache/current-palette | | | +------------------------------------------------------------------------------+
Saving paleta's to a file is how the current palette is stored. This file is used to set the palette in newly opened terminals. Scripts might instead store this in a variable or ignore it entirely as they maintain state.
setup
This line must be added to $SHELL's startup file. It tells future terminals to load the current palette at launch.
+------------------------------------------------------------------------------+ | | | $ echo 'cat ~/.cache/current-palette' >> ~/.bashrc | | | +------------------------------------------------------------------------------+
input format
Input is one hex color per line, without #. The first three lines are reserved for , and with the remaining lines filling the numerical palette (0-256).
Example: https://github.com/dylanaraps/paleta/blob/master/palettes/gruvbox-dark
+------------------------------------------------------------------------------+ | format | example | +-------------------------------------+----------------------------------------+ | | | | | dedede | | | 121212 | | | dedede | | | 929292 | | | e27373 | | | 94b979 | | | | | ... | ,,, | | | | | | 1ab2a8 | | | | | | | +-------------------------------------+----------------------------------------+
The maximum palette is (3 + 256). This is configurable at compile-time.
software written around paleta
- shuffle through palettes in a directory. https://github.com/dylanaraps/bin/blob/c06b2c0df0194487fc4cb9c65b451b6369e2c398/shuffle
todo
- [ ] Find good 256 color palettes to include. All are currently 16 colors. 256 color palettes added to this repository should contain -256 in their filenames.