Commit Diff


commit - b4423212ddf2d4e8102b5ee3ca82230ab4bb91b4
commit + 9e6aa2dfa2b6cd6d22df670d30dd09cde8a4051e
blob - 931a0da548cf67ac244885ca9de11ae03d4768c4
blob + 65e14b7f4a6490051bcb31d7e99a2d3097e1ea35
--- home/ale/home.nix
+++ home/ale/home.nix
@@ -245,12 +245,10 @@ in
   };
 
   # --- delta: diffs con resaltado de sintaxis ---
-  # Repos migrados de got a git (2026-07-28, ver NOTES.md) -- a diferencia de
-  # got, git SÍ invoca un pager propio (core.pager), así que
-  # programs.git.delta.enable = true (más abajo, junto a programs.git) alcanza
-  # para que `git diff`/`git log -p`/`git show` salgan coloreados solos, sin
-  # necesitar las funciones manuales gotd/gotl de antes (sacadas). El alias
-  # `gd` del plugin "git" de oh-my-zsh (`git diff`) ya hereda esto gratis.
+  # git invoca su propio pager (core.pager) -- programs.delta.enable = true
+  # (más abajo, junto a programs.git) alcanza para que `git diff`/`git log
+  # -p`/`git show` salgan coloreados solos. El alias `gd` del plugin "git" de
+  # oh-my-zsh (`git diff`) ya hereda esto gratis.
   # paquete delta declarado más abajo, junto al resto de home.packages (dos
   # asignaciones de home.packages en el mismo archivo chocan -- Nix tira
   # "attribute already defined", no las mergea solas como sí hace el sistema
@@ -381,11 +379,9 @@ in
       # 2026-07-22) porque no hay NIX_PATH nixos-config. El subshell con
       # `set -e` corta en el primer error (ej. build roto) sin aplicar
       # switch ni tocar el cwd de la terminal interactiva.
-      # /nixdots volvió a ser un repo git normal (2026-07-28, ver NOTES.md --
-      # antes fue work tree de got, migración documentada como "Migración a
-      # got puro" en NOTES.md 2026-07-22). programs.git.signing.signByDefault
-      # ya está en true (más arriba), así que este commit de flake.lock queda
-      # firmado con la YubiKey solo, sin nada especial acá.
+      # programs.git.signing.signByDefault ya está en true (más arriba), así
+      # que este commit de flake.lock queda firmado con la YubiKey solo, sin
+      # nada especial acá.
       #
       # Sin argumentos actualiza TODOS los inputs a la vez (comportamiento
       # de siempre). Pasándole nombres de inputs (ej. `nixos-update nixpkgs`)
@@ -472,9 +468,9 @@ in
     };
   };
 
-  # git (a diferencia de got) invoca su propio pager -- programs.delta acá
-  # (NO programs.git.delta, renombrado -- confirmado con build real: "has
-  # been renamed to `programs.delta.enable'") alcanza para que
+  # git invoca su propio pager -- programs.delta acá (NO programs.git.delta,
+  # renombrado -- confirmado con build real: "has been renamed to
+  # `programs.delta.enable'") alcanza para que
   # `git diff`/`git log -p`/`git show` (y el alias `gd` de oh-my-zsh) salgan
   # coloreados con delta solos, sin funciones manuales. enableGitIntegration
   # explícito: el auto-enable basado en programs.git.enable quedó deprecado.
blob - 5bba79676cafe218c8cef00159e34f7ce70305e7
blob + 0f72e625e0ab38460ef84da42a24aef86b191db6
--- hosts/ale/configuration.nix
+++ hosts/ale/configuration.nix
@@ -48,7 +48,7 @@
 
   # --- Red ---
   networking.hostName = "ale";
-  # networking.networkmanager.enable ya se activa en modules/desktop.nix (requisito de Noctalia)
+  # networking.networkmanager.enable ya se activa en modules/desktop.nix (lo usa el applet de red de DMS)
 
   # --- Zona horaria / locale ---
   time.timeZone = lib.mkDefault "America/Mexico_City"; # AJUSTAR si no es tu zona
