21 个稳定版本

3.0.0 2024 年 8 月 5 日
3.0.0-alpha2024 年 2 月 14 日
2.10.0 2024 年 1 月 26 日
2.9.0 2023 年 12 月 26 日
1.0.0 2023 年 3 月 30 日

#91 in 命令行工具

Download history 6/week @ 2024-05-04 15/week @ 2024-05-11 9/week @ 2024-05-18 17/week @ 2024-05-25 26/week @ 2024-06-01 19/week @ 2024-06-08 18/week @ 2024-06-15 27/week @ 2024-06-22 68/week @ 2024-06-29 67/week @ 2024-07-06 58/week @ 2024-07-13 46/week @ 2024-07-20 98/week @ 2024-07-27 185/week @ 2024-08-03 86/week @ 2024-08-10 43/week @ 2024-08-17

418 每月下载量

MIT 许可证

255KB
4K SLoC

Rust 3.5K SLoC // 0.1% comments BASH 471 SLoC PowerShell 213 SLoC Elvish 198 SLoC

wallust - 从图片生成颜色

crates-io downloads license dependency-status status-badge CodeBerg MatrixChat


gif

来源: adwaita - 山景 - rms by marco novo - pixels - linus talking

如果是从 v2 版本升级,请检查 v3 版本的重大变更

用法

wallust run my_wallpaper.png

使用 wallust -h 获取概览,使用 wallust --help 获取更详细的说明

文档

为了方便使用,您可以查看带有手册页的 详细 文档(而不是每次都使用 cmd -h

  • man wallust,有关终端颜色和 模板语法 的信息;
  • man wallust.5,配置文档;
  • man wallust-subcommand,显示 子命令 的手册页。

还有一个用于文档的 网页!它基于纯 Markdown,因此您也可以在 docs/ 目录中本地阅读。

功能

  • 包括 手册页补全
  • 在所有(或当前,-u)活动终端上设置终端颜色
    • Windows:通过更新 Windows Terminal 上的 settings.json 添加 Windows Terminal 的颜色方案,第一次启用此方案时,您必须手动选择它
    • *NIX: ASCII转义序列
    • MacOS: iTerm2 序列,/dev/ttys00 在 MacOS 上
  • 缓存调色板,被 -w
    • Linux: $XDG_CACHE_HOME$HOME/.cache
    • MacOs: $HOME/Library/Caches
    • Windows: {FOLDERID_LocalAppData}
  • 使用 wallust cs 读取 pywal/terminal-sexy 颜色方案。
  • 内置 主题,使用 wallust theme (编译时功能)。
  • 可选配置文件,wallust.toml
    • wallust 会检查 ~/.config/wallust/wallust.toml 以查找配置文件,如果没有找到,它将使用默认实现。
    • 配置变量可作为 CLI 标志使用。
    • 可选 使用 Jinja2 的子集或 pywal 语法进行模板化(如果选择)。
    • 可配置后端、色彩空间、调色板和阈值的实现方法。
    • 操作系统依赖路径
      • Linux: $XDG_CONFIG_HOME$HOME/.config
      • MacOs: $HOME/Library/Application Support
      • Windows: {FOLDERID_RoamingAppData}
方法 描述
后端 如何从图像中提取颜色。(例如,pywal 使用 convert
色彩空间 获取最突出的颜色,并按 Palette 排序,可根据 阈值 配置
调色板 使用收集到的颜色创建方案调色板(例如,设置浅色背景)

安装

您可以通过以下图表查看您的发行版是否在其仓库中包含 wallust。有关详细信息,您可以查看维护者留下的发行版安装说明

使用 cargo

cargo install wallust

这将使用最新版本(非预发布版本)。

使用 git

简单 git clone https://codeberg.org/explosion-mental/wallust

建议使用 Makefile,因为它将安装手册页和补全。

  1. 编辑 Makefile 以满足您的本地设置(对于大多数 Linux 发行版应该已经很好)。
  2. 使用 make 构建它
  3. 安装wallust(如果需要,以root身份进行):make install

可选地,使用以下命令仅安装二进制文件,该命令将二进制文件移动到您的 $CARGO_HOME/bin

cargo install --path .

或构建它并将二进制文件复制到您的 $PATH 中现有的文件夹,如 /usr/local/bin

cargo build --release
cp -f ./target/release/wallust /usr/local/bin

背景

我开始这个工具主要是出于 速度 的原因,因为我使用了一个 快捷键,它会以随机的壁纸图片启动 pywal,这导致在两次之间出现了明显的延迟。

当然,现在我了解到 pywal 使用 image magick 的 convert 来收集颜色,而 wallust 也可以使用 wal 后端来做到这一点。集成原生方法,甚至更复杂的算法,如 kmeans 或 SIMD 后端 fast_resize,使得让用户决定哪种最适合的需求变得必要。

虽然目标是关注速度,但用例已经扩展到升级 wallust 和 存档 的 Python 工具共享的功能。

我选择使用 rust,因为它提供了丰富的库(crates)和原生功能。我还尝试在观看了一个关于在 C 中实现直方图的视频后,用 C 重新编写 pywal。那是我开始这段旅程的小推动力。

相关

依赖项

~13–27MB
~363K SLoC