这个项目能做什么
animfetch 是一个终端实用工具,它在终端顶部固定显示一个动态系统信息(系统信息加 ASCII 艺术),同时用户自己的 shell 继续在其下方工作。它面向 Linux 和 macOS,使用 Rust 编写。
核心行为:
- `--pin` 设置滚动区域,使顶部若干行保持固定,然后分离并重绘这些行,同时用户的 shell 在下方运行,历史记录、补全和别名均不受影响。`--unpin` 可撤销该效果。
- `--play` 原地播放动画几秒钟后退出。
- `--once` 打印单个静态帧。
- 不带任何标志运行会启动交互模式,此时 animfetch 接管提示符。
动画与渲染:
- 大量内置动画库,包括非彩色和彩色版本,涵盖动物、物体和角色(例如 cat-run、fox-run、dolphin-swim、blackhole、earth、saturn、dragon、rocket)。
- 每次运行可用 `-a <name>` 选择动画,或用 `--set <name>` 设置默认值。
- `--style` 选择绘制方式:`half` 和 `quad` 渲染实心块并可缩放到任意终端;`ramp` 将覆盖度映射到字符上;`raw` 原样打印艺术本身的字符,适合手绘或预着色的 ASCII。
- 选项包括 `--width`、`--height`、`--fps`、`--no-color` 和 `--art-color own|theme`。
- 管道输出或设置 `NO_COLOR=1` 会自动回退到静态路径。
安装:
- Arch Linux 通过 `paru -S animfetch-bin` 或 `animfetch-git`。
- Nix/NixOS 通过 `nix run github:Andrew-Velox/animfetch` 或将其添加为 flake 输入。
- 适用于任何 Linux 或 macOS 的预构建二进制安装脚本,安装到 `~/.local/bin`,以 root 身份则安装到 `/usr/local/bin`,可用 `ANIMFETCH_BINDIR` 覆盖。
- 从源码安装需 Rust 1.88 或更新版本,通过 `cargo install --locked --git ...`。
配置:
- 可选的 `~/.config/animfetch/config.toml`;每个键都是可选的,格式错误的文件会回退到默认值。
- 设置 `color_source = "palette"` 可使系统信息跟随桌面主题,读取 matugen、pywal 或 wallust 调色板;在 `--pin` 下它会在变化时重新读取,因此重新换主题会为正在运行的动画重新着色。
Shell 集成:
- 为 bash、zsh 和 fish 提供了示例启动行,可防止非交互式 shell 和 `scp` 的情况;README 建议切勿在启动文件中使用裸 `animfetch`,因为它会等待输入。
交互模式按键:
- Enter 运行命令,输出显示在系统信息下方;Ctrl-C 中断或退出;Esc 退出;Ctrl-D 在空行时退出;Ctrl-U 清除该行;Ctrl-W 删除最后一个词。`cd` 和 `exit` 在内部处理,其他所有内容都在 `$SHELL -c` 下运行。它被描述为带提示符的启动器,而非完整 shell(没有别名、历史记录或补全)。
致谢说明部分动画是根据 kyome22 的 RunCat 重绘为 ASCII 的,遵循 Apache License 2.0。
评论
0 评分人数达到10人后显示
登录后参与讨论。