Crates.io | wallust |
lib.rs | wallust |
version | 3.0.0-alpha |
source | src |
created_at | 2023-03-30 23:58:07.694865 |
updated_at | 2024-02-14 05:49:54.80101 |
description | Generate a 16 color scheme based on an image. |
homepage | https://codeberg.org/explosion-mental/wallust |
repository | https://codeberg.org/explosion-mental/wallust |
max_upload_size | |
id | 825824 |
size | 343,347 |
sources: adwaita - scenic view of mountains - rms by marco novo - pixels - linus talking
If comming from v2, please check how to prepare for v3.
wallust run my_wallpaper.png
use wallust -h
for an overview and wallust --help
for a more detailed explanation
settings.json
on Windows Terminal, to enable this scheme for the first time you will have to selected it manually/dev/pts/
on Linuxps
to search active terminals on OpenBSD/dev/ttys00
on MacOS-w
$XDG_CACHE_HOME
or $HOME/.cache
$HOME/Library/Caches
{FOLDERID_LocalAppData}
cs
subcommandtheme
subcommand (can be disabled with compile-time features) wallust theme --help
to list possible themeswallust.toml
:
{variable}
new_engine = true
, you use {{variable}}
$XDG_CONFIG_HOME
or $HOME/.config
$HOME/Library/Application Support
{FOLDERID_RoamingAppData}
Methods | Description |
---|---|
Backends | How to extract the colors from the image. (e.g pywal uses convert) |
ColorSpace | Get the most prominent color, and sort them according to the Palette , configurable by a threshold |
Palette | Makes a scheme palette with the gathered colors, (e.g. sets light background) |
Make sure to read the sample config file for practical documentation.
For detailed docs:
man wallust
, overall info;man wallust.5
, config docs;man wallust-subcommand
, displays a man page for subcommand.wallust
doesn't require third party packages, but has an optional
dependency: imagemagick
to use the wal
backend
(just like pywal). Other methods are built in.
If you are using NetBSD, a native package is available from the official repositories. To install it, simply run:
pkgin install wallust
If you are using Nix, a native package is available for the unstable channel.
Install it for your profile:
nix-env -iA nixos.wallust # change `nixos` for `nixpkgs`, if on a non-NixOS system
Try it with nix-shell
nix-shell -p wallust
Using an Arch based distro, you can use the wallust or wallust-git packages.
wallust
fetches the latest stable version from static.crates.io
, which mirrors the master
branch. Prefer this package.wallust-git
fetches the latest unstable version from the dev
branch.Either can be installed on an Arch based distro with the following commands:
git clone https://aur.archlinux.org/wallust.git # Or wallust-git.git
cd wallust # or wallust-git
makepkg -si
Go to the releases
and download the tar.gz
file, which contains a binary for musl, so it should
work for most *nix platforms.
tar -xf wallust-TARGET.tar.gz
The master branch is stable
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
).
Recommended way is to use the Makefile
, since this will install man pages and completions.
Makefile
to meet your local setup (should be fine as is for most linux distros).make
make install
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
cargo install wallust
This will use the lastest version
Binary-based distros can grab the latest pre-compiled binary from the releases page.
Source-based distros, if they wish to build wallust
from source, must ensure
that the following dependencies are available:
cargo
, rustc
)imagemagick
is required only for the wal
backend, such limiting should be mentined and considered an optional
dependency, since all other backends work without it.Using make
is optional if you know your way into cargo and can accept
the job to manually install man pages, completions and the binary.
I've only added a Makefile
to simplify installing these assets, as well as
the binary. By default make
uses native compilation, you can define your
wished target like this:
Building
$ TARGET=x86_64-pc-windows-gnu make install CARGOFLAGS="--release --target=$TARGET"
Installing
# TARGET=x86_64-pc-windows-gnu make CARGOFLAGS="--release --target=$TARGET" RELEASE="target/$TARGET/release"
Don't forget that make
by itself runs cargo
in order to built the binary.
It's common on projects that use make to split building in two steps, given
that make install
requires permissions to write on $DESTDIR$PREFIX
.
Use the dev branch
Show some of your taste by adding a backend, colorspace, scheme palettes, and/or a custom theme.
Having design ideas or suggestios is also very welcome.
for more, grep the src for TODO rg TODO
thiserror
for errors in the modules (there aren't that many)lule_bash
rewriten for efficiencywallust