Commit Diff


commit - 531c69006f10e931684ce0b76234d2b1c60a6d78
commit + ad87416403bc6ed38937c71e2226f0dd40a1c03d
blob - 6215c2ecd33a96d723b26655151440d442af44ce
blob + 2aadc072dacd3e1e79060e15bbe227b0be128e86
--- NOTES.md
+++ NOTES.md
@@ -1398,3 +1398,44 @@ camino y una causa final que terminó siendo otra:
   sesión de Claude Code corriendo en `pcale`, la misma máquina que aloja
   Forgejo) — cero intentos de conexión de `got`, descartando que el
   servidor fuera la causa.
+
+## mpv + loupe (2026-07-17)
+
+A pedido del usuario ("agrega mpv y todas las dependencias para que pueda
+reproducir cualquier tipo de video, y agrega un visor de imágenes"), agregados
+ambos a `environment.systemPackages` en `modules/desktop.nix`.
+
+- **`mpv`: no hizo falta agregar ninguna dependencia de códecs aparte.**
+  Verificado leyendo el `package.nix` real de `mpv-unwrapped` y de
+  `ffmpeg/generic.nix` (no de memoria, mismo método que las rondas #10/#11):
+  `pkgs.mpv` enlaza `pkgs.ffmpeg`, que pese a resolver a la variante
+  `"small"` (`ffmpeg_8`) tiene `withSmallDeps ? ... || withFullDeps` y
+  `withHeadlessDeps ? ... || withSmallDeps` — es decir, `"small"` implica
+  `withHeadlessDeps = true`, que a su vez habilita por defecto dav1d (AV1),
+  libaom, libvpx (VP8/VP9), x264/x265, libbluray, vulkan, vaapi y,
+  confirmado con `nix eval` real sobre `buildInputs`, **`nv-codec-headers`**
+  (habilita nvdec/nvenc — decode/encode por hardware en la Nvidia real de
+  esta laptop vía `--hwdec=nvdec`, sin depender de ningún shim vaapi-nvidia
+  que no está instalado). El resto de contenedores/códecs (mpeg1/2/4, vc1,
+  prores, theora, etc.) los trae el propio ffmpeg sin libs externas. No se
+  usó `ffmpeg-full`: agrega sobre todo encoders/filtros raros irrelevantes
+  para reproducir, no decoders adicionales, y alarga mucho el build.
+  De paso, `nix build` mostró que `pkgs.mpv` (el wrapper, no
+  `mpv-unwrapped`) arrastra `yt-dlp` solo — reproducir una URL también
+  funciona sin instalar nada aparte.
+- **`loupe`** — visor de imágenes GTK4/Rust (proyecto GNOME, reemplazo de
+  `eog`). Elegido en vez de alternativas nativas de Wayland (`swayimg`/
+  `imv`) porque hereda el theme Gruvbox/Noctalia solo, vía el mismo
+  template built-in `"gtk4"` que ya usa Nautilus (confirmado que ambos
+  comparten stack GTK4/libadwaita) — las alternativas de Wayland puro no
+  tienen esa integración automática y requerirían theming a mano. El README
+  de Noctalia no recomienda ningún visor de imágenes en particular (fuera
+  de su alcance, mismo caso ya documentado para el gestor de archivos).
+- Ambos paquetes confirmados reales contra el nixpkgs del flake (`nix build
+  --no-link` de cada uno, resueltos desde el binary cache sin compilar) y
+  validado con `nix eval` que `mpv-with-scripts`/`loupe` aparecen en
+  `environment.systemPackages` del sistema completo, `config.assertions`
+  sigue en `[]`, y `config.system.build.toplevel` compila sin error.
+- **Pendiente manual:** correr `sudo nixos-rebuild switch --flake
+  /nixdots#ale` para aplicar (no lo corrí yo, ver política de acciones de
+  sistema).
blob - 1d1aa26c535bfcb86ff8458bc50774e6cfbf7b6c
blob + 4687e367ef9d874c6b5665ac3d4bd6262c6110c1
--- modules/desktop.nix
+++ modules/desktop.nix
@@ -154,6 +154,31 @@
          # reusa ssh-agent). "got commit" NO soporta firma GPG ni SSH (solo
          # "got tag -S" firma, y solo con SSH) -- para mantener los commits
          # firmados con la YubiKey seguir usando "git commit -S".
+
+    mpv  # reproductor de video/audio. Verificado con `nix eval`/`nix build`
+         # contra el nixpkgs real (no de memoria) que el `pkgs.mpv` de acá ya
+         # trae todo lo necesario para "cualquier tipo de video" sin agregar
+         # nada más: enlaza `pkgs.ffmpeg` (variante "small", que pese al
+         # nombre incluye withHeadlessDeps=true -- confirmado en
+         # ffmpeg/generic.nix) con dav1d (AV1), libaom, libvpx (VP8/VP9),
+         # x264/x265, libbluray, y sobre todo `nv-codec-headers` --
+         # confirmado en buildInputs -- que habilita nvdec/nvenc (decode por
+         # hardware en la Nvidia real de esta laptop vía `--hwdec=nvdec`, sin
+         # depender del shim vaapi-nvidia que no está instalado). El wrapper
+         # `pkgs.mpv` (no mpv-unwrapped) además arrastra `yt-dlp` solo, así
+         # que reproducir una URL también funciona sin instalar nada aparte.
+         # No hizo falta pasar a `ffmpeg-full`: agrega casi todo encoders/
+         # filtros raros irrelevantes para reproducir, no decoders extra.
+
+    loupe  # visor de imágenes -- GTK4/libadwaita (mismo stack que Nautilus,
+           # ya instalado), así que hereda el theme Gruvbox/Noctalia solo vía
+           # el template built-in "gtk4" (igual que Nautilus, ver comentario
+           # de arriba) sin declarar nada extra. El propio README de Noctalia
+           # no recomienda ningún visor de imágenes en particular (fuera de
+           # su alcance, mismo caso que el gestor de archivos) -- elegido por
+           # consistencia con el resto del setup GTK4 en vez de alternativas
+           # nativas de Wayland (swayimg/imv), que no traen esa integración
+           # automática de tema y requerirían configurarla a mano.
   ];
 
   # Necesario para que QT_QPA_PLATFORMTHEME=kde (de abajo) resuelva al plugin