viernes, 7 de diciembre de 2012

Irssi y libnotify

Si extrañas esas pequeñitas alertas que los clientes graficos IRC envian cuando alguien menciona tu nick, te envia y mensaje privado o te quiere transferir un archivo, irssi puede con ello.

La manera mas facil de obtener notificaciones de irssi en tu escritorio minimalista o entorno grafico, es utilizando el plugin irssi-libnotify el cual consiste de un "listener" en python que crea una instancia D-Bus para estar a la escucha de los eventos de irssi, y luego estos eventos son transmitidos al demonio de notifacion del sistema que finalmente nos muestra esa preciada ventanita emergente =)

La instalacion es bastante facil, primero que nada debemos clonar el repositorio para obtener la version mas reciente del proyecto (si no lo hacen de esta manera las ventanas de notificacion serán horribles porque utilizan gtk a secas y no son emergentes):
git clone https://code.google.com/p/irssi-libnotify/

irssi-linotify, como dije, consta de un "listener" en python y un plugin en perl (obvio) para irssi que envia los eventos del IRC al listener y este finalmente al sistema de notificaciones del SO.

Una vez tengamos la rama clonada tendremos que ubicar estos archivos en sus directorios respectivos. El listener notify-listener.py deberia estar en el directorio ~/bin de nuestro $HOME por razones de comodidad, asi que lo ubicamos en ese directorio o donde quieran (pero que recuerden). El archivo notify.pl lo ubicamos en el directorio de plugins de irssi ~/.irssi/plugins y lo linkeamos a ~/.irssi/scripts/autorun para que sea iniciado cada vez que ejecutemos irssi.

Para hacerlo desde la consola y ubicados dentro del directorio donde esta la rama, hacemos:
cp -v notify-listener.py ~/bin
cp -v notify.pl ~/.irssi/plugins/
ln -s ~/.irssi/plugins/notify.pl ~/.irssi/plugins/autorun/

Ahora debemos ejecutar los ultimos detalles para poder comenzar a utilizar este plugin:
  1. instalar la libreria con la que interactua Perl con D-Bus (sino, el plugin no funciona)
  2. ejecutar el listener
  3. cargar el plugin desde irssi
  4. ejecutar agregar el listener a los archivos de inicio del sistema

sudo apt-get install --no-install-recommends libnet-dbus-perl
python notify-listener.py &
#esto es desde irssi
/scrips load notify.pl
Con el ultimo paso, depende de nuestro WM/DE. Utilizo spectrwm asi que los archivos de inicio los cargo desde .xinit.

Una captura para ejemplificar ;)




notification-daemon no te funciona? Utiliza notify-osd

Desde la version 12.04 de Ubuntu notification-daemon esta roto para la mayoria de aplicaciones GTK2.

Hace unos dias me descargué Linux Mint Nadia (14) para una amiga, y casualmente la estuve testeando (increible distribucion, muy buena) antes de meterla en la USB y me dió la curiosidad de saber los paquetes que utilizaba para el sistema de notificacion, tomando en cuenta que esta basada en Ubuntu 12.10.

Haciendo un dpkg -l |grep notify obtuve lo que buscaba, y me dí cuenta que utiliza notify-osd junto con otros paquetes para hacer uso de las notificaciones.

En mi instalacion minimalista utilizo pidgin para IM, y debido a que notification-daemon esta roto para mi version de Ubuntu y no he encontrado solucion hasta este momento, no cuento con notificaciones emergentes. Instale los paquetes necesarios de Mint para hacer funcionar de alguna manera notify-osd, y lo he conseguido. Vamos a ello:

Instalamos todo el sitema de notificaciones (yo lo tenia parcialmente instalado):
sudo apt-get install --no-install-recommends notify-osd notify-osd-icons libnotify4 libnotify-bin pidgin-libnotify gir1.2-notify-0.7 python-notify vlc-plugin-notify
Y con eso he podido encontrar la felicidad =)

Ahora ya cuento con un sistema de notifiacion funcional y no pierdo ninguna de ellas ;)

viernes, 30 de noviembre de 2012

xclip: Enviar texto desde la consola al portapapeles

Esta pequeña herramienta es una joya. En vez de abrir un archivo con vim y luego pasarlo al registro del portapapeles en el servidor X, lo podemos hacer directamente sin abrir el archivo, genial.

Si hacemos:
$ cat texto.algo | xclip

Eso envia el contenido del archivo "texto.algo" al registro primario del clipboard del servidor X. Y con eso facilmente lo podemos pegar en cualquier aplicacion grafica con Shift+Insert. Podemos redireccionar cualquier texto mediante pipes a xclip. Otro sencillo ejemplo:
$ echo "texto" | xclip

Instalamos el paquete de unos insignificantes 20kb:
$ sudo apt-get install xclip

Y listo. Para mas opciones vean su manpage ;)

