commit 1fb8baf74f396960c307c6aa6dffc29c348bfa3d from: ale date: Sun Aug 30 06:03:06 2026 UTC Terminal más rápida, orden de librepods y warnings de eval - zsh: PF_INFO sin "pkgs" (pfetch tardaba ~0.95s contando paquetes Nix), ZSH_DISABLE_COMPFIX=true (compinit -u, -140ms) y GITSTATUS_DAEMON al binario de pkgs.gitstatus (p10k dejaba de intentar descargar gitstatusd de GitHub en cada arranque). Abrir la terminal pasa de ~2.0s a ~0.4s. - librepods.service: se ordena tras dms.service (+ Wants, RestartSec=5, start-limit 10/120s). Antes arrancaba antes de que el shell reclamara org.kde.StatusNotifierWatcher y hacía panic/SIGABRT en bucle hasta agotar el start-limit (7 core-dumps por boot). - libreoffice-fresh -> libreoffice-stable: mismo paquete (26.2.x), sin el "evaluation warning: LibreOffice upstream has changed the versioning". - x-minecraft-launcher: appimageTools.extractType2 -> extract (deprecado). commit - 1d4f429ff464a1ed38a37bc1efd2f08e817863f5 commit + 1fb8baf74f396960c307c6aa6dffc29c348bfa3d blob - 9ff9a8b93c7968c7281abd182250ad868276976d blob + 931a0da548cf67ac244885ca9de11ae03d4768c4 --- home/ale/home.nix +++ home/ale/home.nix @@ -294,6 +294,14 @@ in oh-my-zsh = { enable = true; plugins = [ "git" "sudo" ]; + # compinit -u en vez de -i: se salta compfix.zsh + compaudit (~140ms por + # arranque). En esta máquina de un solo usuario todos los dirs de + # completions son paths del store (root), así que la auditoría de + # permisos no aporta nada -- y en NixOS a veces marca el propio store + # como "inseguro" y saca un warning al abrir la terminal. + extraConfig = '' + ZSH_DISABLE_COMPFIX=true + ''; }; # fzf-tab -- menú interactivo con fuzzy-search en el Tab (en vez de la # lista plana de zsh). Va acá (programs.zsh.plugins, no oh-my-zsh.plugins @@ -338,10 +346,14 @@ in # Corre después de oh-my-zsh (mismo bloque de initContent, se concatena # con orden por defecto 1000, y el de oh-my-zsh usa mkOrder 800 -- más # bajo sale primero) para pisar cualquier prompt que oh-my-zsh hubiera - # puesto. gitstatus (paquete separado, da el binario gitstatusd) es - # necesario en PATH para el estado de git rápido -- sin él, el plugin - # de p10k intentaría bajarlo en runtime, cosa que falla en un sandbox - # de Nix sin red. + # gitstatusd: el plugin gitstatus de p10k NO mira $PATH -- solo usa + # $GITSTATUS_DAEMON o su propio usrbin/ vendorizado, que el paquete + # zsh-powerlevel10k de nixpkgs deja vacío. Sin esta variable, en cada + # arranque de zsh intenta descargar gitstatusd de GitHub (timeout de + # red -> "Restart Zsh to retry gitstatus initialization" + ~1.5s de + # demora al abrir la terminal). Apuntarla al binario del paquete + # pkgs.gitstatus lo arregla. + export GITSTATUS_DAEMON=${pkgs.gitstatus}/bin/gitstatusd source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme # Config generada por `p10k configure` -- copiada al repo @@ -420,6 +432,11 @@ in # imprimir nada antes de que el instant prompt se muestre -- si igual # sale una advertencia de "console output during initialization" (el # wizard eligió modo Verbose), es solo informativa, no rompe nada. + # + # PF_INFO sin "pkgs": contar los paquetes de Nix tarda ~0.95s (el resto + # de módulos juntos, ~25ms) y era el grueso de la demora al abrir la + # terminal. Sin ese módulo pfetch corre casi instantáneo. + export PF_INFO="ascii title os host kernel uptime memory" pfetch # herdr YA NO se auto-lanza al abrir kitty (2026-07-28, a pedido del @@ -671,9 +688,12 @@ in obsidian # notas locales en Markdown -- paquete directo de nixpkgs, sin # módulo declarativo propio (guarda su config/vaults dentro de cada # vault, no hay nada que declarar acá). - libreoffice-fresh # suite completa (Writer/Calc/Impress/Draw/Base/Math) -- - # "fresh" (26.2.x, última rama) en vez de "still" (25.8.x, LTS): sin - # motivo para preferir la rama LTS acá. + libreoffice-stable # suite completa (Writer/Calc/Impress/Draw/Base/Math). + # Antes `libreoffice-fresh`: upstream unificó el versionado "still"/"fresh" + # en uno solo y nixpkgs colapsó ambos atributos en `libreoffice-stable` + # (mismo paquete, 26.2.x). Los nombres viejos siguen andando como alias + # pero tiran `evaluation warning: LibreOffice upstream has changed the + # versioning, please use libreoffice-stable` en cada nixos-rebuild. hunspellDicts.es_MX # diccionario ortográfico español de México, para que # LibreOffice lo detecte al corregir. No hace falta wiring extra: el # wrapper real de libreoffice (pkgs/applications/office/libreoffice/ @@ -763,8 +783,19 @@ in systemd.user.services.librepods = { Unit = { Description = "LibrePods (control de AirPods) en segundo plano"; - After = [ "graphical-session-pre.target" ]; + # Antes ordenado tras graphical-session-pre.target: arrancaba antes de + # que el shell (DMS/quickshell) reclamara org.kde.StatusNotifierWatcher + # en el bus de sesión y LibrePods hace `.unwrap()` sobre ese watcher + # (src/main.rs:148) -> panic/SIGABRT en bucle hasta agotar el + # start-limit (7 core-dumps por boot). Ordenarlo tras dms.service + + # RestartSec da tiempo a que el watcher exista. + After = [ "graphical-session.target" "dms.service" ]; + Wants = [ "dms.service" ]; PartOf = [ "graphical-session.target" ]; + # el watcher puede tardar unos segundos tras dms.service; sin esto los + # reintentos rápidos agotan el rate-limit por defecto (5/10s). + StartLimitIntervalSec = 120; + StartLimitBurst = 10; }; Service = { # XLOCALEDIR explícito acá (no solo el environment.sessionVariables @@ -782,6 +813,7 @@ in Environment = "XLOCALEDIR=${pkgs.libx11}/share/X11/locale"; ExecStart = "${librepodsPkg}/bin/librepods --start-minimized"; Restart = "on-failure"; + RestartSec = 5; }; Install.WantedBy = [ "graphical-session.target" ]; }; blob - 3de6b8e0356b61ac681f27145fdf9a956047d76d blob + e11aa365eb61044f2c4abf042a6a646cb75f5e11 --- pkgs/x-minecraft-launcher.nix +++ pkgs/x-minecraft-launcher.nix @@ -10,7 +10,7 @@ # # appimageTools.wrapType2 arma el FHS env (libs de Electron/Chromium) y # extrae el binario real -- confirmado en vivo contra el contenido -# desempaquetado del AppImage (appimageTools.extractType2): +# desempaquetado del AppImage (appimageTools.extract): # - Exec real del .desktop upstream: "AppRun --no-sandbox %U" (AppRun solo # exportaba LD_LIBRARY_PATH/XDG_DATA_DIRS y ejecutaba el binario `xmcl`) # - Icono: xmcl.png en usr/share/icons/hicolor/512x512/apps/ @@ -38,7 +38,7 @@ let hash = "sha256-t1+JT9OEJSLPnoEfCLo7b7ai9aLYdAaz8gxdqLfTIUw="; }; - appimageContents = appimageTools.extractType2 { inherit pname version src; }; + appimageContents = appimageTools.extract { inherit pname version src; }; in appimageTools.wrapType2 { inherit pname version src;