Plasmoid Simple Monitor

Captura de pantalla de plasma-SimpleMonitor

He trabajado bastante con Qt, casi desde su versión 3, cuando aún KDE era bastante liviano que lo utilizaban en varias distribuciones que usaban LiveCD, por lo que cuando comenzó a aparecer QtQuick, me dispuse a entender cómo funcionaba, aunque al inicio no fue muy simple, puesto que era una aplicación que utilizaba C++ y luego se cargaban objetos con QML.

Al evolucionar la tecnología de QtQuick, se hizo mas fácil crear aplicaciones, ya no hubo necesidad de mezclar lenguajes, si no simplemente utilizar QML y quizá combinarlo con algo de Javascript; mucho de ésto se ve reflejado en el sistema de plasmoids para KDE 4, que ha madurado bastante.

Mientras buscaba una forma de reemplazar mi viejo monitor de sistema gkrellm, el cual por cierto no lo he llegado a sustituir por completo, busqué entre la lista de aplicaciones disponibles en KDE-look.org y no encontré algo que me llamara mucho la atención, claro, era de esperarse, es una tecnología nueva, pocos la saben utilizar y habremos pocos que sepamos realmente crear interfaces visualmente atractivas, por lo que pocos suben sus aplicaciones a este sitio.

Tenía otra alternativa, que me pareció factible, utilizar conky, el cual es otra aplicación bastante buena para monitorear el sistema y bastante personalizable, pero no se lleva muy bien con KDE. También estaba superkaramba, pero muchos de los elementos que usa suelen ser llamadas a aplicaciones de terminal que al final no era lo que yo necesitaba, aunado a que superkaramba debe estar funcionando para que sus plasmoids funcionasen.

Así que decidí crear mi propio plasmoid, el cual nombré plasma-simpleMonitor, aunque de plasma aún no tiene mucho, pero el objetivo es vincularlo completamente al sistema de temas de KDE.

Había dos opciones, crear uno escrito en C++, lo que me ayudaría a realizarlo de manera mas simple, puesto que manejo a un nivel aceptable el lenguaje, pero tendría el inconveniente de cualquier otra persona que deseara probar el plasmoid tuviese que compilarlo, instalarlo, etc. Y no cualquier persona está dispuesta ha realizar ésto. Así que la decisión estaba tomada, el plasmoid sería hecho con QML y Javascript, de ésta manera, se puede descargar de la página y probarlo, incluso integrarse fácilmente con el instalador de plasmoids de KDE.

Las características mas importantes que tenía en mente para comenzar su desarrollo eran:

  • Capacidad de verificar el trabajo de los núcleos (cores) de mi CPU
  • Verificar la temperatura; se vuelve importante cuando se pone a trabajar a la máquina
  • Verificar el estado de la memoria y la swap
  • Un lugar para mantener la hora y fecha del sistema, de una manera mas vistosa
  • Verificar el tiempo que se ha mantenido encendida la máquina (uptime)

La idea comenzó con un boceto hecho en Inkscape, obviamente no podía comenzar a programar sin saber qué era lo que quería obtener como resultado.

Diseño inicial para plasma-simpleMonitor

plasma-simpleMonitor, Diseño inicial

Así que luego procedí a trabajar, en un par de días tuve la primera versión, pero obviamente no era muy atractiva visualmente, a lo que me puse a trabajar un poco mas en cómo se debería ver y al final llegué a tener una versión decente, la cual fue colocada en sitio KDE-look.org.

Luego de unos cuantos días de estar colocada en el sitio de KDE-Look, comenzó a tener aprobaciones como desacuerdos, como debe  ser, pero al final la experiencia ha sido buena, he tenido la oportunidad de ver cómo va poco a poco llegando a ser la herramienta que quería que fuera, aunque aún le falta camino por recorrer.

El código fuente se encuentra en GitHub: https://github.com/dhabyx/plasma-simpleMonitor liberado bajo una licencia GPL v3

Cambio de etiquetas para pendrives desde línea de comandos

bashusb

Al momento de comprar una pendrive (nueva memoria USB) siempre tenía el incoveniente de cambiarle la etiqueta, ésto no es tan fácil ya que Linux por defecto no usa sistemas de archivos FAT, por lo que no funciona un simple click derecho.

En cambio es mas fácil desde línea de comandos en un solo paso pero hay que configurar una aplicación:

Lo primero es tener instalado el paquete floppy, que en el caso de slackware viene por defecto en una instalación completa, y si por alguna razón no lo han instalado lo mejor será ir a la carpeta a/ del disco de instalación e instalar el paquete floppy.

