wallust - Generate colors from an image

sources: rms by marco novo - linus talking - pixels - adwaita
It is recommended to clean the cache in a new major and minor release but is not required
If you don't have a config file, wallust will generate the
default config file
for you.
Features
- Sets terminal colors sequences on all active terminals
- Respects directory structure by platform:
- Cache:
- Linux:
$XDG_CACHE_HOMEor$HOME/.cache - MacOs:
$HOME/Library/Caches - Windows:
{FOLDERID_LocalAppData}
- Linux:
- Config:
- Linux:
$XDG_CONFIG_HOMEor$HOME/.config - MacOs:
$HOME/Library/Application Support - Windows:
{FOLDERID_RoamingAppData}
- Linux:
- Cache:
- Configuration file, documented at
wallust.tomlof this repo:- optional templating integrated in a config file
- backends, colorspaces and filters
- configurable threshold
- Cache scheme palettes
Terminal color sequences
By default, wallust will send these sequences to all open terminals
(/dev/pts/). You can skip this with the -s or --skip-sequences flag.
When opening new terminals you will notice that the color sequences are not
applied. To solve this you can send the sequences yourself when your shell
opens. wallust will store the sequences in the cache directory as a file
called sequences, the usual way is to cat ~/.cache/wallust/sequences in
your .zshrc, .bashrc, etc.
Templating [OPTIONAL]
You can use wallust generated colors in a program by templating the colors
in it's config file, like the following example:
# zathurarc config file
#keybindings
...
# colors
set default-bg "{color2}"
set default-fg "{foreground}"
set statusbar-bg "{color4}"
set statusbar-fg "{color6}"
set inputbar-bg "{color1}"
Then add this file to ~/.config/wallust/ e.g. ~/.config/wallust/zathurarc
(config directory defined by the platform) and add a new entry to wallust.toml
[[]]
= "zathurarc"
= "~/.config/zathura/zathurarc"
NOTE: The template name doesn't have to match the target name: e.g. the
file could be named sample.conf, and thus the entry would have template = "sample.conf", but the target can remain the same, e.g. target = "~/.config/zathurarc".
Usage
wallust my_wallpaper.png
Installation
Keep in mind that the git repo is constantly updated, if you wanna use git,
checkout to a stable version.
Build from source
From this repo
Go to the releases
page and download the .zip or .tar.gz repository. After extracting the contents,
go to the directory (cd MAYOR.MINOR.PATCH).
Then you can do the following, which moves the binary into your $CARGO_HOME/bin
cargo install --path .
or build it and copy the binary to one folder present in your $PATH like
/usr/local/bin
cargo build --release
cp -f ./target/release/wallust /usr/local/bin
From crates.io
cargo install wallust
This will use the lastest version
NetBSD
If you are using NetBSD, a native package is available from the official repositories. To install it, simply run:
pkgin install wallust
TODO
for more, grep the src for TODO rg TODO
- release binaries - figure out woodkeeper codeberg CI
- Think about using k means algo similar to pigmnts (just without seg faulting :p)
- use
thiserrorfor errors in the modules (there aren't that many)
Related
- pywal - 🎨Generate and change color-schemes on the fly
- pywal16 - 16 colors fork of pywal
- wpgtk - 🎴a colorscheme, wallpaper and template manager for *nix
- wal-theme-picker - pick the best theme for the image (rather than generating one)
- pigmnts - 🎨Color palette generator from an image using WebAssesmbly and Rust