This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Change terminal colors on-the-fly independent of terminal emulator.
License
dylanaraps/paleta
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 <stdin>, 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 <stdout>. +------------------------------------------------------------------------------+ | | | $ 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 alacritty/alacritty#656 | | kitty good | | vte [0] good 1a651cf990e67c4046fbff7674249259bcaa89a8 | | xterm good | | urxvt good | | | | st patch ./misc/st-osc_10_11_12-20200418-66520e1.patch | | | | hyper clueless vercel/hyper#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 <stdout> 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 <foreground>, <background> and <cursor> with the remaining lines filling the numerical palette (0-256). Example: https://github.com/dylanaraps/paleta/blob/master/palettes/gruvbox-dark +------------------------------------------------------------------------------+ | format | example | +-------------------------------------+----------------------------------------+ | | | | <foreground> | dedede | | <background> | 121212 | | <cursor> | dedede | | <color0> | 929292 | | <color1> | e27373 | | <color2> | 94b979 | | | | | ... | ,,, | | | | | <color256> | 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.
About
Change terminal colors on-the-fly independent of terminal emulator.