Tutorial GeekTool + Scripts
Para explicar un poco que es el geektool y su funcionamiento tirare un poco de Wiki, porque si lo explico con mis palabras va a quedar algo así "Es una movi que sirve pa ver la hora y demás polladas en el escritorio" entonces como debemos ser un poco mas profesionales en los tutos, aun que yo creo que se ha entendido de cojones, va el wiki: No tiene wiki jajajaja
.
Con este tutorial vamos a conseguir algo como esto o en caso de algunos una mierda como un templo jajaja que noooooooo, es coña!!
VersionesBueno, para empezar tendremos que instalar el Geektool. Hay 2 formas de hacerlo y por lo que he podido comprobar, 2 versiones. La primera es la tipica, tiramos de Appstore y pista.
La segunda es bajarnos el dmg e instalarlo.
La version de la Appstore es valida para lion, la version en dmg solo es para Leopard y demás antiguallas. (Yo tengo Leopard)
Ventajas de una y de otra Pues....no sabria que decir, por ejemplo a mi la de la Appstore me ha dado problemas a la hora de poner los scripts, ya que me los superponia a los inconos del escritorio, quedado muy mal esteticamente. Por el contrario la del dmg no me deja ejecutar algun script que con la del Appstore no he tenido problema al hacerlo.
InstalacionPara instalar la version del Appstore, lo abriremos y buscaremos Geektool, pincharemos en instalar dejando que Mac OX haga el resto.
Para instalar la version dmg, la bajamos de
aqui, hacemos doble click en ella, nos monta el dmg, lo abriremos y le damos caña al icono del Geektool, el soft hara el resto. Quedando instalado en las Preferencias del Sistema.
Bien, una vez hecho todo este tramite, comenzamos con la pomada guapa. La pomada consiste en hacer que Geektool ejecute nuestros scripts para asi poder verlos de forma grafica en el escritorio. Tenemos una gran variedad de usos y aplicaciones, pero como yo no tengo ni puta idea de programarlos vamos a poner los tipicos para que nos quede algo curioso y fino fino.
Uso de GeektoolAbrimos el Geektool (en mi caso esta en preferencias del sistema)(el que haya instalado el geektool desde el Appstore lo tendra en aplicaciones) y vemos que cosas tiene y cuales vamos a usar. Tenemos 3 opciones: Shell, imagen y archivo.
Shell es para ejecutar algo, ya sea un script o un comando de consola con el que ejecutar algo: script, php, tengo la picha grande, etc etc...
Imagen es para cargar imagenes, como su propio nombre indica.
Archivo sera para cargar archivos, no se, no lo he usado nunca.
En este tutorial vamos a usar 2 de ellas, Shell e Imagen. Para hacer que alguna de ellas se situe en el escritorio es muy facil, solo hay que pinchar en una y sin soltar, arrastrar hasta el escritorio. Os dejo un video de mi escritorio para que veáis como se hace (En plan Dummies, que nunca esta demás)
Como hemos visto en el video, eso se hara cuando queramos sacar un shell o una imagen.
Si nos hemos fijado, al sacar el shell ha salido un menu de opciones to curioso. En el caso del video es el menu de shell, pero ahora explicare el de los 2, imagen y shell.
Teniendo claro todo esto, vamos a comenzar a poner los scripts.
Lista de scripts para este tutorial (Hay muchos mas, pero a mi no me molan y no me sale de los huevos ponerlos). Estos los pondremos en la linea de comando y luego a cada uno le daremos un tiempo de refresco apropiado, asi no se quedaran fijos. El tiempo de refresco es importante, porque si no lo ponemos, el shell no actualizara dicho script y hasta no reiniciar el pc no veremos una nueva hora, dia, clima, iba yo de pregrino y me cogiste de la mano, etc...
El tiempo de refresco lo pongo al lado de cara titulo de script. Pongo los tiempos que uso yo, cada uno que ponga el que le salga del rabo. Los tiempos van en Segundos, es decir 60 segundo una peli de nicolas cage cojonuda!!! jajaja al lio!!
Hora 1 Segundo de refrescodate '+%I:%M:%S'
PM-AM 60 Segundos de refrescodate +"%p"
Dia de la semana 360 Segundos de refrescoecho `date +%A` |awk '
BEGIN { upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lower = "abcdefghijklmnopqrstuvwxyz"
}
{
FIRSTCHAR = substr($1, 1, 1)
if (CHAR = index(lower, FIRSTCHAR))
$1 = substr(upper, CHAR, 1) substr($1, 2)
print $0
}'
Dia del mes 360 Segundos de refrescodate +%d
Mes 3600 Segundos de refrescoecho `date +%B` |awk '
BEGIN { upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lower = "abcdefghijklmnopqrstuvwxyz"
}
{
FIRSTCHAR = substr($1, 1, 1)
if (CHAR = index(lower, FIRSTCHAR))
$1 = substr(upper, CHAR, 1) substr($1, 2)
print $0
}'
Año X Segundos de refresco (el que sea un poco espabilado que calcule los segundos que quedan hasta que acabe el año y asi solo se actualiza cada año, el que sea bobo como yo que ponga "culo" jajaja es coña, poner 3600 Segundos)date +%Y
Calendario (cortesia de Makanudo) 360 Segundos de refrescocal | awk '{ print " "$0; getline; print " Lu Ma Mi Ju Vi Sa Do"; getline;
if (substr($0,1,2) == " 1") print " 1 "; \
do { prevline=$0; if (getline == 0) exit; print " " \
substr(prevline,4,17) " " substr($0,1,2) " "; } while (1) }' | sed -E '1,$'"s/ ($(date +%e))( |$)/ $(echo '\033[1;31m')\1$(echo '\033[0m')\2/"
Tiempo (The weather que dicen los ingleses) 60 Segundos de refrescocurl --silent "http://weather.yahoo.com/spain/basque-country/san-vicente-de-baracaldo-773463/" | grep "current-weather" | sed "s/.*background\:url(\'\(.*\)\') .*/\1/" | xargs curl --silent -o /tmp/weather.png\
Si nos fijamos en el código, hay una dirección web que es de yahoo y en este caso es la dirección del tiempo donde vivo yo. Tenéis que entrar en
yahoo tiempo y seleccionar la de vuestro barrio. Después la cambiareis por la del script.
Icono del tiempo 60 Segundos de refrescofile:///tmp/weather.png
Temperatura que hace en tu barrio 60 Segundos de refrescocurl http://m.wund.com/global/stations/08025.html |sed -n '21p' | sed -e 's/<span class="nowrap"><b>//g' | sed -e 's/<\/b.*/ Cº/g'
Si nos fijamos en el código, hay una dirección web que es de wund.com y en este caso es la dirección del tiempo donde vivo yo. Tenéis que entrar en
Wund.com y seleccionar vuestro barrio. Después la cambiareis por la del script.
EDITO: Cambiamos el codigo anterior por este nuevo. Se debe a que han añadido codigo en la pagina y ya no se muestra en la linea 21, sino que ahora lo hace en la 49. Como se puede ver solo es necesario cambiar el 21 por un 49 y ya funcionara.
curl http://m.wund.com/global/stations/08025.html |sed -n '49p' | sed -e 's/<span class="nowrap"><b>//g' | sed -e 's/<\/b.*/ Cº/g'
Yo no tengo mas, pero tambien hay para ver los twitters, el caralibro, estado de CPU, temperatura cpu y molto cosas mas.
Meter dichos códigos en el Geektool.Para meter los códigos en geektool basta con ponerlos en la linea de comando, la que hemos visto en la foto que describe las opciones.(Sustaco que ma dao el gato, ojo infarto!!)
Cuando el comando es muy largo o metemos un script de varias lineas, pinchamos en los puntos de al lado de la linea de comando y se nos abre una especie de editor de texto. Basta con poner ahi el código, darle a cmd+s para guardar y luego cerrar el editor.
Como hemos visto en la imagen anterior una vez metido el código nos sale en el shell la palabra "Domingo". Esto quiere decir que hemos metido el script para que nos muestre el dia de la semana con la primera letra en mayúscula. (Hay un comando que es mas simple y lo muestra en minúscula todo). Pues ahora hay que hacer lo mismo pero con todos los demás.
Para los mas bajos abajo del todo os voy a dejar todos los archivos para que podais ahorraos todo el proceso, pero es mejor hacerlo uno a uno, así aprendeis mamones.
Modificación de scripts y colocación de archivos, así como explicación de su funcionamientoHa quedado claro que para sacar unos shell y unas imagenes, asi como para meterles unos códigos que ejecuten comandos internos, es facil.
Ahora vamos a hacer que los shell ejecuten scripts externos mediante un comando de ejecución de scripts. Estos scripts externos nos sirven para mostar procesos que necesitan gestionar y crear archivos, en este caso imagenes que nos muestran los estados de las cosas que queremos analizar. Como ya he dicho en este tuto haremos capacidad de discos duros y carga de baterias, de Macbook y perifericos.
La lista de ejecucion de scripts externos es la siguiente:
Carga de bateria Macbook 60 Segundos de refrescoCon este script vamos a conseguir que Geektool nos muestre mediante imagenes temporales, la carga que tiene la bateria del pc. Para eso vamos a ver el funcionamiento del script.
Este script en cuestion analiza la carga maxima de bateria y la carga en el momento actual, hace una operacion matematica tan simple como una regla de 3, para obtener el numero de imagen que tiene que mostrar. Con esa imagen creada, Geektool nos mostrara la cantidad de bateria que tenemos en el Mac.
El Pack consta de dicho script, de una carpeta de imagenes y de una imagen temporal, que sera la que el script crea para asi posteriormente geektool la carge.
Como hacemos que Geektool cargue esa imagen y ejecute dicho script, pues de la siguiente forma.
Nos descargamos dicho pack con los archivos necesarios de aqui: [url]BatteryMeterApple[/url]
Al descomprimirlo veremos una carpeta llamada "BatteryMeterApple" y dentro habra un archivo llamado BM.scpt. Abriremos dicho archivo con el editor de scripts de apple y vemos la siguiente linea:
set pathName to "/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterApple/"
Cambiaremos el nombre de usuario por el de nuestro mac, guardamos y cerramos. Una vez hecho eso metemos la carpeta "BatteryMeterApple" en /Users/TU NOMBRE DE USUARIO/Documents/Geektool/.
Despues de hacer eso, pillaremos el geektool y meteremos los siguientes comandos, sacando 2 shell y 1 imagen.
Texto forzado
echo MacBook Pro: (En caso de tener un Macbook Pro)
Codigo para Shell
osascript /Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterApple/BM.scpt
Codigo para Imagen
file://localhost/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterApple/temp.png
Carga de bateria Teclado Bluetooth 60 Segundos de refresco (El código lo he hecho yo)Con este script vamos a conseguir que Geektool nos muestre mediante imagenes temporales, la carga que tiene la bateria del Teclado Bluetooth. Para eso vamos a ver el funcionamiento del script.
Este script en cuestión analiza la carga maxima de bateria del teclado y la carga en el momento actual, hace una operación matematica tan simple como una regla de 3, para obtener el numero de imagen que tiene que mostrar. Con esa imagen creada, Geektool nos mostrara la cantidad de bateria que tenemos en el teclado.
El Pack consta de dicho script, de una carpeta de imagenes y de una imagen temporal, que sera la que el script cree para así posteriormente geektool la cargue.
Como hacemos que Geektool cargue esa imagen y ejecute dicho script, pues de la siguiente forma.
Nos descargamos dicho pack con los archivos necesarios de aqui: [url]BatteryMeterTeclado[/url]
Al descomprimirlo veremos una carpeta llamada "BatteryMeterTeclado" y dentro habra un archivo llamado BM.scpt. Abriremos dicho archivo con el editor de scripts de apple y vemos la siguiente linea:
set pathName to "/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterTeclado/"
Cambiaremos el nombre de usuario por el de nuestro mac, guardamos y cerramos. Una vez hecho eso metemos la carpeta "BatteryMeterTeclado" en /Users/TU NOMBRE DE USUARIO/Documents/Geektool/.
Después de hacer eso, pillaremos el geektool y meteremos los siguientes comandos:
Texto forzado
echo Teclado:
Codigo para Shell
osascript /Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterTeclado/BM.scpt
Codigo para Imagen
file://localhost/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterTeclado/temp.png
"Carga de bateria Magic Mouse" (No lo tengo pero lo voy a poner, no soy un monstruo) 60 Segundos de refresco (El código lo he hecho yo)Con este script vamos a conseguir que Geektool nos muestre mediante imagenes temporales, la carga que tiene la bateria del Magic Mouse. Para eso vamos a ver el funcionamiento del script.
Este script en cuestión analiza la carga maxima de bateria del raton y la carga en el momento actual, hace una operación matematica tan simple como una regla de 3, para obtener el numero de imagen que tiene que mostrar. Con esa imagen creada, Geektool nos mostrara la cantidad de bateria que tenemos en el raton.
El Pack consta de dicho script, de una carpeta de imagenes y de una imagen temporal, que sera la que el script cree para así posteriormente geektool la cargue.
Como hacemos que Geektool cargue esa imagen y ejecute dicho script, pues de la siguiente forma.
Nos descargamos dicho pack con los archivos necesarios de aqui: [url]BatteryMeterMMouse[/url]
Al descomprimirlo veremos una carpeta llamada "BatteryMeterMMouse" y dentro habra un archivo llamado BM.scpt. Abriremos dicho archivo con el editor de scripts de apple y vemos la siguiente linea:
set pathName to "/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterMMouse/"
Cambiaremos el nombre de usuario por el de nuestro mac, guardamos y cerramos. Una vez hecho eso metemos la carpeta "BatteryMeterMMouse" en /Users/TU NOMBRE DE USUARIO/Documents/Geektool/.
Después de hacer eso, pillaremos el geektool y meteremos los siguientes comandos:
Texto forzado
echo Magic Mouse:
Codigo para Shell
osascript /Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterMMouse/BM.scpt
Codigo para Imagen
file://localhost/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterMMouse/temp.png
"Carga de bateria Trackpad" (Que no lo tengo joder!!) 60 Segundos de refresco (El código lo he hecho yo)Con este script vamos a conseguir que Geektool nos muestre mediante imagenes temporales, la carga que tiene la bateria del Trackpad. Para eso vamos a ver el funcionamiento del script.
Este script en cuestión analiza la carga maxima de bateria del Trackpad y la carga en el momento actual, hace una operación matematica tan simple como una regla de 3, para obtener el numero de imagen que tiene que mostrar. Con esa imagen creada, Geektool nos mostrara la cantidad de bateria que tenemos en el Trackpad.
El Pack consta de dicho script, de una carpeta de imagenes y de una imagen temporal, que sera la que el script cree para así posteriormente geektool la cargue.
Como hacemos que Geektool cargue esa imagen y ejecute dicho script, pues de la siguiente forma.
Nos descargamos dicho pack con los archivos necesarios de aqui: [url]BatteryMeterTrackpad[/url]
Al descomprimirlo veremos una carpeta llamada "BatteryMeterTrackpad" y dentro habra un archivo llamado BM.scpt. Abriremos dicho archivo con el editor de scripts de apple y vemos la siguiente linea:
set pathName to "/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterTrackpad/"
Cambiaremos el nombre de usuario por el de nuestro mac, guardamos y cerramos. Una vez hecho eso metemos la carpeta "BatteryMeterTrackpad" en /Users/TU NOMBRE DE USUARIO/Documents/Geektool/.
Después de hacer eso, pillaremos el geektool y meteremos los siguientes comandos:
Texto forzado
echo Trackpad:
Codigo para Shell
osascript /Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterTrackpad/BM.scpt
Codigo para Imagen
file://localhost/Users/TU NOMBRE DE USUARIO/Documents/Geektool/BatteryMeterTrackpad/temp.png
Capacidad libre en Discos duros, tanto interno, como USB, etc... 60 Segundos de refrescoCon este script vamos a conseguir que Geektool nos muestre mediante imagenes temporales, la capacidad y uso de los discos duros. Para eso vamos a ver el funcionamiento del script.
Este script en cuestión analiza la capacidad total de los discos duros que hay en el mac y lo usado en el momento actual, hace una operación matematica para obtener el numero de imagen que tiene que mostrar. Con esas imagenes creadas, Geektool nos mostrara el uso y espacio libre de los discos duros.
El Pack consta de dicho script, de una carpeta de imagenes y de una o mas imagenes temporales, que seran las que el script cree para así posteriormente geektool las cargue.
Como hacemos que Geektool cargue esas imagenes y ejecute dicho script, pues de la siguiente forma.
Nos descargamos dicho pack con los archivos necesarios de aqui: [url]DiskCapacityMeter[/url]
Al descomprimirlo veremos una carpeta llamada "DiskCapacityMeter" y dentro habra un archivo llamado HDUsed.scpt. Abriremos dicho archivo con el editor de scripts de apple y vemos las siguientes lineas:
property hardDrivesList : {"disk0s2", "TU DISCO 2", "TU DISCO 3"}
Ahi es donde pondremos los disco duros que tenemos. Para saber el nombre de cada uno, en la terminal pondremos df -h y nos dira el nombre de cada disco.
set pathName to "/Users/TU NOMBRE DE USUARIO/Documents/Geektool/DiskCapacityMeter/"
set imagesPathName to "/Users/TU NOMBRE DE USUARIO/Documents/GeekTool/DiskCapacityMeter/Images_Blue"
Cambiaremos el nombre de usuario por el de nuestro mac, guardamos y cerramos. Una vez hecho eso metemos la carpeta "DiskCapacityMeter" en /Users/TU NOMBRE DE USUARIO/Documents/Geektool/.
Después de hacer eso, pillaremos el geektool y meteremos los siguientes comandos:
Codigo para Shell
osascript /Users/TU NOMBRE DE USUARIO/Documents/Geektool/DiskCapacityMeter/HDUsed.scpt
Codigo para Imagen (Hay que poner tantas imagenes como discos tengamos) (El propio script genera las imagenes necesarias por disco)
file://localhost/Users/TU NOMBRE DE USUARIO/Documents/Geektool/DiskCapacityMeter/temp1.png
Con todo esto queda terminado el tuto. El tema de las imagenes podeis poner las que os salgan del pene, pero que sean chulas. Yo estoy haciendo unas cuantas con el photoshop, las colgare cuando pueda, aun asi, os dejo unas de devianart (recordar cambiar las imagenes que hay dentro de las carpetas por otras con el mismo nombre y formato, dado que si son diferentes el geektool con los script y comandos actuales, no las cargara):
http://midnighttokerkate.deviantart.com ... y/31894901Archivos de este tuto:
Bateria MacBookBateria Teclado BluetoothBateria Magic MouseBateria TrackpadCapacidad Discos DurosTodos los GLETS usados en el tuto