blob - 4c5e050b4130b57213c5c47f1049f05ccff1ca00
blob + 73f839becfb9418de31c181fce4d09831db2f06c
--- modules/desktop.nix
+++ modules/desktop.nix
@@ -1,43 +1,5 @@
 { config, lib, pkgs, inputs, ... }:
 
-let
-  # DaVinci Resolve es una app X11 y esta sesión usa xwayland-satellite, no
-  # XWayland nativo (ver modules/niri.nix). xwayland-satellite NO le reenvía a
-  # niri la ventana principal de Resolve ("Organizador de proyectos"): el splash
-  # abre, se cierra, y el editor nunca aparece -- el proceso queda vivo sin
-  # ventana girando CPU. Diagnosticado en vivo 2026-08-29: la X-window existe
-  # (Map State IsViewable, sin override-redirect) pero `niri msg windows` no la
-  # lista nunca. Envolver Resolve en gamescope (micro-compositor anidado) le da
-  # una raíz X11 limpia y hacia niri sale como UNA ventana Wayland normal --
-  # confirmado que así abre el Organizador de proyectos sin crash.
-  #
-  # Las tres __*_OFFLOAD/__GLX/__VK son para que, en esta Optimus (Intel UHD 630
-  # + GTX 1050), tanto gamescope como Resolve usen la Nvidia: sin ellas el
-  # GPUDetect de Resolve dentro del compositor anidado no encuentra la GPU y
-  # crashea (SIGABRT en libddm, "mutex lock failed"). Con Xwayland directo
-  # Resolve ya elegía la Nvidia sin ayuda, pero gamescope por default arranca
-  # sobre la Intel.
-  #
-  # El .desktop de Resolve trae Exec=davinci-resolve (sin path absoluto), así
-  # que el lanzador de DMS/fuzzel agarra este wrapper vía PATH. Contra conocida:
-  # la ventana queda con app-id "gamescope", no "resolve" -- rompe el
-  # StartupWMClass del .desktop y cualquier regla de ventana de niri que apunte
-  # a "resolve".
-  davinci-resolve-gamescope = pkgs.symlinkJoin {
-    name = "davinci-resolve-gamescope";
-    paths = [ pkgs.davinci-resolve ];
-    nativeBuildInputs = [ pkgs.makeWrapper ];
-    postBuild = ''
-      rm $out/bin/davinci-resolve
-      makeWrapper ${pkgs.gamescope}/bin/gamescope $out/bin/davinci-resolve \
-        --set __NV_PRIME_RENDER_OFFLOAD 1 \
-        --set __GLX_VENDOR_LIBRARY_NAME nvidia \
-        --set __VK_LAYER_NV_optimus NVIDIA_only \
-        --add-flags "-w 1920 -h 1080 -f --" \
-        --add-flags "${pkgs.davinci-resolve}/bin/davinci-resolve"
-    '';
-  };
-in
 {
   # pkexec necesita el wrapper setuid de NixOS para funcionar (el binario
   # crudo del store no tiene setuid). Sin esto, el propio módulo de gamemode
@@ -296,19 +258,6 @@ in
       # renderizar fórmulas, y julia-bin para el Ctrl+E de bloques
       # ```julia; los tres están en home.nix (paquetes de usuario, no del
       # sistema), o vía el devShell del propio repo.
-    got  # VCS de este mismo repo (/nixdots ya es un work tree de got, sin
-         # .git -- ver "Migración a got puro" en NOTES.md, 2026-07-22).
-         # Reusa ssh-agent para clone/fetch/send por ssh://, igual que git.
-         # "got commit" NO soporta firma GPG ni SSH (solo "got tag -S" firma,
-         # y solo con SSH) -- los commits de este repo quedan sin firmar
-         # desde la migración. El autor de los commits está declarado en
-         # got.conf del repo bare (~/nixdots.git/got.conf), NO se resuelve
-         # de programs.git/~/.gitconfig -- got solo lee el ~/.gitconfig
-         # clásico como último recurso, y este sistema usa el config de git
-         # en formato XDG (~/.config/git/config, ver home.nix), que got no
-         # mira. programs.git sigue instalado a nivel de sistema solo por
-         # otros repos ajenos a /nixdots.
-
     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
@@ -331,33 +280,6 @@ in
            # imv), que no traen esa integración automática de tema y
            # requerirían configurarla a mano.
 
-    gamescope  # micro-compositor -- lo usa el wrapper davinci-resolve-gamescope
-               # (ver `let` arriba); también sirve suelto para debug
-    davinci-resolve-gamescope  # editor de video, reemplaza a kdenlive (removido
-      # a pedido explícito). Es pkgs.davinci-resolve envuelto en gamescope (ver
-      # el bloque `let` al principio del módulo para el porqué).
-      # Paquete de nixpkgs (pkgs/by-name/da/davinci-resolve):
-      # es un FOD (fixed-output derivation) que descarga el instalador oficial
-      # Linux directo de blackmagicdesign.com durante el build/switch (sin
-      # cuenta/login -- la API pública de descargas alcanza), así que el
-      # primer `nixos-rebuild switch` con esta línea necesita red y baja unos
-      # cuantos GB. Corre en un buildFHSEnv (bubblewrap), no un paquete nativo.
-      #
-      # GPU: no hace falta tocar modules/graphics.nix. OpenCL (lo que Resolve
-      # usa para GPU compute en Linux, junto con CUDA) ya sale solo -- el
-      # módulo hardware.nvidia de NixOS mete `nvidia_x11.out` en
-      # hardware.graphics.extraPackages automáticamente, y ese output ya trae
-      # el ICD de OpenCL (etc/OpenCL/vendors/nvidia.icd, confirmado en
-      # builder.sh real de nixpkgs) visible bajo /run/opengl-driver, que es
-      # justo donde el loader de ocl-icd (ya en el FHS env del paquete) busca
-      # por default. CUDA tampoco necesita cudaPackages.cudatoolkit (que sigue
-      # comentado en graphics.nix): addDriverRunpath en postFixup del paquete
-      # ya engancha contra libcuda.so del propio driver propietario instalado
-      # (legacy_580), el toolkit completo no hace falta solo para correr.
-      # Verificar con `clinfo` (agregar temporalmente si hace falta) que
-      # aparece la GTX 1050 como plataforma OpenCL antes de asumir que Resolve
-      # ya la está usando -- confirmar también dentro de Resolve en
-      # Preferences → Memory and GPU → GPU Configuration.
   ];
 
   # Necesario para que QT_QPA_PLATFORMTHEME=kde (de abajo) resuelva al plugin
