wallust - Generate colors from an image

crates io downloads license dependency status CodeBerg MatrixChat

gif

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

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 ~/.cache/wallust/sequences, so 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_) and add a new entry to `wallust.toml` toml [[entry]] template = "zathurarc" target = "~/.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

cargo install wallust

or, if you cloned the repo cargo install --path . or just build it (cargo build --release) 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

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 thiserror for errors in the modules (there aren't that many)