Como posso adicionar um ícone de imagem (por exemplo, bandeiras nacionais) ao indicador-sysmonitor com base na localização do IP?

1

Eu instalei recentemente o monitor de indicadores do sistema por fossfreedom ( link ) e sou capaz de adicionar um comando shell personalizado.

Desde que eu VPN para muitos servidores diferentes em todo o mundo, eu gostaria de ter este monitor mostrar um ícone de bandeira com base na localização. Atualmente, eu o configurei para mostrar o código de país de duas letras (por exemplo, EUA, Reino Unido, BR, etc.), mas quero substituí-lo pela localização de um ícone de sinalizador em meus diretórios.

Eu instalei uma série de ícones de sinalização do famfamfam-flag-png, que instala pngs de sinalização 16x11 aqui: /usr/share/flags/countries/16x11/

Então, usando o 'indicator-sysmonitor' eu pensei em adicionar um script personalizado ( $HOME/scripts/checklocation ) como:      curl ipv4.icanhazip.com | curl ipinfo.io | grep country | awk '{print }' | sed 's/,//g' | sed 's/"//g'

que informa o código do país com duas letras, posso substituí-lo pelo caminho para o ícone apropriado. Mas não tenho certeza de como fazer isso ... Preciso de ajuda para configurar meu script personalizado acima para relatar o ícone de sinalizador apropriado e, em seguida, para que funcione, para que ele substitua "LOC: BR" apenas com a sinalização BR no meu painel.

    
por labrazil 07.09.2015 / 14:32

1 resposta

1

Você está usando esta longa cadeia de comandos para obter seu código de país:

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

Você pode simplificar tudo isso para uma única pesquisa :

$ curl ipinfo.io/country
US

Você pode combinar isso com o caminho da imagem do sinalizador da seguinte forma:

$ country=$(curl -s ipinfo.io/country)
$ flag="/usr/share/flags/countries/16x11/${country}.png"
$ echo $flag
/usr/share/flags/countries/16x11/US.png
    
por Ben Dowling 08.09.2015 / 19:57