¿Conocías… xbindkeys?

2 06 2007

Sí, muchos de vosotros afines a este blog ya lo conoceís. Os propongo darle aún más uso a esta maravillosa pequeña joya y a vuestros teclados. Los que aún no han recibido las presentaciones, no os lo penséis y comprobad cuán útil os puede resultar.

Ante un pequeño problema que tuvo el lector BeRniTo en el tutorial de controlar el reproductor con las teclas multimedia para usar xbindkeys como lanzador de aplicaciones mediante el teclado, he decidido hacer esta entrada para que quede más claro y dar a conocer a todos las posibilidades que nos ofrece este pequeño programa.

¿Qué es xbindkeys?

Es un pequeño programa que se queda residente en memoria a modo de daemon y que, tras configurarlo adecuadamente, realiza una acción determinada tras pulsarse una combinación de teclas determinada.

Efectivamente nos sirve para configurar atajos de teclado y usarlo a modo de lanzador de aplicaciones, pero no sólo para eso como comprobaréis más adelante.

¿Cómo instalarlo?

Pues como todo lo que vemos en esta sección con una simple línea. He de decir que vamos a instalar dos paquetes. Uno es xbindkeys que es el programa base, otro es xbindkeys-config, que es un interfaz gráfico que puede facilitar el uso del primero.

$ sudo aptitude install xbindkeys xbindkeys-config

Ejemplo de uso 1: Configurar Ratón MX5XX

Una de las ventajas de xbindkeys es que también es capaz de tomar las pulsaciones de los botones del ratón. Una vez estén configurados los botones en el xorg.conf podemos usar xbindkeys para que nos funcionen los botones laterales del ratón en el navegador de ficheros Nautilus, y así podamos ascender y descender niveles de carpetas.

Esto ya está ampliamente descrito en este tutorial.

Ejemplo de uso 2: Configurar teclas de control multimedia

Normalmente Ubuntu coge bien casi todas las teclas: las alfanuméricas, símbolos especiales, calculadora, navegador web, correo electrónico, subir/bajar volumen, silenciar/activar el sonido… Sin embargo quizá muchos echen en falta que puedan controlar su reproductor multimedia con las teclas de play, stop, siguiente/anterior canción.

Esto es posible hacerlo también gracias a xbindkeys. En este tutorial ya lo hicimos configurando xmms, y funciona a la perfección.

Ejemplo de uso 3: Lanzar aplicaciones con atajos de teclado

Puede que muchos no tengáis un MX5XX, puedes que muchos no tengáis teclas multimedia o simplemente no las uséis. Pero todos tenéis teclado y aplicaciones que ejecutáis. Tal y como he dicho muchas veces en distintas entradas, hay muchos usuarios un tanto reacios al ratón y agradecen enormemente el poder lanzar una aplicación con una simple pulsación de teclas. Esto es lo más práctico que nos ofrece xbindkeys.

Y esto es realmente muy muy sencillo de hacer. Lo primero es generar el fichero de configuración por defecto (quien ya lo tenga porque haya que se salte este paso). Escribimos en consola:

$ xbindkeys --defaults > /home/tu_carpeta/.xbindkeysrc

Ahora abrimos con gedit (o el editor de texto que queráis) el archivo .xbindkeysrc que está en vuestra carpeta personal, nos colocamos al final y añadimos:

# Mis atajos

Debajo iremos añadiendo los shortcuts junto con lo que deben ejecutar. Antes de hacerlo tenéis que saber cómo se llama cada tecla. Las letras obviamente se llaman como su letra y las teclas que se usan para los atajos se llamarán: Shift, Control, Alt y Super (la tecla de win).

De todos modos xbindkeys incorpora una pequeña utilidad para averiguar combinaciones de teclas. Si escribimos en consola:

$ xbindkeys -k

Nos abrirá una pequeña ventana. Pulsamos sobre ella para que sea la activa y pulsamos Super+f. La ventana se cerrará y tendremos algo parecido a esto en consola:

"NoCommand"
m:0x40 + c:41
Mod4 + f

El Mod4 es otra forma que tiene de llamar xbindkeys a la tecla Super. Cada tecla de las nombradas antes tiene un sinónimo ModX. Podéis usar el nombre que queráis ModX o los nombres estandarizados. Sin embargo para la tecla Super, sí os recomiendo que uséis Mod4 pues he comprobado que en algunos teclados no funciona bien como «Super».

Bien, ahora que entendéis cómo son las combinaciones, lo único que resta por hacer es añadirlas al fichero .xbindkeysrc que tenemos abierto. Nos colocamos bajo #Mis atajos y los vamos añadiendo con esta sintaxis:

"comando a ejecutar"
atajo de teclado

Para que lo veáis más claro, estos serían algunos ejemplos. He puesto una línea extra comentada (con la almohadilla) para saber qué hace cada combinación:

# Abrir Firefox
"firefox"
Mod4 + f

# Abrir Nautilus
"nautilus"
Mod4 + n

# Abrir Terminal
"gnome-terminal"
Mod4 + t

Son atajos simples, sólo usando la tecla Super. Podéis usar combinaciones más complejas como «Control + Alt + Shift + Mod4 + k». Es una barbarie de ejemplo, pero así veis cómo sería con más de una «tecla especial».

