UFFICIALE Le foto del vostro desktop - OS alternativi

Pubblicità
@rebellion
Ho buttato giù una bozza [Bash] Yahoo-Weather - Pastebin.com
Dagli una letta e poi provalo. Credo che i files siano di nome differente dai tuoi, quindi non c'è pericolo.

Bye ^^

Un breve test su conky nuda e cruda per osservare il comportamento. L' ho tenuta tutta oggi e a parte un banale errore, sembra andare benino. :P
Ho notato che a volte il link non è accessibile. buh!
FINITO! anche la conversione F->C è fatta con questo scriptino:
Codice:
#!/bin/bash

temp1=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==1')
echo `echo "scale=0; ($temp1-32)/1.8" | bc` > ~/.conky-weather/temp1.txt
temp2=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==1')
echo `echo "scale=0; ($temp2-32)/1.8" | bc` > ~/.conky-weather/temp2.txt


temp1=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==2')
echo `echo "scale=0; ($temp1-32)/1.8" | bc` > ~/.conky-weather/temp3.txt
temp2=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==2')
echo `echo "scale=0; ($temp2-32)/1.8" | bc` > ~/.conky-weather/temp4.txt


temp1=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==3')
echo `echo "scale=0; ($temp1-32)/1.8" | bc` > ~/.conky-weather/temp5.txt
temp2=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==3')
echo `echo "scale=0; ($temp2-32)/1.8" | bc` > ~/.conky-weather/temp6.txt


temp1=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==4')
echo `echo "scale=0; ($temp1-32)/1.8" | bc` > ~/.conky-weather/temp7.txt
temp2=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==4')
echo `echo "scale=0; ($temp2-32)/1.8" | bc` > ~/.conky-weather/temp8.txt


temp1=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "low=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==5')
echo `echo "scale=0; ($temp1-32)/1.8" | bc` > ~/.conky-weather/temp9.txt
temp2=$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "high=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==5')
echo `echo "scale=0; ($temp2-32)/1.8" | bc` > ~/.conky-weather/temp10.txt
lo richiamo solo una volta da conkyrc.
questo il risultato finale:Schermata del 2016-09-01 12-35-50.webp
e questo è il .conkyrc:
Codice:
# Conky settings #
background yes
update_interval 1
double_buffer yes
no_buffers yes


# Window specifications #
gap_x 800
gap_y 100
minimum_size 600 600
maximum_width 430
own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorated,sticky,skip_taskbar,skip_pager,below
#border_margin 0
#border_inner_margin 0
#border_outer_margin 0
alignment top_right


# Graphics settings #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no


# Text settings #
use_xft yes
xftalpha 0
xftfont Open Sans Light:size=10


override_utf8_locale yes


imlib_cache_size 0


# Color scheme #
default_color FFFFFF


color1 FFFFFF
color2 F9F9F9
color3 AAAAAA


