Plasmoid para KDE4
miércoles, 16 de diciembre de 2009Probablemente sean los plasmoids de las novedades más llamativas de KDE4 con respecto a KDE3 (ahora es cuando se oye rechinar los dientes de algún programador).
Los plasmoid son a KDE4 lo que los widgets de superKaramba eran a KDE3, pero con algunas bastantes mejoras, la mas importante sin duda: lo que antes era un escritorio con algunos gadgets visuales ha pasado a convertirse todo en un conjunto de gadgets. Tanto es así que casi podriamos decir que hoy por hoy el escritorio y sus componentes son todo plasmoides, de tal manera que lo que tradicionalmente permanecía «anclados» a la barra de tareas se pueden instalar en el escritorio y viceversa. En KDE4 es posible instalar la bandeja del sistema en el escritorio ó duplicarla en otro panel, podemos sacar el reloj de la barra de tareas y escalarlo en el escritorio, mover la calculadora del escritorio al panel, etc, etc. Hasta el propio escritorio no deja de ser un gran widget contenedor de widgets (¿habeis probado de hacer zoom out al escritorio? no me preguntes para que sirve esto…)
Resumiendo, el escritorio KDE son un conjunto de módulos más o menos independientes unos de otros y comunicados entre ellos via DBUS (reemplazo de DCOP).
La gran ventaja de esta modularización de KDE es la increible facilidad con que el entorno gráfico de trabajo se puede personalizar, manipular, hackear, extender, recortar, en definitiva: con muy poco esfuerzo podemos hacer con el escritorio lo que nos venga en gana hasta dejarlo a nuestro antojo-necesidad. Si a esto se le suma la gran accesibilidad proporcionada por lenguajes de programación muy populares (actualmente plasma soporta hasta widgets escritos en Javascript) pues tenemos el caldo de cultivo ideal para convertir a KDE en un gran escritorio. Basta echar un vistazo a la sección Plasmoid de Kde-look.org para ver como en los pocos meses que lleva KDE4 publicado se ha disparado la publicación de gadgets (teniendo en cuenta la fría acogida que tuvieron las primeras versiones de KDE4, hace un año, estamos hablando de pocos meses). Hay plasmoids para la tarea más insospechada, algunos incluso útiles :)
Después de esta increiblemente larga excusa, ya puedo colgar mi mini-plasmoid MiniTemp, un plasmoid escrito en Python que conecta con meteoclimatic.com para coger la temperatura que hace en Cartagena y mostrarla en la barra de tareas. Es una chorrada a la que ni le he puesto interfaz de configuración (ni falta le hace), pero que sirve para demostrar los sumamente facil que resulta hacerse uno a medida con 4 líneas de código.
Para instalarlo:
- Descarga miniTemp.zip (wget http://www.trebol-a.com/publicar/miniTemp.zip -O ~/miniTemp.zip)
- Descomprimelo en una carpeta ( unzip ~/miniTemp.zip )
- Visita meteoclimatic.com y obten el código de la estación meteorológica más cerca a tu casa (aparece entre parentesis detrás del nombre de la estación meteorológica)
- Edita el archivo miniTemp/contents/code/main.py (vi ~/miniTemp/contents/code/main.py)
- Cambia el valor de self.codeEstacion en la linea 19 por el tuyo propio (actualmente aparece : self.codeEstacion=»ESMUR3000000030204A» )
- Prueba que todo funciona correctamente (cd ~; plasmoidviewer miniTemp )
- Recomprime el contenido de la carpeta en otro zip (cd ~/miniTemp ; zip -r ../miMiniTemp.zip)
- Instalalo ( plasmapkg -i ~/miMiniTemp )
- En la barra de tareas selecciona «Añadir elementos gráficos» y selecciona miniTemperatura de la lista de elementos
El contenido de main.py es:
# -*- coding: utf-8 -*-
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
import urllib
from xml.dom import minidom
class objeto(plasmascript.Applet):
def __init__(self,parent,args=None):
plasmascript.Applet.__init__(self,parent)
def init(self):
#print "Iniciando...."
#Esta es el codigo de una de las
#dos estaciones meteorológicas de Cartagena
#puedes obtener tu código mas
#cercano en http://www.meteoclimatic.com
self.codeEstacion="ESMUR3000000030204A"
cadenaTemperatura = self.cogerDatos()
#El objeto no tiene interfaz
self.setHasConfigurationInterface(False)
#Temporizador, consulta nuevos datos cada 15 minutos
self.temporizador = QTimer()
self.connect(self.temporizador,SIGNAL("timeout()"),self.cogerDatos)
#milisegundos, segundos, minutos , cada 15 minutos
self.temporizador.start(1000 * 60 * 15)
def paintInterface(self, painter, option, rect):
painter.save()
textColor = Plasma.Theme.defaultTheme().color(Plasma.Theme.TextColor)
bgColor = Plasma.Theme.defaultTheme().color(Plasma.Theme.BackgroundColor)
textFont = Plasma.Theme.defaultTheme().font(Plasma.Theme.DefaultFont)
#el tamaño de la fuente del reloj en la barra de tareas
textFont.setPointSize( rect.height() / 1.7 )
#en negrita
textFont.setBold(True)
painter.setFont(textFont)
painter.setPen(textColor)
painter.drawText( rect, Qt.AlignVCenter | Qt.AlignHCenter, self.cadenaTemperatura )
painter.restore()
def cogerDatos(self):
#print "Conectando .... "
urlCompleta="http://meteoclimatic.com/feed/xml/" + self.codeEstacion
documento = minidom.parse(urllib.urlopen(urlCompleta))
elemento = documento.getElementsByTagName("stationdata")
temperaturaActual = str( elemento[0].childNodes[1].childNodes[3].lastChild.data )
self.cadenaTemperatura = temperaturaActual + u'ºC'
self.update()
def CreateApplet(parent):
return objeto(parent)
Trebol-A
#1/ 16 de December/2009 a 18:38:47
Otros comentarios de «Trebol-A»
Nota: Para copiar el codigo superior pinchad sobre el cuadro de código en "Modo Texto" para coger el código correctamente tabulado
netpai
#2/ 16 de December/2009 a 21:35:17
Otros comentarios de «netpai»
Yo nunca pude con kde, siempre me ha parecido demasiado recargado; sin embargo, me está encantando kde 4.3, al punto que he abandonado el gnome para instalarme en kde. Por el momento ando encantado y no se me cuelga ni me da problemas (también es cierto que no ando mal de máquina). La integración de los plasmoids en el escritorio es "perfecta".
Trebol-A
#3/ 17 de December/2009 a 16:59:58
Otros comentarios de «Trebol-A»
Yo siempre he sido KDEro a punto de migrar a Gnome del que envidiaba la interfaces casi minimalistas. De KDE me han agobiado las aplicaciones sobre cargadas de información, botones, menues, barras deslizantes, checkbox, etc, etc.. pero hay que reconocer que en KDE4 está muy mejorado. Sigue siendo muy KDE, pero mucho más soportable.
netpai
#4/ 17 de December/2009 a 19:24:39
Otros comentarios de «netpai»
Sí ese mismo ha sido mi problema con KDE, pero siempre le tuve ganas porque algunas aplicaciones KDE me han parecido mucho mejores (k3b, Tellico, etc.), pero eso de que el sistema se te llenase de aplicaciones que no querías para nada... La sencillez de Gnome está muy bien, pero es tan espartano que al cabo de un tiempo te cansas y quieres algo más de salsa. En fin, ya veremos. En cualquier caso en tu OpenSuse está muy pero que muy logrado KDE, en kubuntu hay que retocar algo más; pero me es imposible prescindir del apt-get (aptitude). Las costumbres...
null
#5/ 21 de December/2009 a 14:05:51
Otros comentarios de «null»
pues yo sigo usando xfce4,me da todo lo que necesito y es rápido y muy muy estable, aunque también tengo instalado kde4 no creo que lo use hasta que el rendimiento sea muy muy bueno, por muy bonito y moderno que sea.
Trebol-A
#6/ 21 de December/2009 a 20:11:46
Otros comentarios de «Trebol-A»
Hombre null, tampoco hay que ser fundamentalista! :)
Xfce es la del ratoncillo,no? Recuerdo haberla probado en alguna ocasión.
null
#7/ 24 de December/2009 a 19:06:00
Otros comentarios de «null»
hombre, no es fundamentalista, con el driver fglrx kde4 todavía no tira bien (xine se cuelga, mplayer tampoco va fino, y el composite de kde4 con fglrx va muy mal, tira pero lento), y con radeonhd tengo 3d pero solo para composite(esto con xfce4 y kde4), no para jugar, ademas xfc4 me arranca en unos 3 segundos y kde4 tarda mas de 10sg, con xfce4 me funciona con fglrx todo; composite, juegos y reproductores a mil maravillas.
La verdad que con radeonhd xfce4 y kde4 funcionan igual de bien, pero como todavía uso fglrx para jugar, estoy ansioso por tener un kernel 2.6.33 ( o la version que sea) que me funcione todo bien con radeonhd!!
27 de December, 2024 @ 01:27