Saludos.

sábado, 13 de octubre de 2012

Suspension Hibrida en Ubuntu

Pues bueno, esto lo tenia pendiente de implementar y compartir desde hace varios meses. La suspension hibrida (en el paquete pm-utils) consiste en que el equipo suspende normalmente, pero despues de X tiempo puede hibernar automaticamente y asi evitar consumo de energia (durante la suspension el equipo sigue despierto).

Primero que nada se debe confirmar que nuestro equipo soporta este tipo de suspension. Comencemos:
$ sudo pm-is-supported --suspend-hybrid && echo $?

Y si el valor de retorno es 0 (cero), entonces nuestro equipo soporta esta funcionalidad. De no ser asi, esto no esta disponible para tu equipo.

Una vez confirmado, vamos a crear la regla que permita reemplezar la suspension normal por la suspension hibrida:
$ sudo vim /etc/pm/config.d/00-hybrid-suspend

Con el siguiente contenido:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi

El script es auto-explicable: si el equipo se suspende, en vez de utilizar la suspension normal se debe utilizar la suspension hibrida.

Y con eso despues de un determinado tiempo despues de estar suspendido el equipo, este hibernará automaticamente. Para tener un mejor control del tiempo de suspension antes de que pase a hibernar, podemos indicarlo explicitamente con la variable PM_HIBERNATE_DELAY en segundos. Yo lo dejé para que hiberne despues de una hora (3600s) de estar "dormido", considero que es tiempo suficiente:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
PM_HIBERNATE_DELAY=3600

Para que lo vean en accion pueden poner un tiempo de 5s, y luego de comprobar su funcionalidad lo establacen al valor deseado. No es necesario reiniciar porque estos son eventos que se capturan por acpid.

Saludos.

Fuente

jueves, 11 de octubre de 2012

Pasandome a irssi

Siempre he sido un amante de pidgin. Me encanta este cliente IM que tambien he usado siempre para comunicarme por IRC.

Soy tambien usuario de CLI (command-line interface) pero de igual forma me gustan las buenas aplicaciones graficas, cuando es necesario.

Mis aplicaciones de consola favorita son mutt, vim, pms, mpd y claro; bash ;D

Irssi es un cliente IRC legionario y, aparentemente inmortal. Es increiblemente personalizable, rapido y super agregable en el manejo.

Nunca lo habia utilizado, pero debido a mi actual instalacion he conocido muchas aplicaciones de consola (como zathura y sxiv) que me han sorprendido gratamente. Irssi lo conocia desde hace mucho pero nunca le habia dado la oportunidad, hasta hace unos dias.

Despues de una instalacion ($ sudo apt-get install irssi) el programa esta listo para ser ejecutado. No voy a hablar de su uso y configuracion, ya que para poder utilizarlo se deben tener conocimiento basico de los comandos utilizados para la interaccion con servidores y canales IRC. Asi que despues de una configuracion (y modificacion al tema elegido, porque tenia problemas al mostrar unos caracteres ademas de agregarle un poco mas de colores) medianamente decente, puedo decir que me quedo con este cliente IRC sin pensarlo dos veces.

Dejo unas capturas por si se quedan con la duda. Si quieren el tema (con los cambios que le hice) solo dejen el comentario. (Debo empezar a manejar mis configuraciones en Github para compartirlas mas facilmente):




miércoles, 10 de octubre de 2012

Microfono interno Dell Inspiron N4050: Soporte incorporado en ALSA \o/

Hace mucho expliqué como hacer funcionar el microfono interno de este equipo, pero durante mi actualizacion a Ubuntu 12.04 y durante la instalacion de ALSA, me puse a leer su changelog del sitio oficial y me encontré con la grata noticia que dice asi:
[...]
- ALSA: HDA: Add internal mic for IDT 92HD88B
BugLink: http://bugs.launchpad.net/bugs/696493
According to datasheet (and real-world testing), IDT 92HD88B can
have internal mics at NID 0x11 and 0x20, so enable them accordingly.
[...]

Lo que significa que ese microfono ahora es soportado por ALSA (que tiene su codigo base en el Kernel) en su version >=v1.0.23 | v1.0.24.

Si querés confirmar el model del micro de tu tarjeta podes hacerlo asi:
rcart*ubuntu:~$ cat /proc/asound/card0/codec#* | grep Codec
Codec: IDT 92HD87B1/3
Codec: Intel CougarPoint HDMI
rcart*ubuntu:~$

Y para la conocer la version de ALSA que estas corriendo, hace:
rcart*ubuntu:~$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.24.
rcart*ubuntu:~$

Saludos.

Instalar Ubuntu Minimal: Segunda Parte

Despues de la primer entrada y una falsa promesa de continuar la segunda parte al dia siguiente, recordé que tenia pendiente terminar este tema XD

En fin, no mas excusas. Continuemos.