simple, no-nonsense color scheme generator and config manager based on Charles Leifer/coleifer's newer script
- Python 3
- Python-Pillow
For Arch Linux users, an AUR package is available as schemegen-git.
The Xresources.template
creates an Xresources variables file, which will be imported in the main ~/.Xresources
file.
This line will be inserted into your Xresources if not already there, to link to the variable file:
#include "$HOME/.config/schemegen/configs/Xresources"
Variables to be used in the main file are listed below.
Template files should be put in ~/.config/schemegen/templates
, and should have the extension .template
. Examples are provided in the templates
folder. Use the following variables to represent each color:
Color | Variable | Variable (no # ) |
Xresources Variable |
---|---|---|---|
background | %bg% |
%@bg% |
bg |
foreground | %fg% |
%@fg% |
fg |
black | %black% |
%@black% |
black |
red | %red% |
%@red% |
red |
green | %green% |
%@green% |
green |
yellow | %yellow% |
%@yellow% |
yellow |
blue | %blue% |
%@blue% |
blue |
magenta | %magenta% |
%@magenta% |
magenta |
cyan | %cyan% |
%@cyan% |
cyan |
light gray | %lightgray% |
%@lightgray% |
lightgray |
dark gray | %darkgray% |
%@darkgray% |
darkgray |
light red | %lightred% |
%@lightred% |
lightred |
light green | %lightgreen% |
%@lightgreen% |
lightgreen |
light yellow | %lightyellow% |
%@lightyellow% |
lightyellow |
light blue | %lightblue% |
%@lightblue% |
lightblue |
light magenta | %lightmagenta% |
%@lightmagenta% |
lightmagenta |
light cyan | %lightcyan% |
%@lightcyan% |
lightcyan |
white | %white% |
%@white% |
white |
Note that the @
symbol can be prepended to the variable to prevent the final color string from including #
(#fff -> fff
).
Generated configs will be found in ~/.config/schemegen/configs
. It is recommended to symlink them to their default locations.
A post-install script can be added at ~/.config/schemegen/post.sh
. It will be run after writing to configs, and is useful for commands like xrdb ~/.Xresources
. The path of the image sampled or found in the scheme file will be passed as an argument, if available. The user should have permission to execute the file (chmod +x [FILE]
).
See the example post.sh for reference.
Schemegen reads or generates a color scheme, creates a scheme file in ~/.config/schemegen/schemes/generated/
, and writes config files (upon user approval) by default. Options can be found below.
Schemegen can generate a color scheme based on a specified image, picking colors closest to the canonical scheme (see coleifer's blog post).
schemegen -i [path/to/image]
Increasing the number of colors sampled can improve accuracy. The default is 64 and the maximum is 256.
schemegen -i [path/to/image] -n 64
Schemegen can use existing schemes (made by itself or placed by the user) by reading from Xresource files in ~/.config/schemegen/schemes
.
schemegen -r [filename]
All schemes found in ~/.config/schemegen/schemes
and their colors will be shown in a list.
schemegen -l
Along with writing to a Xresource scheme file in ~/.config/schemegen/schemes/generated/
, the scheme can also be output to stdout for easier copying.
schemegen ... -p
Schemegen requests for user permission to write (and replace) configs. The -f
option can be used to skip the overwriting dialog and force the config files to be overwritten.