2011-12-11

sfondo casuale all'avvio

Un semplice script per impostare uno sfondo casuale all'avvio del computer scelto nella cartella indicata dall'utente.

Ce ne sono due versioni: una imposta lo sfondo all'avvio, l'altra lo cambia casualmente ogni dieci minuti.

#!/bin/bash

workingPath=$1

# genera un file temporaneo con la lista filtrata
# dei file presenti nella cartella
(ls $workingPath | grep jpg && ls $workingPath | grep png) > /tmp/listaSfondi

fileNum=`cat /tmp/listaSfondi | wc -l`

# genera un numero casuale e da` il resto della divisione
# per il numero di file nella cartella
imageNum=$RANDOM
let "imageNum %= $fileNum"

# sceglie il file corrispondente al numero
let "imageNum += 1"
fileName=`cat /tmp/listaSfondi | head -n $imageNum | tail -n 1`

# imposta lo sfondo
bgPath=`echo $workingPath"/"$fileName | sed s/"\/\/"/"\/"/g`
hsetroot -fill $bgPath



Per cambiare lo sfondo ogni N secondi basta aggiungere all'inizio "while [ "1" = "1" ]; do" e alla fine "sleep N" e "done".

2011-11-13

script per cambiare il layout di tastiera

un piccolo script bash per modificare il layout della tastiera (toggle, si usa sempre lo stesso tasto per passare da un layout all'altro).

#!/bin/bash

# una funzione che estrae il layout corrente (in modo un po' brusco)
getCurrentLayout () {
setxkbmap -query | sed s/^[[:alpha:]]*:[[:space:]]*// | tail -n 1
}

# il layout corrente viene memorizzato in una variabile
# non è del tutto necessario ma rende lo script comprensibile
currentLayout=`getCurrentLayout`

if [ $currentLayout = "us" ]
then setxkbmap us dvorak-intl
elif [ $currentLayout = "dvorak-intl" ]
then setxkbmap it
else setxkbmap us
fi

questo script passa da layout americano a dvorak a italiano, si può facilmente modificare per i layout che si vogliono usare. Una annotazione: l'ultima voce non contiene un controllo condizionale (una cosa tipo "elif [ $currentLayout = "it" ] then setxkbmap us") per far sì che, in caso sia stato impostato un layout diverso da quelli previsti, si possa tornare facilmente a quello americano.

2011-04-10

Il post della domenica

Pubblico uno script misero realizzato ieri sera per vedere i video youtube con mplayer (su un netbook questo porta a prestazioni molto migliori):


#!/bin/bash

# crea una cartella nascosta col nome del filmato e ci si sposta
mkdir .youtube-$1
cd .youtube-$1

# avvia il download del video (l'attesa di 4 secondi è necessaria
# perché il download parta
youtube-dl http://www.youtube.com/watch?v=$1 &
sleep 4

# esegue il video e una volta terminato lo elimina
mplayer $1.flv.part
rm $1.*

Sfrutta il programma youtube-dl e prende come input il codice di riferimento del video (non l'intero indirizzo). Viene creata una nuova cartella per evitare di cancellare file importanti in caso di una chiamata tipo "video *" che porterebbe al disastroso "rm *.*"

Seguiranno miglioramenti.