BitBar, crea tus scripts para la barra de Mac os x

Si trabajas con os x, y eres de los que les gusta hacer sus propios programas; estas de suerte. Un programador llamado , a desarrollado un software que hará las delicias de más de uno. Lo ha bautizado como BarBit. Lo que hace este programa es que te permite crear scripts que se visualicen en la barra de tareas. Tan sencillo como poderoso.

En la imagen podéis observar dos scripts que tengo activos. Uno con la bandera de cuadros, que sirve para contabilizar mis horas de trabajo y descanso (realizado por ), y otro que muestra el porcentaje de la batería. También te avisa cuando te queda muy poca. Este es mío, lo tenéis libre:

https://github.com/tanrax/bitbar-batteryHealth

Puedes hacer cualquier script en varios lenguajes: Python, Bash, Ruby, Javascript (necesitarás node), Coffeescript, Swift, Lisp, Go, Perl o PHP. Para todos los gustos.

Tutorial

A continuación voy a poner un simple tutorial para crear un plugin en Python. En este caso mostraremos la temperatura que hace en nuestra ciudad. Y se actualizará cada minuto. Si queréis profundizar, solo debéis ver otros ejemplos o la documentación oficial.

Instalación

Necesitaréis instalar BarBit, obviamente. Lo podéis descargar desde su página oficial:

O si tenéis Homebrew:

brew cask install bitbar

Ejecución

La primera vez que lo ejecutéis os preguntará por la carpeta donde estarán vuestros scripts. Después os aparecerá en la barra la palabra Bitbar.

Nuestro primer programa

Dentro del directorio que hemos seleccionado para alojar nuestros scripts, creamos un archivo con el nombre temperatura.60s.py

La esctuctura es importante: temperatura es el nombre, 60s es el tiempo que tardará en volver a ejecutarse (en este caso 60 segundos), py es el lenguaje que estemos utilizando. Si fuera bash usaríamos sh, si fuera Ruby sería rb, etc.

Le damos permisos de ejecución, sino no funcionará.

chmod +x temperatura.60s.py

Lo abrimos con nuestro editor favorito, y pegamos el siguiente código.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2, urllib, json

city = 'spain, valencia'
baseurl = 'https://query.yahooapis.com/v1/public/yql?'
# Definimos de donde queremos obtener la temperatura
yql_query = 'select item.condition.temp from weather.forecast where woeid in (select woeid from geo.places(1) where text="{city}")'.format(city=city)
# Hacemos una llamada a Yahoo Weather
yql_url = baseurl + urllib.urlencode({'q':yql_query}) + '&format=json'
result = urllib2.urlopen(yql_url).read()
# Leemos la informacion
data = json.loads(result)
fahrenheit = int(data['query']['results']['channel']['item']['condition']['temp'])
# Nos da la temperatura en Fahrenheit, lo convertimos a Celsius
celsius = (fahrenheit - 32) * 5.0/9.0
# Formateamos la temperatura
celsius = '%0.0f' % (celsius) + 'ºC'
# Imprimimos
print(celsius)

Solo debeis cambiar la variable city por vuestra ciudad.

Activamos

Sobre la palabra BitBar, pulsamos botón derecho del ratón y hacemos clic en Refresh all.

Si todo ha ido bien veréis la temperatura.

Y listo. Cada minuto se actualizará.

Obtener otros plugins

Podéis descargaros otros plugins, o scripts, de la página oficial:

Versión escritorio