Change terminal colors on-the-fly independent of terminal emulator.
License
dylanaraps/paleta
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
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.