blob - 62656591dcce166728dc61f4f0de25bab3cfce71
blob + eca239c29eb4d2a2fd24e59b2456056ad1fcb432
--- modules/niri.nix
+++ modules/niri.nix
@@ -128,16 +128,12 @@
     # (assets/systemd/dms.service de DMS) trae `Restart = "on-failure"`, que es
     # justo lo que faltó cuando se probó en vivo (2026-08-08): un `dms restart`
     # mató el proceso y NADA lo relanzó -- pantalla sin barra/dock/wallpaper
-    # hasta que se relanzó a mano. Confirmado seguro en ESTE equipo pese a que
-    # Hyprland sigue instalado: el unit es wantedBy=graphical-session.target, y
-    # ese target NUNCA se activa bajo Hyprland acá (por eso Noctalia necesitaba
-    # el loop de shell, ver NOTES.md) -- así que no hay riesgo de que arranquen
-    # dos instancias peleando por el bus, la advertencia de upstream sobre
-    # combinar systemd+spawn no aplica a este caso. Bajo niri SÍ se activa
-    # (niri-session corre dbus-update-activation-environment y arranca
-    # niri.service, que es BindsTo=/Before=graphical-session.target --
+    # hasta que se relanzó a mano. El unit es wantedBy=graphical-session.target,
+    # que niri-session activa solo (corre dbus-update-activation-environment y
+    # arranca niri.service, BindsTo=/Before=graphical-session.target --
     # confirmado contra resources/niri-session y resources/niri.service reales
-    # del proyecto, y en vivo con `systemctl --user is-active graphical-session.target` -> active).
+    # del proyecto, y en vivo con `systemctl --user is-active
+    # graphical-session.target` -> active).
     systemd.enable = true;
 
     lockscreen.securityKey.enable = true;