Crear tu propia "alarmita" rapida en unix
Ok, debería estar estudiando, pero....
Ponía la pava para el mate, me iba a estudiar, y se me hervía el agua! siempre! entonces pensé esta solución: usar un programita en linux para que suene un "ring" después de N minutos.
El problema es que no lo encontré! pero hice el mio en un ratito! Así es como:
hice muchos comanditos
timbre: Lo ejecutás, y hace sonar un timbre
mplayer $HOME/timbre.wav
con-retardo: Llama a sleep, y luego ejecuta un comando pasado por parametro.
sleep $1
shift #shift remueve el primer argumento
$@
con-retardo-bg: Igual que con-retardo, pero lo hace en background.
nohup con-retardo $@ &
Con esos tres comandos alcanza para definir una alarma, "con-retardo-bg TIEMPO timbre" hace sonar una alarma transcurrido el tiempo TIEMPO. Y así defini el comando alarma.
pero yo quería un poquito más, poder hacer click en un icono, que se me abra una ventanita y me pregunte el tiempo, y luego se corra la alarma. Me hubiera bastado un programa que abra una ventana y lea un input y lo imprima por standard error, pero ese programa no existe, asi que defini estos otros comandos:
leer-y-ejecutar: Imprime el primer argumento, luego espera un input del usuario, y luego ejecuta el resto de los argumentos como si fuera un comando pero con el input del usuario al final. Algo así:
nicolas@desktop:~/bin$ leer-y-ejecutar "Ingrese un texto" echo aca se ve el texto lol:
Ingrese un texto
esto es un textoooooo
aca se ve el texto lol: esto es un textoooooo
Y lo definí así:
echo $1
read VAL # lee un valor y lo setea en la variable VAL
shift
$@ $VAL
alarma-window: Abre una terminal que me pregunta el tiempo, y luego ejecuta el programa alarma
gnome-terminal -x leer-y-ejecutar "Tiempo (segundos):" alarma
# abre una terminal que ejecuta el programa y después se cierra
Y eso es todo. puse alarma-window como un icono en mi panel de gnome y ya está, corre al toque!
Este es el código completo no resumido, si te interesa. Como alarma usé este bonito timbre: http://www.freesound.org/samplesViewSingle.php?id=9218
nicolas@desktop:~/bin$ cat timbre
#!/bin/sh
mplayer $HOME/timbre.wav
nicolas@desktop:~/bin$ cat con-retardo
#!/bin/sh
if [ $# -eq 0 ]; then
echo Uso: con-retardo SEGUNDOS-DE-RETARDO comando argumentos...
exit
fi
sleep $1
shift
$@
nicolas@desktop:~/bin$ cat con-retardo-bg
#!/bin/sh
if [ $# -eq 0 ]; then
echo Uso: con-retardo-bg TIEMPO-DE-RETARDO comando argumentos...
exit
fi
nohup con-retardo $@ &
nicolas@desktop:~/bin$ cat alarma
#!/bin/sh
if [ $# -ne 1 ]; then
echo uso: alarma SEGUNDOS
exit
fi
con-retardo-bg $1 timbre
nicolas@desktop:~/bin$ cat leer-y-ejecutar
#!/bin/sh
echo $1
read VAL
shift
$@ $VAL
nicolas@desktop:~/bin$ cat alarma-window
#!/bin/sh
gnome-terminal -x leer-y-ejecutar "Tiempo (segundos):" alarma
No comments:
Post a Comment