终端中的天气: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

程序将解析您的位置,获取当前天气,并启动动画循环。键盘控制最小化:

  • qQ – 退出。
  • 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 或不使用该参数禁用。不会保存或发送任何个人数据给天气提供商。

路线图

  1. 新增天气 API – 集成 OpenWeatherMap 和 WeatherAPI,提供冗余。
  2. 键盘快捷键 – 手动刷新、速度控制、暂停动画、切换 HUD。
  3. Home‑Manager 模块 – 完整的 NixOS 配置支持。
  4. 自定义主题 – 导入用户自定义的 ASCII 艺术集。

贡献

欢迎贡献!Fork 仓库,修改后提交 Pull Request。项目已在 Linux 和 macOS 上通过 CI 进行测试。可提交 Bug 修复、新天气状态或可用性改进等贡献。

鸣谢

  • 天气数据 – Open‑Meteo.com(CC BY‑4.0)
  • ASCII 艺术 – asciiart.eu 的多位艺术家
  • Rust Cratesreqwestserdecrosstermclap

weathr 是一款开放源码、面向终端的天气应用,让您的命令行变成天气小组件。如果您想在不离开终端的情况下轻松了解天空信息,请今天安装 weathr,让动画为您预报天气。

原创文章: 查看原文

分享本文