终端中的天气:weathr – ASCII 艺术天气应用
终端中的天气:weathr – ASCII 艺术天气应用
如果您喜欢命令行的便捷,并想在终端获得一个视觉化的每日提醒——天气只需几键即可查看,weathr 正是您一直等待的工具。基于 Rust 开发,weathr 从免费的 Open‑Meteo API 拉取实时天气,并直接在终端渲染动画化天气,使用清晰的 ASCII 艺术。
为什么选择 weathr?
- 即时反馈:不需要网页浏览器,天气信息直接显示在控制台。
- 视觉享受:雨滴、雪花、闪电以及飞机云在昼夜背景下动态展示。
- 跨平台:Linux、macOS、Windows 甚至 WSL 均可原生运行。
- 自包含:单一二进制文件,除了 Rust 工具链外不依赖其他外部库。
- 开源且 GPL‑v3:可 Fork、修改或提交 Pull Request。
快速开始
通过 Cargo 安装 — 如果您已使用 Rust,最简单的方式:
cargo install weathr
**Homebrew(macOS)
brew install Veirt/veirt/weathr
**AUR(Arch)
yay -S weathr
**Windows(Winget)
winget install -i Veirt.weathr
从源码构建(需要 Rust):
git clone https://github.com/Veirt/weathr.git
cd weathr
cargo install --path .
配置
应用会在每个操作系统的常规配置目录中寻找 config.toml:
| 系统 | 默认配置路径 |
|---|---|
| Linux | ~/.config/weathr/config.toml |
| macOS | ~/Library/Application Support/weathr/config.toml |
| Windows | ~/AppData/Roaming/weathr/config.toml |
请先创建对应目录,编辑此文件并设置您的偏好。示例配置:
# 隐藏HUD(头部信息显示)
hide_hud = false
# 静默运行(仅显示错误)
silent = false
[location]
# 覆盖自动定位;设为 `true` 可使用 IP 定位
auto = true
# 手动设定纬度和经度
latitude = 51.5074
longitude = -0.1278
# 在 HUD 中隐藏位置名称
hide = false
[units]
# 温度单位:`celsius` 或 `fahrenheit`
temperature = \"celsius\"
# 风速单位:`kmh`、`ms`、`mph` 或 `kn`
wind_speed = \"kmh\"
# 降水量单位:`mm` 或 `inch`
precipitation = \"mm\"
运行应用
直接输入:
weathr
程序将解析您的位置,获取当前天气,并启动动画循环。键盘控制最小化:
q或Q– 退出。Ctrl+C– 立即终止。
模拟天气
为了开发或测试,您可以模拟任何天气状态:
weathr --simulate rain
weathr --simulate snow --night
weathr --simulate clear --leaves
命令行参数
| 选项 | 描述 |
|---|---|
--imperial |
使用 °F、mph、inch(覆盖配置)。 |
--metric |
使用 °C、km/h、mm(默认)。 |
--auto-location |
强制使用基于 IP 的定位。 |
--hide-location |
在 HUD 中隐藏经纬度。 |
--hide-hud |
隐藏整个 HUD。 |
--silent |
抑制所有非错误输出。 |
这些选项可组合使用,例如 weathr --imperial --auto-location。
环境变量
NO_COLOR=1– 禁用彩色输出。COLORTERM=truecolor– 强制 24 位颜色支持。TERM=xterm-256color– 终端能力检测。
隐私说明
当自动定位开启时,weathr 会向 ipinfo.io 发送一次请求,将 IP 转换为经纬度。该过程可选,可通过设置 auto = false 或不使用该参数禁用。不会保存或发送任何个人数据给天气提供商。
路线图
- 新增天气 API – 集成 OpenWeatherMap 和 WeatherAPI,提供冗余。
- 键盘快捷键 – 手动刷新、速度控制、暂停动画、切换 HUD。
- Home‑Manager 模块 – 完整的 NixOS 配置支持。
- 自定义主题 – 导入用户自定义的 ASCII 艺术集。
贡献
欢迎贡献!Fork 仓库,修改后提交 Pull Request。项目已在 Linux 和 macOS 上通过 CI 进行测试。可提交 Bug 修复、新天气状态或可用性改进等贡献。
鸣谢
- 天气数据 – Open‑Meteo.com(CC BY‑4.0)
- ASCII 艺术 – asciiart.eu 的多位艺术家
- Rust Crates –
reqwest、serde、crossterm、clap
weathr 是一款开放源码、面向终端的天气应用,让您的命令行变成天气小组件。如果您想在不离开终端的情况下轻松了解天空信息,请今天安装 weathr,让动画为您预报天气。
原创文章:
查看原文