Una vez instalado solo resta configurarlo adecuadamente, el archivo /etc/mtools.conf trae ya unos datos de ejemplo, lo que debemos agregar al final del archivo es una línea como la siguiente (editando como superusuario “root”):

drive p: file="/dev/sdb1"

donde “p” es el nombre de una unidad como en DOS, por ello va acompañado de “:” y puedes escoger el nombre de letra que desees; luego el argumento de file debe ser la dirección hacia el dispositivo que deseamos administrar con ésta herramienta, que para ejemplo he colocado /dev/sdb1, ya que actualmente los discos son numerados con la nomenclatura /dev/sdX#, siendo X una letra, comenzando por “a” según el disco físico y # el número de partición, por lo que hay que tener cuidado en conocer realmente que nomenclatura ha sido asignada a nuestra pendrive.

Una vez configurado el archivo, puede ser usado para cualquier otro dispositivo que sea reconocido con ésta nomenclatura.

Para finalizar debemos crear un archivo en nuestra carpeta de usuario (no root):

$ cd ~
$ echo "mtools_skip_check=1" >> .mtoolsrc

y ahora es tiempo de cambiar etiquetas a nuestras pendrives:

$ mlabel p:NombreUSB

donde “p:” es la unidad que configuramos previamiente y lo que sigue a continuación es el nombre de la pendrive, que no debe pasar de 11 caracteres.

Si deseamos ver los cambios solo debemos verificar con:

$ mlabel -s p:

KDE, cómo cargar scripts de usuario

KDE tiene tres carpetas esenciales para la carga de scripts:

  • Scripts que se cargan al inicio de KDE:  .kde/Autostart
  • Scripts que se pueden cargar antes de que todo KDE sea cargado, en especial si queremos que variables de entorno funcionen en todas las aplicaciones de KDE: .kde/env
  • Scripts que se carguen cuando cerremos la sesión: .kde/shutdown

Todos los scripts que coloquemos en éstas carpetas se ejecutarán en su debido momento, pero debemos tener el cuidado de que tengan permiso de ejecución pero que cumplan con los requisitos para que sean ejecutados sin indicar qué aplicación los interpretará.

Otros lugares interesantes por tener en cuenta en éste enlace de Linux From Scratch

GPG integrado con KDE en Slackware

Inicié a controlar mis gastos e ingresos por medio de KMyMoney, una herramienta que me la habían recomendado mucho, pero antes me encontré con muchas otras herramientas, como GnuCash, eqonomize, etc. pero lo primero que busqué fue que tuviera soporte para encriptar los datos.

Mi opción, conociendo sus características, fue KMyMoney, ya que se integra bastante bien con KDE, que es el escritorio que siempre me ha gustado utilizar en Slackware y utiliza GPG para encriptar los archivos.

El problema comienza con la configuración para que pueda abrir archivos encriptados, ya que GPG por defecto no se integra lo suficiente con los escritorios gráficos, es mas una herramienta de línea de comandos.

Para integrar correctamente cualquier aplicación que haga uso de GPG en un ambiente gráfico como KDE debe poder acceder a un agente que se encarga de intercambiar información entre la aplicación y el archivo cifrado por GPG.

Primero debe de asegurarse de tener configurado adecuadamente GPG, para ello vamos primero por el archivo de configuración de GPG ~/.gnupg/gpg.conf, el cual puede ser abierto con nano o vim:

$ cd ~
$ nano .gnupg/gpg.conf

y luego buscar si se tiene habilitada la opción use-agent

Ahora nos falta configurar el agente encargado de gestionar la información, en este caso pinentry que ya viene con slackware, para ello tenemos que crear o modificar el archivo ~/.gnupg/gpg-agent.conf verificando al menos tres líneas importantes:

pinentry-program /usr/bin/pinentry-qt4
no-grab
default-cache-ttl 300

La opción pintetry-program indica que programa utilizar, para kde es pinetry-qt4, existen para gtk y demás.
La opción no-grab para evitar que pinetry capture teclado y mouse, (no es algo que nos proteja de los keyloguers y demas)
La opción default-cache-ttl es el tiempo en segundos para mantener activa la contraseña.

Con ésto arreglado se puede proceder a realizar una prueba, para evaluar que todo vaya bien; en la línea de comandos ejecutamos lo siguiente:

$ gpg-agent --daemon

Nos debe devolver que se ha iniciado y nos dará unas variables para que los programas los utilicen, algo como:

GPG_AGENT_INFO=/tmp/....:7711:1

luego podemos matar el proceso con un simple killall

killall gpg-agent

Ahora es tiempo de configurar KDE

