My-Weather-Indicator con una chincheta

Introducción

Hace unos días actualicé My-Weather-Indicator para que estuviera disponible en Ubuntu Trusty Tahr. En este cambio me encontré con alguna que otra dificultad como la presencia de una sombra en los widget y la gestión de la posición, para poder seleccionar la opción de que estuviera encima de todas las ventanas o debajo de todas las ventanas.

Finalmente y tras algún que otro sobresalto y error, que mas de uno de vosotros sufrió, conseguí resolver ambos problemas, y retomé un aspecto pendiente que en alguna ocasión mas de un usuario había reclamado como era la posibilidad de que poder cambiar el comportamiento (encima/debajo) directamente desde el widget haciendo clic en una imagen, la famosa chincheta, que nos permita identificar el comportamiento del widget.

Además con esta nuevo comportamiento verás que el widget aparece en todos los escritorios, otra de las antiguas reivindicaciones de los widget…

Así nos encontramos con una nueva versión de My-Weather-Indicator con un único cambio, la chincheta

Área de trabajo 1_086.png

My-Weather-Indicator Chincheta

La nueva característica de los widget de My-Weather-Indicator está ligeramente oculta para evitar la molestia que puede suponer tener la chincheta siempre presente, pero si situamos el ratón en la parte superior derecha del widget, veremos como en menos de un segundo aparece la chincheta indicándonos el comportamiento del widget.

My-Weather-Indicator_087.png

Al hacer clic sobre la chincheta modificaremos el comportamiento del widget pasando de estar encima de todas las otras ventanas,

My-Weather-Indicator_089.png

A estar por debajo…

My-Weather-Indicator_088.png

Instalación

My-Weather-Indicator no está disponible en los repositorios oficiales de Ubuntu de forma que si la quieres instalar tienes que añadir el siguiente repositorio, actualizar e instalar,

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install my-weather-indicator

Un poquito de programación

Para conseguir el efecto indicado he utilizado las nuevas habilidades que ha adquirido Gtk3+ en estos últimos tiempos, la posibilidad de utilizar css para la representación de elementos.

Así he creado un botón al que le he asignado la imagen de la chincheta que se verá modificada conforme hagamos clic sobre ella,

self.pin = Gtk.Image()
button = Gtk.Button()
button.set_name('pin')
button.connect('clicked',self.on_button_clicked)
button.add(self.pin)

Para modificar el comportamiento del botón conforme colocamos el ratón sobre el mismo, he añadido el siguiente código,

style_provider = Gtk.CssProvider()
css = """
    #pin{
        opacity:0.05;
        border-image: none;
        background-image: none;
        background-color: rgba(0, 0, 0, 0);
        border-radius: 0px;
    }
    #pin:hover {
        transition: 1000ms linear;
        opacity:1.0;
        border-image: none;
        background-image: none;
        background-color: rgba(0, 0, 0, 0);
        border-radius: 0px;
    }
"""
style_provider.load_from_data(css.encode('UTF-8'))
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)        

Como puedes ver se trata de una técnica realmente sencilla pero con un resultado mas que aceptable.

Fuentes

Otro característica añadida en estas últimas versiones es la incorporación de una fuente de letra para utilizar con el nuevo modelo de widget incorporado, simple. Se trata de la fuente Open Sans Condensed que tiene licencia Apache versión 2.0 y que está disponible en Google Fonts. Se trata de una fuente diseñada por Steve Matteson y que permite conseguir ese widget tan estilizado.

Para instalar las fuentes realmente solo hay que incorporarlas a nuestro paquete e indicar donde quieremos que se instalen, de forma que en el proceso de instalación ya se realiza lo necesario para que queden configuradas…

Acabo de caer ahora que para valores negativos es posible que se salga del widget simple, si a alguien le pasa, le ruego que me envíe una captura de pantalla para ver como solucionarlo.

Conclusiones

Estoy muy emocionado con el comportamiento del widget y las posibilidades que ofrecen Gtk+ y CSS. Espero tener nuevas ideas que mejoren esta herramienta que creo que es realmente interesante.

Es posible que una interesante opción es que fuera una aplicación independiente (quizá en Vala por aquello de la rapidez) y que se alimentara de información vía dbus… Esto es para pensarlo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *