14 个版本

0.2.18 2022年7月10日
0.2.17 2022年7月10日
0.2.15 2021年6月10日
0.2.11 2021年5月27日
0.1.0 2021年4月30日

#89科学

Download history 1/week @ 2024-03-10 168/week @ 2024-03-31

每月54次下载

MIT/Apache

39KB
523

I3owm Rust

Open Weather Map 和 open-notify (ISS 搜索) 的 rust 实现作为 i3status 的附加组件

内容

安装

要从 Rust 社区存储库安装此软件包,必须已安装 RustCargo。然后在终端中输入以下内容:

cargo install i3owm

使用方法

程序参数

必需参数

选项 参数 描述
-k--apikey <apikey> 设置 OpenWeatherMap API 密钥(请参阅https://openweathermap.org/price

选项

选项 描述
-b--blink 当 ISS 可见时让 ISS 图标闪烁
-h--help 打印帮助信息
-n--notify 显示关于 ISS 可见的通知
-r--reverse 反转位置(从右侧开始)
-t--test 不处理来自 stdin 的 i3status,而是显示格式化字符串
-V--version 打印版本信息

可选参数

选项 参数描述 默认值
-f--format 包含以下键之一或多个的格式化字符串 {city} {icon} {temp}{temp_unit}
-c--location 城市名称后可能跟有逗号分隔的两位字母(美国的州代码和)国家代码(ISO3166)或城市ID(见https://openweathermap.org/find)或地理坐标,以逗号分隔的纬度和经度。 柏林,DE
-C, --cloudiness ISS可视的最大云量百分比 25
-l, --lang 天气描述的两位语言代码 en
-L, --level ISS最小显示级别:watch:可见的持续时间;soon:可见的延迟;rise:发现时间;far:最大预测时间 soon
-P, --poll 轮询周期的持续时间(分钟) 10
-p, --position 在i3status中输出位置的JSON 0
-s, --soon ISS上升为"soon"的分钟数 15
-u, --units 使用英制单位(metricimperialstandard metric
-T, --prediction 设置预测ISS观测点的数量 100
使用 --level--soon--prediction 进行 ISS 搜索

关于--level的功能以及它与--soon--prediction的可选参数如何交互的说明

使用--level你可以设置你得到的内容

级别 何时 格式 示例
watch 仅在当前可见时 🛰+持续时间 🛰+03:12
soon 仅在soon内可见时 🛰-持续时间 🛰-12:34
rise 有任何预测时 🛰*[日期] 时间* 🛰12:15
far 无预测时的预测时间(天数) 🛰>天数 🛰>16

级别是递增的。所以如果你将级别设置为rise,你也会看到soonwatch事件。

如果事件在选项--soon设置的分钟数内发生,则该事件是"soon"。

--prediction参数给出的值设置了将从中获取的观测事件数量api.open-notify.org。因此,此值以某种方式限制了预测时间。由api.open-notify.org提供的事件数量最多为100。

显示格式

可用属性

通过在格式字符串中插入以下属性键来选择你的显示格式

描述 示例
{city} 城市名称 柏林
{main} 天气参数组 Clouds
{description} 组内的天气状况 scattered clouds
{icon} 天气图标 🌞🌛🌤🌧🌦🌩🌫
{pressure} 大气压力(海平面或地面),hPa 1010
{humidity} 湿度,% 45
{wind} 风向 NNOOSOSSWWNW
{wind_icon} 风向的箭头图标
{wind_speed} 风速 m/smi/h
{wind_deg} 风向,度数(气象) 56
{deg_unit} 方向单位 °
{visibility} 能见度,米 10000
{visibility_km} 能见度,千米 10
{rain.1h} 过去1小时的降雨量,毫米 12
{rain.3h} 过去3小时的降雨量,毫米 32
{snow.1h} 过去1小时的降雪量,毫米 11
{snow.3h} 过去3小时的降雪量,毫米 24
{temp_min} 此时的最低温度 -8
{temp_max} 此时的最高温度 10
{feels_like} 人类感知的气温 8
{temp} 温度 15
{temp_unit} 温度 °C°FK
{speed_unit} 风速单位 m/s
{update} 上次更新当地时间 12:45
{iss} ISS观测时间,延迟或持续时间 +01:15 , -02:21, 12:10, >16
{iss_icon} 如果ISS可见则显示图标 🛰
{iss_space} 如果显示任何ISS信息,则插入空格(' '

测试您的显示格式

为了便于测试,i3owm 有一个选项 -t(或 --test),该选项禁用了从 i3status 处理输入,并仅产生 i3owm 相关的输出字符串。我们使用该选项来测试一些不带 i3status 的示例。

天气

要获取天气,可以使用以下命令行

i3owm -t -k <key> -c Berlin,DE -f '{icon} {temp}{temp_unit} 💧{humidity}%'
输出
loading...11°C 💧55%
ISS 搜索事件

要获取ISS观测事件,可以使用以下参数

i3owm -t -Lrise -k <key> -c Berlin,DE -f 'before {iss_icon}{iss}{iss_space}after'

此示例将显示卫星图标、ISS观测时间和空格 分隔符,如果可以做出任何预测

输出
loading...
before 🛰+03:12 after

...或者...

loading...
before after

...如果没有ISS状态。

这意味着ISS已经可见3分12秒。

复杂示例

在此复杂示例中,我们使用以下参数

i3owm -tnb -Lrise -C100 -k <key> -cBerlin -f'{iss_icon}{iss}{iss_space}{icon} {temp}{temp_unit} 💧{humidity}% {wind_icon}{wind_speed}{speed_unit} ({update})'
输出
loading...14°C 💧70% ↑2m/s (13:47)
🛰16:3714°C 💧70% ↑2m/s (13:47)

集成到 i3status 中

要将您的 i3owm 命令行用于您的 i3 配置,您需要删除选项 -t 并将管道符号 | 和您的命令行附加到您的 it(通常在 .config/i3/config)。

bar {
  status_command i3status | i3owm <your options>
}

参考文档

除了这个介绍之外,还有一个源代码的参考文档,可以在这里找到。

网站

i3owm.thats-software.com上阅读这份README更有趣。

github 仓库

有关源代码,请参阅 github.com 上的此存储库

crates.io

crates.io上发布。

许可协议

i3status_ext 采用 MIT 许可证LICENSE-MIThttp://opensource.org/licenses/MIT

依赖关系

~9–43MB
~683K SLoC