
722 - Las 4 herramientas que han transformando mi escritorio Linux
Te muestro cuatro herramientas para personalizar tu entorno de escritorio con Niri, un lanzador de aplicaciones, un fondo de pantalla animador y mas
Hace ya algo mas de dos meses que reemplacé a mi anterior tiling window manager, Sway por Niri, un gestor de ventantas que me sorprendió por su ligereza, pero sobre todo por su comportamiento peculiar, por su scroll horizontal infinito. En concreto sobre este gestor de ventanas te hablé en el episodio 701 que titulé Este gestor de ventanas me hizo dejar i3, Hyprland y Sway. Durante estos meses, he pasado mas tiempo en Niri, que en GNOME, y la razón para ello, reside en que he estado programando prácticamente a diario, y la configuración que me ofrece Niri para lo que estoy haciendo se adapta fantásticamente a mi flujo de trabajo. Sin embargo, había algunos detalles que no estaban del todo afinados. Y poco a poco he ido tuneando la configuración para llegar al punto en el que me encuentro. Y es que si tu también utilizas un tiling o bien tu configuración la tienes en unos dotfiles, te habrás dado cuenta de que tu configuración es un viaje constante que no tiene fin, siempre en busca de perfilar hasta el más mínimo detalle. Así, en este episodio te quiero hablar sobre un nuevo lanzador de aplicaciones, un selector de emojis, fondos de pantalla animados y animaciones y reglas de ventanas.

