Rofi

Hoy vamos a tocar un complemento para nuestros WM. Y lo digo en general, porque es una aplicación tan buena, que es perfectamente factible usarla en DWM, I3, JWM, o donde sea, sin importar que sea tiling, o no.

¿Qué hace? Pues… Casi de todo, la verdad. Desde permitirnos ejecutar una aplicación como gmrun, a buscarla entre nuestros programas instalados, disparar una aplicación de terminal directamente en consola, revisar qué ventanas tenemos abiertas (Esto último es muy útil cuando estamos con un tiling y 4 escritorios abiertos)…

Como de costumbre, iremos a lo básico, que es instalarla. Es necesario sí o sí que nuestro Debian esté en la versión testing, y no podremos usar los backports, caso de que estemos en Stable, porque requiere unas dependencias que, directamente, no tenemos disponibles ni podemos compilar.

Con eso en mente, instalamos mediante el comando de siempre:

sudo apt-get install rofi

Ya aviso que es necesario leerse el man de este programita, porque tiene miga todo lo que hace. El creador, Dave Davenport, hizo un trabajo espléndido, y recomiendo encarecidamente no sólo leer el man, sino ir a la página a revisarla.

Bueno. Ya tenemos bajado rofi, y por más que lo disparemos, no pasa nada, ¿verdad?. Toca meterle opciones, y empezaremos por lo básico, que es ejecutarlo. Para ello probaremos con

rofi -show run

Con esto sacaremos un listado de TODO lo que hay disponible en /usr/bin. Está bien, pero no es práctico, dado que tenemos que recordar cómo se llama lo que estamos buscando. Para eso cambiaremos la opción de “run” a “drun”, que nos sacará un output de nuestros archivos desktop.

rofi -show drun

Ya con esto hablamos de un menú hecho y derecho (Aunque no tenga categorías, que eso es para gustos).
No obstante, podemos combinar ambos modos de una forma elegante, con pestañas. Para ello vamos a ampliar el comando:

rofi -modi “drun,run” -sidebar-mode -show drun

Bien, tenemos un rofi que nos muestra nuestros archivos desktop, y la opción de ver todo lo que hay en /usr/bin (Esto lo haremos mediante Shift+cursores). No está nada mal, pero… ¿Seguimos?.
En mi caso, uso un WM tiling (He vuelto a I3 una temporadita) y es muy, pero muy fácil, que tenga abiertas 10 aplicaciones repartidas en varios escritorios. Lo típico, música en un lado, firefox en otro, ranger danzando por ahí, algún cómic a medio leer, X terminales…. En ese escenario, poder ver que hay abierto y saltar de un lado a otro, se hace tremendamente cómodo. Y, sobre todo, porque engloba todos los escritorios y salta de uno a otro según aplicación.
Para eso, seguiremos con el comando, y añadiremos el valor “window” y “keys”. El primero, para ir rápido de una aplicación a otra, y el segundo, porque tener un cheatsheet de atajos de teclado sale a cuenta.

rofi -modi “keys,run,window,drun” -sidebar-mode -show drun

Si cambiais el orden de los modos, el orden en vuestro rofi también cambia, así que es bastante fácil organizar un menú completo en un momento.
El cómo lo hagáis, queda a vuestro libre albedrío, pero es casi obligación leer el man, dada su cantidad de opciones.

Lo único, que llevamos un comando “en condiciones” y aún no hemos empezado con la configuración de aspecto. Para evitarnos el churro, usaremos Xresources, el cual controla el aspecto de muchas aplicaciones (Como xterm, por ejemplo).
El propio autor tiene en la página un generador de temas para rofi donde iremos viendo sobre la marcha cómo va quedando nuestro menú. Y si no, en la sección de themes, hay algunos ya pregenerados muy majos. En todo caso, lo que nos interesa, es el Xresources completo, ya sea personalizado o un tema.
Así pues, abrimos una terminal, y con nano editamos el Xresources:

nano ~/.Xresources

Una vez copiado el tema, vamos a seguir metiéndole opciones. Con esto nos ahorraremos tener un Quijote de comando y podremos lanzarlo con un simple “rofi -show drun”.
Toda la sintaxis de rofi es igual: Al inicio, un “rofi.” (Sin las comillas) y luego las opciones.

! ——————————————————————————
! ROFI Color theme
! ——————————————————————————
rofi.color-enabled: true
rofi.color-window: #232323, #232323, #e1e1e1
rofi.color-normal: #232323, #e1e1e1, #232323, #e1e1e1, #232323
rofi.color-active: #232323, #e1e1e1, #232323, #e1e1e1, #232323
rofi.color-urgent: #232323, #dc322f, #232323, #dc322f, #fdf6e3
rofi.separator-style: solid
rofi.bw: 10
rofi.scrollbar-width: 10
rofi.font: DejaVu 10
rofi.lines: 20
rofi.disable-history: true
rofi.modi: keys,run,window,drun
rofi.sidebar-mode: true
rofi.case-insensitive: true

Este es el mío, que además de elegir los colores, determina el grosor del borde, de la barra de desplazamiento, la fuente, etc.
Lo pongamos como lo pongamos, una vez hayamos acabado y guardado, necesitamos cargar la configuración. Esto lo haremos con

xrdb -merge .Xresources

El modo de dispararlo varía según WM. En I3 será (El atajo de teclado es el mío, cada cual…):

bindsym $mod+z exec –no-startup-id rofi -show drun

Para DWM es un poco más complejo. Deberemos asignar la función y luego una keybind (Cada cosa en sitio, y después nos tocará la consabida compilación):

static const char *rofi[] = { “rofi”, “-show”, “drun”, NULL };

{ MODKEY, XK_z, spawn, {.v = rofi } },

Y de momento, explicado un poco por encima, esto es rofi. Espero que os haya convencido este magnífico menú tanto como a mi. Y, sobre todo, ¡Gracias a Dave por el trabajo!.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s