750 - Actualizando Niri y otras mejoras en mi escritorio
Niri 25.11, Sherlock y Stasis: Optimiza tu escritorio Linux para productividad extrema en Wayland. Trucos de Tiling WM y el atajo secreto para monitores.
En estas últimas semanas se han invertido las tornas. He estado utilizando en mayor proporción Niri, que GNOME. Esto es así, porque estoy programando algunas herramientas web, con su correspondiente backend y frontend, y Niri me ofrece un entorno más productivo para este tipo de tareas. Por un lado, me permite una disposición de ventanas que me permite tener todo lo que necesito a la vista, y modificarlo rápdicamente, y por otro lado, me facilita el cambio entre espacio de trabajo de forma cómoda.
Estando en Niri, por un lado, gracias a un comentario de un oyente pude resolver un gran inconveniente que tenía, del cual me quejé en un episodio anterior. Además se ha actualizado Niri, y nos trae algunas mejoras interesantes. Y por último, he cambiado algunas aplicaciones básicas que estaba utilizando, como es el gestor del idle o estado inactivo y el lanzador de aplicaciones

Actualizando Niri y otras mejoras en mi escritorio
Programando en Niri
Como te decía en la introducción, la gran ventaja para mi es la comodidad con la que programo con Niri. Me permite cambiar rápidamente entre espacios de trabajo, y tener las ventanas organizadas de forma que todo lo que necesito está a la vista.
Incluso cambiar la disposición de las ventanas según lo voy necesitando. Sobre todo la ventana en la que estoy programando, que dependiendo de la tarea que esté haciendo en ocasiones necesito que ocupe toda la pantalla y en otras ocasiones no.
El atajo de teclado que andaba buscando
Uno de los problemas que me incomodaban mas en el uso de Niri, y que si encontré con Cosmos, era cuando estaba en un monitor y quería saltar a otro monitor. Este problema solucionado por un oyente que me comentó cual era la solución, al cual le agradezco enormemente.
Ahora cuando estoy en la ventana de la derecha, puedo saltar al monitor de la derecha con Super+l, y lo mismo con el caso del monitor de la izquierda. Esto me dio pie para pensar si podría saltar al espacio de trabajo de arriba o abajo utilizando los respectivo j y k, y efectivamente, funciona perfectamente. Toda una alegría para mi productividad.
Las novedades de Niri
Son muchos los cambios que se han introducido en Niri en esta nueva versión. Algunos de estos cambios son,
- Nuevo Cambiador de Ventanas Alt-Tab. Se ha implementado un nuevo cambiador de ventanas recientes Alt-Tab con vistas previas en vivo, soporte para ventanas bloqueadas y un diseño optimizado para múltiples terminales. Permite limitar la vista a ventanas del espacio de trabajo o del monitor actual presionando
WuO. - Animaciones de Pantalla Completa Suaves. Las transiciones al entrar y salir del modo de pantalla completa ahora están completamente animadas, eliminando saltos bruscos. El fondo se desvanece y crece suavemente, con las esquinas redondeadas de las ventanas realizando una transición fluida.
- Implementación del Maximizar Real (Wayland). Se añadió el comportamiento de «Maximizar» esperado por los usuarios, que hace que una sola ventana ocupe toda el área de trabajo sin huecos ni bordes. La acción se llama
maximize-window-to-edgesy es diferente a la columna de ancho completo anterior. - Desplazamiento Horizontal de la Vista al Arrastrar Ventanas. Ahora, al arrastrar ventanas en mosaico horizontalmente por su barra de título, se desplaza la vista en lugar de mover la ventana. Esto mejora la navegación solo con ratón y también funciona en pantallas táctiles para facilitar el desplazamiento.
- Configuración de Diseño por Salida/Espacio de Trabajo. Se permite anular la configuración de diseño (
layout {}) para monitores (output {}) y espacios de trabajo con nombre específicos (workspace "nombre" {}). Esta característica es útil para configurar proporciones o gaps distintos en monitores ultra-anchos o espacios de trabajo temáticos. - Soporte para Inclusiones de Configuración. Ahora se pueden incluir otros archivos
.kdlen la configuración principal (include "archivo.kdl"), facilitando la división de la configuración en fragmentos. Esto también permite que herramientas de terceros inyecten configuraciones de manera robusta. - Soporte para Monitores DisplayLink. El compositor ahora es compatible con monitores conectados a través de docks DisplayLink. Esta es una mejora importante para plataformas como los Mac Asahi.
- Reducción del Parpadeo de Pantalla al Iniciar. Se adoptó una lógica para evitar el parpadeo de pantalla (flickering a negro) al iniciar o volver a la sesión de niri desde una TTY. Esto ocurre si la resolución y frecuencia de actualización coinciden con las del gestor de inicio de sesión/TTY.
- Modos de Salida Personalizados. Los usuarios avanzados ahora pueden forzar el uso de modos de monitor no anunciados por el EDID o proporcionar modelines personalizados. Esto es útil para usar resoluciones o frecuencias de actualización específicas (con la advertencia de que puede ser peligroso).
- Mejoras en la Accesibilidad (Lectores de Pantalla). Se corrigió un error en la señalización de modificadores de teclado, haciendo que combinaciones clave para lectores de pantalla como Orca funcionen correctamente. Además, el nuevo cambiador Alt-Tab está diseñado para leer el título de la ventana seleccionada.
Cambiando el gestor de estado inactivo
Stasis es un gestor de estado inactivo moderno cuyo objetivo es conseguir que tu equipo no vaya a estado inactivo cuando no debe, y permitiéndolo cuando toca.
Instalación
La instalación es realmente sencilla, y puedes encontrar instrucciones para distintas distribuciones en la página del proyecto en GitHub. En mi caso, al estar utilizando Arch Linux, simplemente he ejecutado el siguiente comando,
paru -S stasis
configuración
Aquí tienes que hacer un poco mas de trabajo. Lo primero es que tu usuario tiene que estar en el grupo input, para lo cual ejecutas,
sudo usermod -aG input $USER
Si además estás trabajando con un portátil, tienes que añadir video, que de la misma forma lo tienes que hacer con,
sudo usermod -aG video $USER
Una vez hechos estos pasos, lo siguiente es habilitar el servicio de stasis para que se inicie automáticamente con el sistema,
systemctl --user enable stasis
systemctl --user start stasis
Por otro lado stasis utiliza un archivo de configuración de tippo .rune. Aquí, te recomiendo que visites directamente la página del proyecto en GitHub, por que dependiendo de tus necesidades, tendrás que configurar unas cosas u otras.
Integración con Niri
En este caso, no necesitas realizar ninguna integración con Niri, porque realmente lo inicias como un servicio. Sin embargo, si lo quieres integrar con la barra waybar, tienes a tu disposición una configuración que te permite hacerlo de forma sencilla.
Cambiando el lanzador de aplicaciones por mi torpeza
Hasta hace poco estaba utilizando anyrun, un lanzador de aplicaciones realmente ligero y que tenía una funcionalidad primordial desde mi punto de vista que deberían tener todos los lanzadores de aplicaciones, que es la búsqueda por lógica difusa. Esto me resulta muy cómodo porque para buscar Firefox simplemente escribo ff y listo. Sin embargo, en las búsquedas normales Firefox no lo encontraría y si que encuentra Libreoffice. Pero bueno, que le vamos a hacer.
La cuestión es que tenía instalada una versión antigua de anyrun y no había manera de actualizarla. Así que buscando alternativas, di con Sherlock, y es lo que estoy probando actualmente, y si bien, no tiene lógica difusa, funciona razonablemente bien, y tiene otras funcionalidades interesantes, como la posibilidad de lanzar búsquedas en la web directamente desde el lanzador.
Sherlock
Antes de que nadie se emocione, indicar que según el propio desarrallodor de esta herramienta Sherlock está implementado pensando en el tiling window manager hyprland y según el mismo advierte, es posible que no funcione correctamente en otros entornos de escritorio. Sin embargo, después de probarlo en Niri, te puedo decir que aquí funciona perfectamente. Así que es cuestión de probar en otros entornos a ver su desempeño.
¿Que es Sherlock?
Pues como ya te puedes imaginar, se trata de un lanzador de aplicaciones ligero implementado utilizando la combinación Rust y Gtk4, que te permite lanzar tus aplicaciones de forma sencilla y con un interfaz muy amigable. Proporciona un sistema de búsqueda rápido y altamente configurable, que además hace un seguimiento de las aplicaciones que mas utilizas para mostrarlas primero en los resultados de búsqueda.
Además de todo esto, Sherlock tiene un sistema de plugins que te permite modificar el propio comportamiento del lanzador permitiéndote realizar otro tipo de búsquedas, como por ejemplo, en la Wikipedia, en el portapapeles o incluso en un diccionario.
Algunas características
Algunas de las características más destacadas de Sherlock son,
- Es completamente personalizable, permitiéndote ajustar su apariencia y comportamiento según tus preferencias. Esta personalización se raliza utiliza css, con lo que es realmente fácil de hacer… aunque hasta el momento yo no he tocado nada, por simple pereza.
- Te permite definir tus propios comandos y extender la funcionalidad del lanzador, añadir nuevas características o distintos flujos de trabajo que se adaptan a tu necesidades.
- Te permite configurar comportamientos de respaldo para distintos comandos y operaciones. De forma que si un comando falla o no está disponible, Sherlock puede intentar una alternativa o proporcionar una respuesta predeterminada.
- Puedes definir alias para tus aplicaciones de forma que sea mas sencillo encontrarlas, asignar iconos y ocultar aquellas aplicaciones que no utilizas o no quieres que aparezcan en el lanzador.
- Tienes algunos widgets que te mostrarán en el propio lanzador información relevante como puede ser la situación meteorológica o incluso la pista que estés reproduciendo en Spotify, por decirte algunas opciones.
- Es posible configurar atajos de teclado para lanzar determinados comandos, sin necesidad de hacer scroll o búsquedas.
Instalación
La instalación es realmente sencilla, y puedes encontrar instrucciones para distintas distribuciones en la página del proyecto en GitHub. En mi caso, al estar utilizando Arch Linux, simplemente he ejecutado el siguiente comando,
paru -S sherlock-launcher-git
Una vez instalado, lo más cómodo es que ejecutes sherlock init que te generará una configuración por defecto.
Además y como es normal, tienes que integrarlo con Niri o con el entorno de escritorio que estés utilizando. En mi caso, he creado un atajo de teclado para lanzar Sherlock, que es Super + Space, y de esta forma, cada vez que pulse esa combinación de teclas, se lanzará el lanzador de aplicaciones.
Indicar que aunque tiene para seleccionar emojis, lo cierto es que todavía no he sabido copiarlos al poartapapeles, así que de momento no lo utilizo para eso 😥.
Más información,