我一直在努力让 conky 显示天气,我刚刚安装它,发现 yahoo 停止了 conky 主题正在使用的 api url(http://weather.yahooapis.com/forecastrss?w= 1103816&u=c),我尝试将 url 更改为 accuweather 和 openweather ,但什么也没有。我只是不明白这是如何工作的,我不知道如何让它正常工作,这里是代码:
##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}#\&locCode\=$LOCCOD" -o #~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep #"yweather:condition" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | #grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}#${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o #"code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image #~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla
顺便说一句,我在互联网上找不到任何可以帮助我的东西......在此先感谢:)
Edit1:这是conky主题保存在cache/weather.xml中的api http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568 我正在慢慢理解它是如何工作的
Edit2:这就是代码现在的样子,我注意到我打错了一些 # 试图评论整个天气部分。我只是不明白 conky 如何读取 xml(我自己不知道如何读取 xml,但我想我可以通过一些 xml 指南来解决这个问题:P)
##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" -o ~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep "weather:description" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla
Edit3:感谢@WinEunuuchs2Unix和@steeldriver ,我终于让它工作了,这就是代码最终寻找想要在他们的 conky 代码中使用它的任何人的方式:
##Weather
${voffset -80}${offset 435}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].main.temp' | awk '{printf("%.0f\n", $1)}'}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 24}${font}${color1}
${execi 1300 cp -f .iconos/$(curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].weather[].icon').png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,20 -s 60x60}
${offset 420}${voffset -115}${font ITC Avant Garde Gothic Pro:bold:size=14} Sevilla
基本上它的作用是使用从openweather url读取一个json curl
,并jq
搜索温度的值.list[0].weather[].icon
和.list[0].main.temp
温度,它输出一个带有2位十进制数字的值,我使用其余代码将其剪掉以供个人喜好awk '{printf("%.0f\n", $1)}'
只是conky的了解您想要它的位置以及您想要它的方式的方法。如果您想自己使用它,只需更改Sevilla
您的城市,并更改curl -s "...your location api url..."
注意,如果您为您的 api url 使用不同的站点,则必须更改jq
以适应新的 json 数据。另请注意,您必须使用此图标列表中的所有图标创建一个文件夹或使用您自己的图标,但请记住使用相同的命名(01d.png,02d.png,...)并且不要忘记编辑这个${execi 1300 cp -f .iconos/$(curl -s "http:/...
并替换.iconos/
为您的文件夹的目录。
如果您想尝试 conky 主题,请在这里
编辑 2020 年 6 月 7 日
我现在有一台 4K 电视,所以有足够的空间通过天气信息扩展高度。
选择支持风向箭头符号的单行距字体非常重要。我选择了GE Inspira Mono 12 点,但之后不得不恢复到Ubuntu 10.5 点:
这就是它现在的样子:
是的,6 月 7 日下午 6 点异常寒冷。更糟糕的是,几个小时前,所有的雨都导致了 20 个街区的停电!这是喜忧参半,因为我必须安装我在 2020 年 3 月购买的 32 GB RAM 升级版,但一直在拖延。系统现在更快捷了!
注意:日出和日落时间是假的。我今天正在测试一个新功能,
eyesome
以覆盖太阳时报(又名暮光之城)互联网上的每日自动检索。原始答案
天气信息太多,无法挤进我已经很满的古怪显示器。所以我把它放在我的终端闪屏中:
您可以从命令行获取相同的信息,您可以从 conky 调用这些信息:
要获取您的城市名称,
wttr.in
请参阅:在 conky 中显示图像
我从 darksky.net 保存了一张今天天气的图片,并使用以下
${image}
命令将其显示为 conky:相关的 conky 命令是:
${image}
免责声明:我不记得我从哪里得到的。
我有一个小脚本
weather.sh
然后在 .conkyrc 你有
${exec [location of script]/weather.sh [zip code]}
最终结果是
我制作了一个使用wehr snap 应用程序的 shell 脚本。这个应用程序根据您在终端上的位置显示天气。
巴拉圭亚松森:31C ☀️
目前 Conky 不能很好地处理表情符号,所以我不得不使用 pangoview 将文本转换为图像。
我在 conky 上使用它
还添加此行,以启用图像在 conky 中重新加载
这是脚本
https://github.com/alefq/helper-scripts/blob/master/bin/weather.sh
crontab 每 30 分钟更新一次
最终结果
我受到这个线程的启发很大,因为我没有找到任何可用的 Conky 小部件并开始学习和创建自己的小部件(基于此处发布的代码)。
这是一个使用 IP 地理位置来识别(或猜测)您的粗略位置并相应地显示 5 天天气的小部件。使用大数据云和开放天气地图 API。
我希望它对你们所有人都有效。只需下载文件,将其保存到 ~/.conky 目录并执行:
在此处下载天气小部件文件
天气小部件快照如下所示:
我编写了一个命令行工具,使用来自 openweathermap (onecall) API 的数据在 conky 中创建天气小部件。您可以根据需要使它们变得简单或复杂。例如,要显示
Clouds: 22°
每 20 分钟更新一次,请使用:有更多可用选项。请参阅 此处了解更多信息。