Pagine

domenica 3 ottobre 2010

Conkyzziamo i nostri EeePc

Non so quanti di voi conoscono il Conky. Ebbene, se non lo conoscete, chiudete subito questa pagina, altrimenti.... peggio per voi! :-D

Mi basti dire che è un programmino che consente di stampare a video ogni sorta di informazioni, rimanendo estremamente leggero sul sistema, sia in termini di ram, sia in termini di spazio su disco occupato.

In questa breve guida, impareremo a sfruttarlo nei nostri carissimi EeePc.

Installazione

Per installarlo, non si deve fare altro che dare:
# aptitude install conky-all
A questo punto, i passi successivi saranno
  • crearsi un file .conkyrc nella propria home con la configurazione
  • avviare il programma
Per avviarlo, io uso il seguente scriptino, molto banale, associato ad una data combinazione di caratteri:
#!/bin/sh
# click per avviare, click per arrestare

if pidof conky | grep [0-9] > /dev/null
then
exec killall conky
else
exec conky
fi

Ottimizzazioni per i vari Desktop

A seconda del file manager che gestisce il desktop, il conky può necessitare di ulteriori adattamenti. Il mio consiglio è quello di creare vari cloni del .conkyrc, distinguendoli con nomi facilmente riconoscibili quali, ad esempio, .conkyrc-LXDE.
In questi casi, per avviare il .conkyrc che ci interessa, basterà creare un clone dello script di avvio sopra riprodotto, ma sostituendo la penultima riga, con, per rimanere in esempio, la seguente:
exec conky -c $HOME/.conkyrc-LXDE
Mostriamo ora le opzioni migliori per avviare il conky giusto a seconda del file manager.

Nautilus (Gnome)

Diciamo subito che la sezione essenziale è la seguente:
own_window yes
own_window_transparent yes
own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
Ebbene queste sono probabilmente le opzioni migliori per Gnome/Nautilus.

KDE (Dolphin)

Nel caso di Kde, invece, come mi suggerisce Luca Corsato, sarà opportuno utilizzare queste:
own_window yes
own_window_transparent yes
own_window_type normal
own_window_argb_visual yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

Lxde/OpenBox (PcManFm)

Con PcManFm, invece, non esistono opzioni del tutto ottimali, ma io uso (e consiglio) le seguenti:
own_window yes
own_window_transparent yes
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
Si noti che con normal, il conky scomparirà quando si sarà clickato sull'icona per ridurre tutto ad icona o si saranno premute le corrispondenti combinazioni di tasti. In alternativa, si potrebbe utilizzare anche l'opzione desktop, ma, in quest'ultimo caso, il conky sparirebbe qualora clickaste sul desktop... Scegliete voi l'opzione che preferite! ;)

PPA Conkyhardcore

Per chi fosse interessato, esiste un repository nato per Ubuntu, ma utilizzabile tranquillamente anche su Debian, che offre una serie di utilissimi plugins per Conky (per le previsioni meteo, per le mails, per pidgin etc. etc.). Questo è quanto dobbiamo aggiungere al nostro sources.list:
## PPA for ConkyHardcore
deb http://ppa.launchpad.net/conkyhardcore/ppa/ubuntu lucid main
Per la chiave di sicurezza:
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 66AE0775

Configurazione su EeePc