Las 4 herramientas que han transformando mi escritorio Linux
El cerebro de la operación: Anyrun como lanzador
En el episodio 703, titulado ¿Y si pudieras abrir TODO en Linux con solo unas teclas?, te hablé de Ulauncher, un lanzador de aplicaciones que me ha acompañado durante mucho tiempo. Sin embargo, bicheando en los dotfiles de alguien, que ahora no recuerdo (lástima no haberlo anotado), me encontré con Anyrun, un lanzador de aplicaciones que me ha sorprendido gratamente.
Y es que algo de lo que me dí cuenta cuando retomé Ulauncher es que no es para nada rápido. Desde que lo inicias, hasta que aparece pasa un tiempo que no es despreciable. Y esto es algo que me ha hecho pensar en otras alternativas.
Sobre Anyrun
Antes que te lances como un poseso a instalar y configurar Anyrun como tu lanzador por defecto, indicarte que actualmente se encuentra en modo de mantenimiento su desarrollo. Así que tienes que tener muy en cuenta esta detalle. Y no solo esto, también hay otro problema, y es que no es está en los repositorios AUR, ni en ninguno de los repositorios ofiicales. O al menos, yo no he sido capaz de encontrarlo, con lo que tendrás que compilarlo si quieres instalarlo.
Anyrun es un lanzador nativo al estilo de krunner que está implementado con la personalización en mente.
Características
Algunas de las características de Anyrun son las siguiente,
- Estilo personalizable con GTK+ CSS. Puedes modificar la apariencia de la herramienta (colores, fuentes, etc.) a tu gusto, editando un simple archivo de estilos CSS, lo que te da un control total sobre su diseño.
- Puede hacer prácticamente cualquier cosa. Su gran versatilidad le permite realizar cualquier acción o tarea que se base en la entrada de texto que escribas o en lo que tengas seleccionado.
- Fácil de crear plugins. Es muy sencillo desarrollar extensiones para la herramienta, ya que solo necesitas escribir cuatro funciones básicas para añadir nuevas funcionalidades.
- Respuesta rápida y fluida. Funciona de forma ágil y eficiente porque ejecuta las funciones de sus plugins en segundo plano (de forma asíncrona), evitando que la interfaz se bloquee.
- Nativa de Wayland. Está diseñada para funcionar perfectamente en entornos de escritorio que utilizan el servidor gráfico Wayland, integrándose de forma nativa en este tipo de sistemas.
- Gestión del portapapeles. La herramienta tiene la capacidad de interactuar directamente con el portapapeles del sistema, lo que le permite manejar la información que tengas copiada o cortada.
Instalación
Como te indicaba anteriormente Anyrun no está en los repositorios oficiales de Arch Linux, ni tampoco en AUR, por lo que tendrás que compilarlo. Para hacerlo ejecuta los siguientes comandos en una terminal,
git clone https://github.com/anyrun-org/anyrun && cd anyrun
cargo build --release
cargo install --path anyrun/
mkdir -p ~/.config/anyrun/plugins
cp target/release/*.so ~/.config/anyrun/plugins
cp examples/config.ron ~/.config/anyrun/config.ron
Plugins
Anyrun utiliza plugins para su funcionamiento. Actualmente existen algunos plugins oficiales disponibles en el propio repositorio,
- Applications. Busca y ejecuta aplicaciones instaladas en el sistema.
- Symbols. Busca y muestra símbolos Unicode.
- Rink. Realiza operaciones matemáticas y de conversión de unidades.
- Shell. Ejecuta comandos de shell directamente desde Anyrun.
- Translate. Traduce texto entre diferentes idiomas.
- Kidex. Proporciona búsqueda de archivos utilizando el motor de búsqueda Kidex.
- Randr. Permite rotar y cambiar el tamaño de las pantallas conectadas.
- Stdin. Convierte Anyrun en un selector de tipo dmenu, permitiendo seleccionar elementos de una lista.
- Dictionary. Busca definiciones de palabras en un diccionario integrado.
- Websearch. Realiza búsquedas en la web utilizando motores configurables como Google, Ecos
- Nix-run. Permite ejecutar aplicaciones gráficas directamente desde Anyrun utilizando Nix.
- niri-focus. Permite enfocar ventanas activas utilizando una búsqueda difusa en Niri.
Indicar que cada uno de los complementos son configurables con su propio archivo de configuración, y que algunos de ellos necesita de una palabra clave para que se inicie.
Por ejemplo,
shell
, necesita que prefijes:sh
translate
, tienes que escribir:[from]>[to]
, por ejemplo:es>en casa
dictionary
, tienes que escribir:def
Esto es algo similar a lo que puedes encontrar con otras herramientas similares. Sin embargo, el problema es los pocos plugins que tienes a tu disposición. Aunque, como ya te he comentado, puedes crear los tuyos propios de forma sencilla. Aunque siempre puedes implementar los tuyos propios.
El selector de Emojis
Como ya te he comentado en otras ocasiones el uso de los emojis cada vez se ha hecho mas necesario, o por lo menos así me lo parece. Los emojis, al fin y al cabo, sirven para mostrar la cara. Como muy bien sabes, no todo lo expresamos en palabras, mucho va en gestos. Si al hablar ya es difícil expresar ironía y que se entienda, imagina al escribir. Bueno, pues precisamente para eso, para expresar emociones es para lo que estoy utilizando cada vez mas los emojis.
Esto en GNOME lo tengo solucionado mediante una sencilla extensión, sin embargo, mi problema está con Niri, como resolverlo. Pues precisamente aquí es donde entra a jugar Smile.
Se trata de una aplicación implementada en Python, pero que no termina de funcionar como espero. Estoy temporalmente buscando otra solución que sea mas rápida y que me permita utilizar los emojis de forma mas eficiente. Por lo que si conoces alguna, por favor, házmelo saber.
Tengo que decirte que esto es, normalmente para contestar comentarios o mensajes en YouTube o en atareao.es, porque para escribir, como te puedes imaginar tengo el correspondiente plugin de Neovim que me soluciona perfectamente esto.
Fondos dinámicos
Esto de los fondos dinámicos es algo que te va a parecer absurdo, pero sin embargo es algo que me relaja. No se trata de la típica aplicación que cada cierto tiempo cambia de fondo de pantalla. Se trata de tener un vídeo como fondo de pantalla. En mi caso, últimamente tengo un fondo de pantalla que es un paisaje con un árbol movíendo sus hojas con el viento. Y la verdad es que me resulta muy relajante.
Como lo tengo implementado en Niri
Es muy sencillo implementarlo en Niri, tan solo tienes que añadir las siguientes líneas en tu configuración,
spawn-at-startup "mpvpaper" "-vp" "-o" "no-audio loop" "DP-1" "~/backgrounds/autumn-tree-ghost-of-tsushima-moewalls-com.mp4"
spawn-at-startup "mpvpaper" "-vp" "-o" "no-audio loop" "HDMI-A-1" "~/backgrounds/autumn-tree-ghost-of-tsushima-moewalls-com.mp4"
Si te das cuenta tengo puesto el mismo fondo de pantalla en los dos monitores, pero podría tener un fondo de pantalla para cada uno de los monitores, o tener uno dinámico y otro estático, o como quisiera hacerlo.
Animaciones y reglas de ventana
Para pulir el uso de Niri, es necesario configurar animaciones y reglas de ventana. En el lado de las animaciones, por el momento, solo estoy jugueteando con ellas en busca de la que mejor encaja y menos me despista.
La parte importante son las reglas de ventana. Por ejemplo en el caso de la app de emoji, si no tengo configurada una regla el problema con el que me encuentro es que se coloca como se espera en modo de tiling. Pero yo quiero que salga flotante. Para esto puedo definir una regla como la siguiente,
window-rule {
match app-id=r#"smile$"#
open-floating true
}
Pero no solo se trata de conseguir que salga flotante, también puedes modificar para que en caso de que no esté seleccionada salga parcialmente transparente,
window-rule {
match app-id="kitty" is-active=false
opacity 0.8
}
Pero también es posible que quieras hacer alguna configuración para todas las ventanas,
window-rule {
geometry-corner-radius 12
clip-to-geometry true
}
Conclusión
Como te comentaba en la introducción del podcast, esto de la configuración, de un tiling o de un editor de texto o de cualquier cosa, es algo que sabes cuando empieza, pero nunca cuando acaba. Es un proceso continuo. Si esperas a llegar a tu configuración definitiva, ya te puedo decir que puedes esperar sentado, porque esto no llegará.
Más información,