如何根据 IP 位置向指标系统监视器添加图像图标(例如国旗)?

如何根据 IP 位置向指标系统监视器添加图像图标(例如国旗)?

我最近安装了 fossfreedom 的系统指示器监视器(https://github.com/fossfreedom/indicator-sysmonitor),并且我可以添加自定义 shell 命令。

由于我通过 VPN 连接到世界各地的许多不同服务器,因此我希望让此监视器根据位置显示旗帜图标。目前,我将其配置为显示两个字母的国家代码(例如美国、英国、巴西等),但我希望它将其替换为目录中旗帜图标的位置。

我从 famfamfam-flag-png 安装了一系列旗帜图标,它在这里安装了 16x11 旗帜 png:/usr/share/flags/countries/16x11/

因此,我认为使用“indicator-sysmonitor”可以添加自定义脚本($HOME/scripts/checklocation),例如: curl ipv4.icanhazip.com | curl ipinfo.io | grep country | awk '{print $2}' | sed 's/,//g' | sed 's/"//g'

报告两个字母的国家代码,然后我可以将其替换为相应图标的路径。但我不确定该怎么做...需要帮助配置上面的自定义脚本以报告适当的标志图标,然后使其工作,以便它将在我的面板中用 BR 标志替换“LOC: BR”。

答案1

您目前正在使用这一长串命令来获取您的国家代码:

$ curl ipv4.icanhazip.com | curl ipinfo.io | grep country | awk '{print $2}' | sed 's/,//g' | sed 's/"//g'
US

你可以将整个过程简化为一个http://ipinfo.io抬头:

$ curl ipinfo.io/country
US

您可以将其与标志图像路径组合,如下所示:

$ country=$(curl -s ipinfo.io/country)
$ flag="/usr/share/flags/countries/16x11/${country}.png"
$ echo $flag
/usr/share/flags/countries/16x11/US.png

相关内容