
Tengo un problema con los fondos de pantalla y es que nunca me acuerdo de cuál tengo puesto en cada monitor. El switcher de Omarchy funciona bien, pero va a ciegas: no ves la miniatura, no sabes si el vídeo lleva sonido y, si cambias uno, te cambia todos. Así que hice Wallpaper Picker, un plugin que abre una ventana con los fondos del tema activo y te deja aplicar el que quieras en la pantalla que quieras.
Está en github.com/Madmasx/madmasx.wallpaper-picker, con licencia MIT.
Qué puedes hacer con él
El panel muestra una rejilla con las miniaturas a su proporción real, sin recortes raros. Ahí ves imágenes y vídeos mezclados, con un filtro para quedarte solo con uno de los dos tipos, y arriba un selector por si quieres mirar los fondos de otro tema instalado. Cuando eliges uno, se aplica con mpvpaper en el monitor que hayas marcado y los demás no se enteran.
Los vídeos van en bucle y, si quieres, con sonido. La miniatura no viene dentro del archivo, así que la saca el propio plugin con ffmpeg la primera vez y la guarda en caché. La segunda vez que abres el panel ya está lista.
Hay dos detalles que me parecían importantes. El primero es que el fondo tiene que aguantar un reinicio: el estado se guarda y se vuelve a lanzar al iniciar sesión. El segundo es que un vídeo de fondo comiendo CPU todo el día no tiene mucho sentido. Si una ventana tapa el 90% del monitor, el plugin pausa la reproducción por el socket IPC de mpv, y en mi equipo pasa de un 63% de un núcleo a casi 0%. Vuelve solo cuando despejas la pantalla.
Un par de cosas que costaron
La pausa la hago con set pause por IPC y no matando mpvpaper. Matarlo dejaba el monitor en negro mientras se liberaba la superficie, y relanzarlo tardaba lo suyo. Por IPC el cambio es instantáneo.
En equipos con dos GPU (NVIDIA e Intel o AMD) los vídeos petaban al renderizar sobre una superficie que no era suya. La salida fue forzar el EGL de Mesa con __EGL_VENDOR_LIBRARY_FILENAMES=50_mesa.json. En un equipo de una sola GPU no cambia nada.
También me di cuenta de que, si cambiabas el fondo desde el switcher de Omarchy con los fondos por monitor activos, el nuevo quedaba tapado. El plugin vigila el enlace de current/background y se aparta cuando detecta el cambio.
Instalación
Con la CLI de Omarchy:
omarchy plugin add https://github.com/madmasx/madmasx.wallpaper-picker --enable
omarchy restart shell
O a mano:
git clone https://github.com/madmasx/madmasx.wallpaper-picker
cd madmasx.wallpaper-picker
./install.sh
Necesita mpvpaper para aplicar fondos, y el instalador lo pide si falta. ffmpeg solo hace falta si vas a usar vídeos. Sin mpvpaper el fondo global del tema se sigue viendo, pero el plugin no puede poner uno distinto por monitor.
Qué toca y qué no
Solo escribe en su carpeta de plugin, en su estado dentro de ~/.local/state y en la papelera si borras un fondo. No toca la configuración del tema, ni los archivos de Hyprland, ni las terminales. El único sudo es el pacman -S mpvpaper socat del instalador, y solo si no los tienes. Tampoco manda nada a ningún servidor: no hay telemetría.
Si algo no va en tu equipo, abre un issue en el repo con lo que salga en journalctl --user -b del shell, que es donde aparecen los errores del plugin.