Solo resta agregar dos scripts, uno que se cargue antes de iniciar KDE para cargar las variables dadas por gpg-agent y otro para cerrar gpg-agent al terminar nuestra sesión. Los scripts se pueden crear en cualquier lado y con cualquier nombre, solo deben tener permiso de ejecución, y cargarlos desde el administrador de KDE en la sección Arranque y apagado.

Script de inicio, debe ser colocado con la opción Ejecutar en: Prenicio de KDE.

#!/bin/sh
# Inicio de gpg-agent para todo KDE

eval "$(gpg-agent --daemon)"

Script del final, se debe cargar con la opción Ejecutar en: Apagar

#!/bin/sh
# cierra toda instancia de gpg-agent que haya sido cargada con la sesión.

if [ -n "${GPG_AGENT_INFO}" ]; then
    kill $(echo ${GPG_AGENT_INFO} | cut -d':' -f 2) >/dev/null 2>&1
fi

Ahora solo falta salir de la sesión y reingresar.

Experiencias actualizando 13.37 a Slackware-current (14.0 beta)

Luego de iniciar mi recorrido por slackware y un buen tiempo sin actualizar mi slackware-current, he tenido que hacer una buena limpieza de paquetes; tenía paquetes demasiado obsoletos compilados desde slackbuilds y otros desde un gnomeslackbuild, pero esto me traería problemas tarde o temprano, así que decidi eliminar todos los paquetes que no eran los que vienen por defecto con slackware.

El primer paso es actualizar nuestra lista de paquetes, recordando previamente haber configurado adecuadamente slackpkg, en especial en tener en cuenta el kernel y otros paquetes importantes, antes que nada siempre es mejor leer el archivo UPGRADE.txt donde se explica que paquetes hay que actualizar antes y efectuar los comandos ahí mencionados, luego podemos usar slackpkg:

# slackpkg update

Con la lista de paquetes nuevos en el repositorio es hora de borrar paquetes no oficiales:

# slackpkg clean-system

Esta acción nos desplegara una lista de los paquetes que estan instalados en el sistema y que no estan en la lista oficial, siendo posible no eliminar algunos paquetes que sabemos que no tendran conflictos, y en mi caso eran libreoffice, java y sbopkg.

Luego se actualizan los paquetes:

# slackpkg upgrade-all

Al finalizar la actualización, hay que recordar verificar si los paquetes han tenido grandes cambios de versiones donde los archivos de configuración no sean compatibles con viejas versiones, como por ejemplo: apache, kde, etc.

Una vez actualizados los paquetes, podemos instalar los nuevos paquetes:

# slackpkg install-new

Una vez instalados podemos proceder a instalar el kernel manualmente con un simple installpkg y el paquete de kernel que se prefiera.

Siempre hay que recordar borrar la configuración del home de KDE para que la nueva versión no tenga problemas.

Y solo nos resta disfrutar de la beta y prepararse para recibir Slackware 14.0   …..   :D

Slackbuilds.org creciendo!!

SlackBuilds.org logoPara los que no conocían SlackBuilds.org, éste proyecto es un repositorio de Scripts de Bash, empaquetados con otros archivos, que generan paquetes binarios para Slackware, basándose en los scripts que Patrick Volkerding usa para crear la distribución; éstos scripts aparecieron por primera vez en la versión 3.1 de Slackware y que fue liberada en Octubre de 1996, según los Changelogs que aún se encuentran disponibles (Aunque puede que me equivoque).

El proyecto SlackBuilds comenzó el 6 de julio de 2006, con al rededor de 32 SlackBuilds ordenados en 10 categorías (información obtenida del Changelog), donde se podía encontrar SlackBuilds para OpenOffice, octave, wine, entre otros. todos ellos para la versión de Slackware 11, que no duró mucho tiempo para luego pasar a la versión 12.0. Leer Más…

Configuración de modem tigo

Después de un tiempo sin colocar un post, me decidí a escribir un post sobre como configurar un modem tigo HUAWEI  para Guatemala utilizando wvdial, probado con varios modems en especial para el modelo E160.

Para ello se necesita instalar dos paquetes, disponibles desde slackbuilds.org wvstreams y wvdial y ejecutar luego como root

# wvdialconf

y luego de que nos genere la configuración para nuestro modem podemos configurarlo como el siguiente ejemplo, ya sea añadiendo o modificando las líneas del archivo de configuración.

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,””,”broadband.tigo.gt”
Modem Type = Analog Modem
Phone = *99#
Modem = /dev/ttyUSB0
Username = tigo
Password = tigo
Baud = 460800

dependiendo de la velocidad del modem habrá que ajustarlo.

Para terminar solo deben ejecutar

# wvdial

Si les funciona la configuración para otros tipos de modem pueden dejar su comentario para ir incrementando la lista de modems que funcionan con estos datos.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 793 seguidores