Non starò certo a spiegarvi come configurare il nostro .conkyrc, sia perché non voglio togliervi il piacere di studiare come matti, sia perché... se ne trovano a miliardi in rete. Qui mi limiterò a proporvi la mia sezione specifica per EeePc:
${font style:bold:size=8}${color yellow}HARDWARE MONITOR ${hr 2}${color}${font}
ACPI Temp: ${acpitemp} °C  ${alignr}Fan Speed: ${exec cat /sys/class/hwmon/hwmon1/fan1_input} rpm
Prest.: ${color orange}${execi 10 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor} ${alignr}${execi 10 ~/.scripts/she.sh}${color}
Card: ${execi 10 ~/.scripts/card.sh} ${goto 65}Wifi: ${execi 10 ~/.scripts/wifi.sh} ${goto 120}Cam: ${execi 10 ~/.scripts/cam.sh}  ${alignr}BT: ${execi 10 ~/.scripts/bt.sh}
${color blue}${if_match ${mixer Master} < 80}${color red}${if_match ${mixer Master} < 45}${color green}${endif}${endif}${mixerbar Master 12}${color}
${voffset -17}${alignc}VOLUME: ${mixer}
${color green}${if_match ${battery_percent BAT0} < 50}${color orange}${if_match ${battery_percent BAT0} < 20}${color red}${endif}${endif}${battery_bar 12 BAT0}${color}
${voffset -17}${alignc}${battery_time BAT0} (${battery_percent BAT0}%)
${color red}${voffset 5}${alignc}Uptime: ${color green}${uptime}${color}
Come potrete notare, c'è una riga che contiene tutta una serie di richiami ad alcuni script inseriti nella cartella ~/.scripts: con essi, potremo conoscere dal vivo lo stato dello SHE, del Card Reader, del Wifi, del Bluetooth e della WebCam. Nel seguito, posto i corrispondenti script.

Bluetooth (bt.sh)

#!/bin/bash
# by Doc

# Find bt and wlan rfkill then check states
for i in /sys/class/rfkill/*; do
 if [ -f "$i/name" ] && [ "$(cat "$i/name")" = "eeepc-bluetooth" ]; then
  BT_ST=`cat "$i/state"`
 fi
done

# Change output to human readable
case "${BT_ST}" in
 0)
  echo Off
  ;;
 1)
  echo On
  ;;
 *)
  echo N/A
  ;;
esac

WebCam (cam.sh)

#!/bin/bash
# by Doc

var=$(cat /sys/devices/platform/eeepc/camera)
var1=1
var2=0

if [ "$var" == "1" ]; then
    echo 'on'
fi

if [ "$var" == "0" ]; then
    echo 'off'
fi

Card Reader (card.sh)

#!/bin/bash
# by Doc

var=$(cat /sys/devices/platform/eeepc/cardr)
var1=1
var2=0

if [ "$var" == "1" ]; then
    echo 'on'
fi

if [ "$var" == "0" ]; then
    echo 'off'
fi

SHE (she.sh)

#!/bin/bash
# by Doc

var=$(cat /sys/devices/platform/eeepc/cpufv)
var1=0x302
var2=0x301
var3=0x300

state=$(cat /var/lib/eeepc-acpi-scripts/cpufv)
state1=manual
state2=auto

if [ "$var" = "$var1" ] && [ "$state" = "$state1" ]; then
    echo 'Powersave'
elif [ "$var" = "$var2" ] && [ "$state" = "$state1" ]; then
    echo 'Normal'
elif [ "$var" = "$var3" ] && [ "$state" = "$state1" ]; then
    echo 'Performance'
elif [ "$var" = "$var1" ] && [ "$state" = "$state2" ]; then
    echo 'Auto (Powersave)'
elif [ "$var" = "$var2" ] && [ "$state" = "$state2" ]; then
    echo 'Auto (Normal)'
elif [ "$var" = "$var3" ] && [ "$state" = "$state2" ]; then
    echo 'Auto (Performance)'
fi

Wifi (wifi.sh)

#!/bin/bash
# by Doc

# Find bt and wlan rfkill then check states
for i in /sys/class/rfkill/*; do
 if [ -f "$i/name" ] && [ "$(cat "$i/name")" = "eeepc-wlan" ]; then
  WIFI_ST=`cat "$i/state"`
 fi
done

# Change output to human readable
case "${WIFI_ST}" in
 0)
  echo Off
  ;;
 1)
  echo On
  ;;
 *)
  echo N/A
  ;;
esac

Buon Divertimento!!!

---------------------------------

by Doc, last modified 4 October 2010

Nessun commento:

Posta un commento