TEXT
${execi 300 curl -s "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D717348" -o ~/.cache/weather.xml}${image ~/.conky-weather/assets/right-bar-dark.png -p 283,20 -s 148x560}${image ~/.conky-weather/assets/shadow-2.png -p 1,17 -s 433x566}${image ~/.conky-weather/assets/shadow.png -p 303,20 -s 54x560}${color2}
#----------temp max/min di oggi---------------------------
${font Droid Sans :size=12}${alignr 10}${voffset 17}${execi 300 sh ~/.conky-weather/conv.sh ; sed -n "1p" ~/.conky-weather/temp1.txt}°${alignr 10}/${execi 300 sed -n "1p" ~/.conky-weather/temp2.txt}°${color3}${font Droid Sans :size=12}
${voffset 10}${alignr 10}oggi
#----------temp max/min di domani-----------------------
${color2}${font Droid Sans :size=12}${alignr 10}${voffset 72}${execi 300 sed -n "1p" ~/.conky-weather/temp3.txt}°${alignr 10}/${execi 300 sed -n "1p" ~/.conky-weather/temp4.txt}°
${color3}${font Droid Sans :size=12}${voffset 10}${alignr 10}domani
#----------temp max/min del 3° giorno-------------------
${color2}${font Droid Sans :size=12}${voffset 72}${alignr 10}${execi 300 sed -n "1p" ~/.conky-weather/temp5.txt}°${alignr 10}/${execi 300 sed -n "1p" ~/.conky-weather/temp6.txt}°
${color3}${font Droid Sans :size=12}${alignr 10}${voffset 10}${execi 3600 date -d +2day +%A}
#----------temp max/min del 4° giorno-------------------
${color2}${font Droid Sans :size=12}${alignr 10}${voffset 72}${execi 300 sed -n "1p" ~/.conky-weather/temp7.txt}°${alignr 10}/${execi 300 sed -n "1p" ~/.conky-weather/temp8.txt}°
${color3}${font Droid Sans :size=12}${voffset 10}${alignr 10}${execi 3600 date -d +3day +%A}
#----------temp max/min del 5° giorno-------------------
${color2}${font Droid Sans :size=12}${alignr 10}${voffset 72}${execi 300 sed -n "1p" ~/.conky-weather/temp9.txt}°${alignr 10}/${execi 300 sed -n "1p" ~/.conky-weather/temp10.txt}°
${color3}${font Droid Sans :size=12}${voffset 10}${alignr 10}${execi 3600 date -d +4day +%A}${font Droid Sans :size=12}
#----------dati su vento umidità pressione visibilità---
${color1}${goto 20}${voffset -136}Umidità:  ${color4}${execi 300 grep "yweather:atmosphere" ~/.cache/weather.xml | grep -o "humidity=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"}%${color1}
${goto 20}${voffset 20}Vento:  ${color4}${execi 300 grep "yweather:wind" ~/.cache/weather.xml | grep -o "speed=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | sed -n "2p"}Km/h ${color1}${execi 300 sh ~/.conky-weather/direzione-vento.sh | sed -n "1p" ~/.conky-weather/wind.txt}
${goto 20}${voffset 20}Pressione:  ${color4}${execi 300 grep "yweather:units" ~/.cache/weather.xml | grep -o "pressure=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | sed -n "2p"}mb${color1}
${goto 20}${voffset 20}Visibilità:  ${color4}${execi 300 grep "yweather:atmosphere" ~/.cache/weather.xml | grep -o "visibility=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"}Km#${execi 300 grep "yweather:units" ~/.cache/weather.xml | grep -o "distance=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | sed -n "0p"}
#-----------temp attuale---------------------------------------
${color1}${font Raleway:weight=Light :size=120}${alignr 134}${voffset -520}${execi 300 echo `echo $(grep "yweather:condition" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*") - 32 | bc` > ~/.conky-weather/temp.txt ; echo `echo "scale=0;$(sed -n "1p" ~/.conky-weather/temp.txt) / 1.8" | bc`}°
${font Droid Sans :size=16}${alignr 164}${voffset -100}${execi 300 sed -n "$(($(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | sed -n "1p")+1))p" ~/.conky-weather/weather.txt}
${execi 300 cp -f ~/.conky-weather/weather-photos/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | sed -n "1p").png ~/.cache/weather.png}${image ~/.cache/weather.png -p 4,20 -s 299x560}
#-----------icone previsioni dei 5 giorni-------------------
${execi 300 cp -f ~/.conky-weather/weather-icons-light/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==1').png ~/.cache/weather-1.png}${image ~/.cache/weather-1.png -p 320,26 -s 32x32}
${execi 300 cp -f ~/.conky-weather/weather-icons-light/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==2').png ~/.cache/weather-2.png}${image ~/.cache/weather-2.png -p 320,146 -s 32x32}
${execi 300 cp -f ~/.conky-weather/weather-icons-light/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==3').png ~/.cache/weather-3.png}${image ~/.cache/weather-3.png -p 320,266 -s 32x32}
${execi 300 cp -f ~/.conky-weather/weather-icons-light/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==4').png ~/.cache/weather-4.png}${image ~/.cache/weather-4.png -p 320,390 -s 32x32}${voffset 20}
${execi 300 cp -f ~/.conky-weather/weather-icons-light/$(grep "yweather:forecast" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*" | awk 'NR==5').png ~/.cache/weather-5.png}${image ~/.cache/weather-5.png -p 320,506 -s 32x32}${voffset 20}${font}
gli script di conversione gradi-->testo del vento e delle temperature farhenheit-->celsius li ho già postati.

La pipe
Codice:
| awk ==1
non funziona con una variabile al posto del numero (in questo caso 1)?
 
Ottimo:party: :ok:
Sembra sia uscita molto bella. :figo:

Resto dell' idea che dovresti inserire tutte quelle funzioni che fai fare alla conky, in uno script unico, usare un solo file.txt invece di molti. Se indirizzi una riga o un blocco di righe in un file, ti basta usare >, invece per aggiungere in un file esistente devi usare la doppia >> (che accoda), così useresti un solo file.txt. Vedo che stai usando conky 1.09.x (?), quando sarai costretto ad aggiornare alla 1.10.x, quella config salta.
:sisilui: Quindi preparati... :P
Visto che ci siamo, butta un occhio al consumo di risorse.

Bene, ora me ne fai una usando meteo.it :lol:

Bye^^
 
Ottimo:party: :ok:
Sembra sia uscita molto bella. :figo:

Resto dell' idea che dovresti inserire tutte quelle funzioni che fai fare alla conky, in uno script unico, usare un solo file.txt invece di molti. Se indirizzi una riga o un blocco di righe in un file, ti basta usare >, invece per aggiungere in un file esistente devi usare la doppia >> (che accoda), così useresti un solo file.txt. Vedo che stai usando conky 1.09.x (?), quando sarai costretto ad aggiornare alla 1.10.x, quella config salta.
:sisilui: Quindi preparati... :P
Visto che ci siamo, butta un occhio al consumo di risorse.

Bene, ora me ne fai una usando meteo.it :lol:

Bye^^
mh, interessante l'accodamento >>; il problema è che risparmierei un sacco di linee se potessi 'variabilizzare' il comando '| awk NR==1' oppure 'sed -n "1p"', ovvero sostituire 1 con una variabile numerica.
consumo di risorse mi sembrano circa 10MB, ma stasera controllo meglio.
Ps no niente meteo.it e non solo perchè :retard: ma perchè mi sembra più attendibile ilmeteo.it.:vv:
e se mi si aggiorna conky e non va più installo gnome..
 
Ultima modifica:
mh, interessante l'accodamento >>; il problema è che risparmierei un sacco di linee se potessi 'variabilizzare' il comando '| awk NR==1' oppure 'sed -n "1p"', ovvero sostituire 1 con una variabile numerica.
consumo di risorse mi sembrano circa 10MB, ma stasera controllo meglio.
Ps no niente meteo.it e non solo perchè :retard: ma perchè mi sembra più attendibile ilmeteo.it.:vv:
e se mi si aggiorna conky e non va più installo gnome..
Non vedo perché bisogna chiudere NR in una variabile che di per sé è una variabile. Sarebbe come indicare $HOME=/home/momy/ quando $HOME è già /home/momy. :P
Questo succede perché si lavora su output, di fatto per raccogliere dati sei costretto ogni volta nell' usare il comando `grep "yweather:forecast" ~/.cache/weather.xml | bla bla`, invece (so di ripetermi :/) di usare un file contenente già le info che ti servono, magari son da convertire o cosa... ma se non altro non sei obbligato a filtrare ogni volta.
Guarda con 3 comandi di numero cosa ottieni:
Codice:
grep -o "[a-zA-Z]*.\"[^\"]*" ~/.cache/weather.xml | sed -e '/chill/,/src/!d;/http/d;s/="/\n/g'
Provalo, apri un terminale e copy/paste così com'è, fornirà un output bello ordinato.
Ora immagina di indirizzarlo in un file alternativo
Codice:
grep -o "[a-zA-Z]*.\"[^\"]*" ~/.cache/weather.xml | sed -e '/chill/,/src/!d;/http/d;s/="/\n/g' > ~/.conky-weather/weather.conf
Devi elaborare la linea 28 per la temperatura di oggi come abbiam già visto?
Codice:
OGGI_Far=$(sed -n '24p'  ~/.conky-weather/weather.conf)
Temp_Celsius=$(echo "$(expr $OGGI_Far - 32) / 1.8" | bc)
Vuoi sostituire il valore della linea 24 con la temperatura in Celsius?
Codice:
sed -i "24s/$OGGI_Far/$Temp_Celsius/"  ~/.conky-weather/weather.conf
Non te ne frega? Basta indirizzarla altrove:
Codice:
Temp_Celsius=$(echo "$(expr $OGGI_Far - 32) / 1.8" | bc) > ~/.conky-weather/temperature
Taac Fatto!

Non mi stancherò mai di scriverlo.

Auguri^^
 
Ultima modifica:
Guarda con 3 comandi di numero cosa ottieni:
Codice:
grep -o "[a-zA-Z]*.\"[^\"]*" ~/.cache/weather.xml | sed -e '/chill/,/src/!d;/http/d;s/="/\n/g'
Provalo, apri un terminale e copy/paste così com'è, fornirà un output bello ordinato.
aye-aye sir, è la stessa 'tecnica' che ho sul conkyrc di htc-weather; qui volevo risolvere in un altro modo così imparavo qualcosa d'altro.:utonto:
così ho imparato che il comando giusto è '| awk &variabile' essendo a es.: variabile="NR==1" (eh lo so ho scoperto l'acqua calda):asd:
 
@rebellion Succede che conky all' avvio carica i dati presenti, che siano vecchi o nuovi, lei non fa differenza. :P
La stessa cosa capitò dopo l' aggiornamento alla v. 1.10, risolsi dividendo gli avvii e aggiornamenti. In pratica, dovresti avere uno script che aggiorna la weather e la configrc che aggiorna la conky. Nelle configurazioni classiche[1] conky da l' imput di aggiornare la weather a tempo determinato - ${execpi N-secondi script-weather}. Diversamente ho optato per un service.timer che lancia lo script-weather a tempo determinato (un po' come cron per capirci) e dopo avvio la conky mediante il file autostart di Openbox, quindi sono indipendenti. Alternativa come insegna TeoBigus (le migliori config weather erano/sono le sue), kill -STOP $(pidof conky) e kill -CONT $(pidof conky) rispettivamente all' inizio e alla fine dello script script-weather.

Esempio:
Di norma uno script-weather è +/- così.
Codice:
#!/bin/bash
address="http://www.sito-weather.bla.bla.bla"
wget -O /destinazione/file/sorgente $address
#Blocco la conky
kill -STOP $(pidof conky)
if [[ -s blablabla ]]
then
.......
vari comandi filtro
.......
bla bla
.......
fi
#la conky riprende
kill -CONT $(pidof conky)

# e usciamo
exit 0

C'è da dire una cosa, se tu lanci lo script-weather e conky usando uno script esterno inserito in autostart, la conky dovrebbe rimanere appesa, aspettare che lo script termini quello che deve fare e dopo avviarsi. Quindi c'è la possibilità che il debug dia un errore perché non risulta nessun processo conky avviato, che puoi benissimo visualizzare avviando il tutto da terminale.
Magari risolvi tutto con uno sleep nello script che avvia il tutto. :P
Codice:
#!/bin/bash
killall conky
conky-wether.sh
# aspettiamo un po'
sleep 10
conky -c /tua/config/conkyrc
exit 0
Però così avresti lo script-weather che si avvia prima della conky, ma anche dopo perché lanciato dalla conky stessa (come al punto 1). Dipende da come hai istruito la cosa.
Devi provare.

Bye^^
 
avevo già provato con sleep 10 subito dopo 'curl -s'&'grep -o [etc.] > weather-conf' ma non avevo risolto.

dunque, ho impostato conky con un lanciatore su cairo-dock: se non esiste il pid allora avvia conky, se è presente allora lo killa. quindi penso proverò ad avviare conky con uno script che prima avvia weather-script, attende 5 secondi eppoi avvia conky.
una domanda: all'interno di conkyrc avvio altri script esterni, all'inizio e alla fine di tali script devo stoppare e riavviare conky tutte le volte?
 
@« MoMy » son script lanciati da conky ma devo razionalizzare il tutto e allora strutturo conky così:
1- avvio weather-script che crea il file weather-conf ma senza il comando di intervallo temporale; avvio tutti gli script che mi creano conversioni in celsius e in italiano e in direzione testuale del vento;
2- avvio conky che mi avvia lo weather-script questa volta con il comando execi così ho già il conky-weather.

PS nel weather-script che hai postato perchè c'è il comando: " if [[ -s blablabla]] "?
 
@rebellion sì, però facendo così lo script lo avvii due volte. Se usassi cron o systemd.timer oltre ad avviarlo una volta, ti sganceresti dalla config di conky.

Nei miei scriptini uso spesso i costrutti condizionali (credo si chiamino così) if/then con gli operatori di confronto (-s, -z, -n, -e, =, !=, -eq, > etc). Una domanda, cosa succede se non sei connesso alla rete e avvii la tua weather e come potresti rimediare o creare una alternativa?
Questo if [[ -s blablabla ]] mi serviva per dare una pallida struttura all' esempio.

Bye^^
 
@« MoMy » ho risolto in questa maniera, ovvero lancio conky con questo script:
Codice:
#!/bin/bash

if ps aux |grep "[c]onky" ; then
 killall conky
else sh ~/.conky-weather/weather.sh ;
 sleep 2 ;
 conky -c ~/.conky-weather/conkyrc.old
fi
 
Mi sembra di ricordare che la conky-weather la vuoi richiamare con un lanciatore e che andrebbe ad affiancare una conky tradizionale, non-weather (era un orologio se non sbaglio). Sempre se ricordo bene, la conky-weather doveva essere ''una cosa a video'' temporanea, offrire un output temporaneo per poi chiudersi.
Dal man conky:
-i COUNT Number of times to update Conky (and quit)
oppure
total_run_times
Total number of times for Conky to update before quitting. Zero makes Conky run forever
Se una conky non-weather è avviata, lanciando il comando killall, la killa.
Così come la vuoi fare, ogni volta che clicchi sul lanciatore riscarica tutto l' ambaradan, rifiltra, reimposta etc etc quindi a cosa serve avere nella configrc della conky-weather un timer che aggiorni la conky-weather se voleva offrire a video un output temporaneo?
Se c'è una conky non-weather fissa, perché non dai a lei il compito di tener aggiornata la configurazione della conky-weather cosiché il lanciatore avrà il solo compito di far visualizzare conky-weather?
Non è migliore "$ ps -a | grep conky"?
In Bash il punto e virgola (;) è un separatore di comandi, serve per inserire più comandi nella stessa riga, se i comandi son uno sotto l' altro, non serve inserirlo.

Bye^^
 
Pubblicità
Pubblicità
Indietro
Top