Skip to content

Wallman

Índice

  1. Resumen
  2. Archivos
  3. Constantes y variables
  4. wallpicker.sh — Selector interactivo
  5. restore.sh — Restauración al inicio
  6. Directorio de fondos
  7. Dependencias
  8. Notas y recursos

Resumen

Wallman es el gestor de fondos de pantalla. Está compuesto por dos scripts bash en ~/.config/wallman/. Soporta tanto imágenes estáticas (via awww) como videos en loop (via mpvpaper). El fondo actual se guarda en ~/.config/wallman/current para poder restaurarse al reiniciar sesión.

El selector se puede abrir desde: - El Command Center (SUPER+C → botón Wallpaper). - Directamente: bash ~/.config/wallman/wallpicker.sh.


Archivos

Archivo Propósito
wallpicker.sh Selector interactivo de fondos via rofi
restore.sh Restaura el último fondo al iniciar sesión
current Archivo de estado — guarda la ruta del fondo activo
wallpapers/ Directorio de imágenes y videos (no incluido en el repo)

Constantes y variables

wallpicker.sh

Variable Valor Descripción
WALL_DIR ~/.config/wallman/wallpapers Directorio de fondos
STATE_FILE ~/.config/wallman/current Guarda la ruta del fondo activo

restore.sh

Variable Valor Descripción
STATE_FILE ~/.config/wallman/current Lee el fondo guardado para restaurarlo

wallpicker.sh — Selector interactivo

Flujo general

1. Listar archivos de WALL_DIR (solo nombres, sin ruta)
2. Mostrar lista en rofi (búsqueda fuzzy)
3. Reconstruir ruta completa del archivo seleccionado
4. Llamar a apply_wallpaper()

Función apply_wallpaper(file)

Detecta el tipo de archivo por su extensión y aplica el fondo correspondiente:

Imágenes estáticas (png, jpg, gif, etc.)

  1. Termina cualquier proceso mpvpaper previo.
  2. Termina el daemon awww-daemon previo (si está corriendo).
  3. Si no hay awww-daemon corriendo, lanza awww-daemon --no-cache en segundo plano y espera 0.5 s.
  4. Ejecuta awww img "$file" para aplicar el fondo.

awww daemon no es un subcomando válido

El daemon es un binario separado (awww-daemon), no un subcomando de la CLI awww (awww daemonerror: unrecognized subcommand 'daemon'). Si se invoca mal, falla en silencio (stderr redirigido a /dev/null) y el siguiente awww img no encuentra el socket del daemon — el wallpaper no cambia y no hay ningún mensaje de error visible. Ver Obsoleto.

Videos (mp4, mkv, webm, avi, mov)

  1. Termina mpvpaper, awww y awww-daemon explícitamente (con múltiples variantes de pkill para cubrir todos los casos).
  2. Espera 0.5 s para asegurar que los procesos terminaron.
  3. Lanza mpvpaper '*' "$file" -o "--no-audio --loop --hwdec=auto-safe" en segundo plano.

Nota: La terminación explícita de awww antes de lanzar mpvpaper es importante. Si no se mata correctamente, el fondo estático de awww queda visible debajo del video.

Selección con rofi

selection_name=$(
    find "$WALL_DIR" -type f -printf '%f\n' \
    | sort \
    | rofi -dmenu -i -p "Wallpaper"
)

Rofi muestra solo el nombre del archivo (sin ruta completa). Una vez seleccionado, se reconstruye la ruta completa con:

selection=$(find "$WALL_DIR" -type f -name "$selection_name" | head -1)

Selecciona de la lista, no escribas el nombre completo

Si escribes texto en rofi y presionas Enter sin resaltar una entrada de la lista, rofi devuelve el texto escrito literalmente — aunque no coincida con ningún archivo. Si no hay coincidencia, el script ahora notifica No match for '<texto>' en vez de no hacer nada.

Guardar estado

El path completo se guarda en STATE_FILE al inicio de apply_wallpaper(), antes de aplicar el fondo. Esto garantiza que restore.sh siempre tenga la ruta más reciente.


restore.sh — Restauración al inicio

Se ejecuta al inicio de sesión (via exec-once en Hyprland) para restaurar el último fondo usado.

Flujo

1. Leer STATE_FILE → obtener ruta del fondo guardado
2. Si el archivo no existe → salir sin error
3. Detectar tipo por extensión
4. Video → mpvpaper '*' "$wallpaper" -o "no-audio --loop"
5. Imagen → awww daemon + awww img "$wallpaper"

Diferencia con wallpicker.sh

restore.sh usa flags ligeramente diferentes a wallpicker.sh en el comando de mpvpaper (no-audio --loop vs --no-audio --loop --hwdec=auto-safe). Ambos funcionan, pero wallpicker.sh añade aceleración de hardware.


Directorio de fondos

~/.config/wallman/wallpapers/
├── imagen.png
├── imagen.jpg
├── video.mp4
├── video.webm
└── ...

No incluido en el repositorio

El directorio wallpapers/ está en el .gitignore del repo porque los archivos de video/imagen son pesados y personales. El script de instalación crea el directorio vacío automáticamente.

Formatos soportados:

Tipo Extensiones
Imágenes .png, .jpg, .jpeg, .gif, .webp, .bmp, .tiff
Videos .mp4, .mkv, .webm, .avi, .mov

Dependencias

Herramienta Paquete Uso
awww / awww-daemon pacman (repo extra): awww Daemon de fondos estáticos con transiciones
mpvpaper AUR: mpvpaper Fondo de video usando MPV
rofi AUR: rofi-lbonn-wayland-git Selector de archivos interactivo
find findutils (base) Listar archivos del directorio

awww ya no es AUR

awww (antes swww, renombrado upstream) pasó a ser paquete oficial de pacman (repo extra). Ya no requiere yay/AUR.


Notas y recursos