Guardáis el fichero, cerráis el editor y ejecutáis xbindkeys:

$ xbindkeys

Nada pasará, porque se queda como un demonio como dije antes, pero pulsad ahora las combinaciones de teclas que hemos definido.

Si haceís un cambio al fichero, debéis reiniciar xbindkeys. Para ello tenéis que matar el proceso y volver a ejecutarlo. Podéis hacerlo con esta línea:

$ killall xbindkeys && xbindkeys

«killall» mata todos los procesos identificados con el nombre que le sigue, así si teneís más de uno abierto, os aseguráis de que estén todos cerrados para que no interfieran. Recordad hacer esto siempre después de un cambio en el fichero de configuración.

Mejorando los lanzadores

Aún no hemos acabado con los lanzadores. Como sabéis la inmensa mayoría de los programas permite argumentos que modifican su comportamiento. Tenéis información muy completa sobre cada argumento que acepta cada programa con el comando man:

$ man nombre_ejecutable

Siguiendo con los ejemplos, que es la mejor forma de verlo, podemos hacer que Firefox abra en una nueva pestaña una página determinada, o que nautilus muestre otra ruta que nosotros le indiquemos en lugar de nuestra carpeta personal, y lo mismo para la consola.

Por ejemplo, vamos a hacer que cuando hagamos las respectivas pulsaciones de teclas, Firefox abra https://tuxpepino.wordpress.com, y que nautilus y gnome-terminal en lugar de dejarnos en nuestra carpeta personal, nos muestre el directorio raíz: /

# Abrir Firefox
"firefox https://tuxpepino.wordpress.com"
Mod4 + f

# Abrir Nautilus
"nautilus --browser /"
Mod4 + n

# Abrir Terminal
"gnome-terminal --working-directory=/"
Mod4 + t

(*) Ojo: Antes de browser y de working-directory hay dos guiones seguidos, no uno.

Como veis es bien sencillo y práctico. Por ejemplo podríamos definir varios atajos distintos para que nos abra nautilus distintas carpetas que usemos frecuentemente, y lo mismo para la consola. Ojead con man los programas que os interesen pues es probable que le saquéis muchos usos prácticos.

¿Y xbindkeys-config?

No, no nos hemos olvidado. Como habéis visto, es muy sencillo hacer los atajos editando el fichero de configuración. xbindkeys-config puede que lo simplifique algo más para algunos:


Click para agrandar

Es sencillo. Pulsad «Nuevo» y en «Nombre» ponemos un nombre que identifique el atajo. En «Key» podemos escribir directamente la combinación deseada, o bien pulsar en el botón «Get Key» y nos abrirá la ventanita que nos salía con «xbindkeys -k«. Tras pulsar la combinación que queréis y la escribirá automáticamente en la casilla anterior.

Dadle a «Apply» para probar si funciona, y cuando acabéis pulsad «Save & Apply & Exit«. El mismo programa reiniciará xbindkeys.

No me funciona ¿Por qué?

Puede ser por varios motivos. He comprobado que en ocasiones «xbindkeys -k» no captura bien las teclas en algunos teclados, no sé si es por el hardware en sí o porque interfiere con otra aplicación. Probad primero a editar el fichero, o xbindkeys-config, y escribid manualmente la combinación deseada tal y como os indiqué más arriba. Guardad, reiniciad xbindkeys y probad de nuevo.

Si sigue sin funcionar, probablemente la combinación de teclas que has puesto está ya en uso por otro programa (el propio gnome/metacity, Beryl, etc…). En caso contrario comprobad que xbindkeys está funcionando. Para estar seguros reinicialo como os comenté:

$ killall xbindkeys && xbindkeys

Recordad que xbindkeys tiene que estar ejecutándose para que capture las teclas

Iniciar xbindkeys cuando inicie sesión

Al igual que Beryl y otros programas si vais a darle uso a xbindkeys es recomendable que automaticéis su ejecución.

Iros a «Aplicaciones > Sistema > Preferencias > Sesiones«, la pestaña «Programas de inicio«. Dadle a «Nuevo» y escribid «xbindkeys» como nombre y como comando. Aceptad y cerrad. Listo.

Como habéis visto es otro pequeño programa pero de gran valor 😉

Más «Conocías…» entre tuxes y pepinos

Acciones

Information

4 responses

4 06 2007
Teclas multimedia y otras opciones, xbindkeys 2 « PC Obsesion

[…] Teclas multimedia y otras opciones, xbindkeys 2 Fuente:https://tuxpepino.wordpress.com […]

12 06 2007
Zootropo

Otras opciones son definir los atajos de teclado en Metacity o Beryl o usar keytouch
Asignar combinaciones de teclas a nuestros comandos en Linux

12 06 2007
CeeC

Yep, aunque encuentro xbindkeys mucho más potente «para juguetear» y hacer cosas curiosas. Gracias igualmente por el aporte Zootropo 🙂

Saludos.

10 02 2009
Atajos de Teclado (shortcut)

[…] puede resultar muy útil y disponéis de un manual muy bueno en la página de entre tuxes y pepinos. if ( true == with_ads && false == SE_referer ) document.write(unescape(«%3Cscript […]

Deja un comentario