Commit Diff


commit - 4c07d2e644f0c2d3212fb565219cc1adc7280793
commit + 24efbb6297e2c0aa48a38c06f738bb2559cbfdfd
blob - 8913b087ca4f733ae7a7fa80c416e9195729f88c
blob + 5aae2a29ddb2c5207d9205ac9ea7b37b17c018bb
--- flake.lock
+++ flake.lock
@@ -174,6 +174,22 @@
         "type": "github"
       }
     },
+    "nix-flatpak": {
+      "locked": {
+        "lastModified": 1767983141,
+        "narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
+        "owner": "gmodena",
+        "repo": "nix-flatpak",
+        "rev": "440818969ac2cbd77bfe025e884d0aa528991374",
+        "type": "github"
+      },
+      "original": {
+        "owner": "gmodena",
+        "ref": "v0.7.0",
+        "repo": "nix-flatpak",
+        "type": "github"
+      }
+    },
     "nixpkgs": {
       "locked": {
         "lastModified": 1787360063,
@@ -217,6 +233,7 @@
         "gruvbox-wallpapers": "gruvbox-wallpapers",
         "home-manager": "home-manager",
         "nezzontli-ctl": "nezzontli-ctl",
+        "nix-flatpak": "nix-flatpak",
         "nixpkgs": "nixpkgs",
         "psysonic": "psysonic",
         "slides": "slides",
@@ -231,11 +248,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1785563576,
-        "narHash": "sha256-H6NHD30duMb/sidZmUITR5dZhMopBUtsdRFG9b3CClw=",
+        "lastModified": 1788052089,
+        "narHash": "sha256-i7AUk5p2C4cP7W5BdEXOfVn8pwCtNRR+9efzvRuROII=",
         "owner": "Richard7987",
         "repo": "slide",
-        "rev": "fc21959a0c4481b5f9725702e9e24df6458a7c46",
+        "rev": "d24927d6aacc10158c3a1ce30082852c5e5ea884",
         "type": "github"
       },
       "original": {
blob - 22def91c423d6030363fced109891875278294cf
blob + e385197148325e0a765041e29781dc141b9f6663
--- hosts/ale/configuration.nix
+++ hosts/ale/configuration.nix
@@ -18,7 +18,9 @@
   #   boot.loader.grub.device = "/dev/sdX";  # disco completo, no partición
   # y quita las dos líneas de systemd-boot/efi de abajo.
   boot.loader.systemd-boot.enable = true;
-  boot.loader.systemd-boot.configurationLimit = 5;
+  # 2 = generación actual + la anterior en el menú de arranque, para poder
+  # volver si un rebuild deja el sistema roto.
+  boot.loader.systemd-boot.configurationLimit = 2;
   boot.loader.efi.canTouchEfiVariables = true;
 
   # Sin esto no hay swap en absoluto (hardware-configuration.nix trae
@@ -65,16 +67,22 @@
     "psysonic.cachix.org-1:M9cQyQ7tgvUWOQ5Pyt8ozlMoPLtOZir6MfRuTH9/VYA="
   ];
 
-  # Sin esto /nix/store solo crece: no había ningún GC programado, y
-  # boot.loader.systemd-boot.configurationLimit (ver más abajo) solo recorta
-  # el menú de arranque, no el store. Semanal + 14 días de margen para poder
-  # hacer rollback a una generación reciente si un rebuild sale mal.
+  # GC diario, conservando solo lo de los últimos 3 días -- con rebuilds ~1/día
+  # eso deja la generación actual y la anterior (las que muestra
+  # configurationLimit = 2), suficiente para hacer rollback si algo sale mal,
+  # sin dejar que el store se acumule como antes.
   nix.gc = {
     automatic = true;
-    dates = "weekly";
-    options = "--delete-older-than 14d";
+    dates = "daily";
+    options = "--delete-older-than 3d";
   };
 
+  # GC de emergencia DURANTE un build: si el espacio libre baja de min-free,
+  # Nix recolecta basura hasta llegar a max-free antes de seguir -- evita que
+  # `nixos-rebuild` reviente con "No space left on device" a mitad de camino.
+  nix.settings.min-free = 3 * 1024 * 1024 * 1024;   #  3 GiB
+  nix.settings.max-free = 15 * 1024 * 1024 * 1024;  # 15 GiB
+
   # nix-ld: provee un linker dinámico genérico (+ libs comunes) para poder
   # correr binarios prebuilt de terceros sin patchear -- sin esto, cualquier
   # binario dinámicamente enlazado que un tool descargue por su cuenta (VSCode
@@ -94,6 +102,8 @@
     ffmpeg # kinocut llama a los binarios ffmpeg/ffprobe por PATH -- mpv (modules/desktop.nix)
            # linkea libav* como librería interna, pero no expone esos binarios sueltos.
     appimage-run # ejecuta el AppImage de idevice_pair (pairing con iPhone para SideStore)
+    wineWow64Packages.stable # Wine 64/32-bit -- para correr el instalador de PASCO Capstone (PEC forense)
+    winetricks # configura dependencias/componentes dentro del prefix de Wine
   ];
 
   # usbmuxd: demonio que expone el iPhone conectado por USB como socket local