commit 0d76a0ad596a70faaf9a0a288ba8742b768f061f from: ale date: Mon Sep 21 00:46:21 2026 UTC Limpia agentes y paquetes no usados: quita yazi, weechat, XMCL, pi y claude-code commit - e021a8e44e6ab8d64b847fb7f42e55e0b64749c7 commit + 0d76a0ad596a70faaf9a0a288ba8742b768f061f blob - 86296552169f7686fa5fa96087ca45291078f3a6 blob + eff6ca231cde301687079063307e6d48d9a7148c --- README.md +++ README.md @@ -28,7 +28,6 @@ home/ale/ pkgs/ librepods.nix # LibrePods (control AirPods) compilado de fuente clamui.nix # GUI de ClamAV - x-minecraft-launcher.nix ``` ## Stack blob - b19c762c63942d472a4416a5f12c401687b3d73c blob + c7702485fff3a7585a950bba0a8156d5e61063f7 --- home/ale/home.nix +++ home/ale/home.nix @@ -5,6 +5,7 @@ let # systemd.user.service de más abajo (autostart en segundo plano) -- un solo # callPackage evita declarar la misma derivación dos veces. librepodsPkg = pkgs.callPackage ../../pkgs/librepods.nix { }; + in { imports = [ @@ -636,12 +637,6 @@ in unzip # usado por varios plugins de nvim al descomprimir descargas (ej. releases de GitHub) gcc # fallback nativo de blink.cmp si no baja su binario prebuilt gnumake # ídem - bubblewrap # bwrap -- requerido por claude-science para su sandbox - # (sin esto corre unsandboxed con --dangerously-no-sandbox, full - # read/write de $HOME y red sin restricción) - socat # requerido también por claude-science: puentea la red del - # sandbox de Linux (bwrap aísla la red; socat es el bridge) - # --- LSPs/formatters/linters de los extras de LazyVim (ver lazyvim.json) --- # Mason (el instalador default de LazyVim) no funciona en NixOS: no # puede correr binarios bajados de internet (store inmutable, sin @@ -696,13 +691,9 @@ in meslo-lgs-nf # Nerd Font que recomienda p10k para sus glifos/iconos pfetch # info del sistema al abrir terminal (ver programs.zsh.initContent) fzf # binario que fzf-tab invoca para el menú interactivo del Tab (ver programs.zsh.plugins) - weechat # cliente IRC de terminal -- sin módulo declarativo en home-manager - # (no hay `programs.weechat`, se confirmó buscando en el source real del - # input), así que la config de plugins/scripts queda a mano dentro de - # weechat (`/script install ...`), no versionada en este repo. btop # monitor de recursos en terminal. DMS no trae template propio para # btop (a diferencia de Noctalia, que sí lo tenía) -- queda sin tema - # Gruvbox automático, igual que yazi (ver modules/desktop.nix). + # Gruvbox automático. 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á). @@ -837,4 +828,5 @@ in }; Install.WantedBy = [ "graphical-session.target" ]; }; + } blob - 0f72e625e0ab38460ef84da42a24aef86b191db6 blob + 530d7e80ab5e6aed2822aa26250be31bc977fbc5 --- hosts/ale/configuration.nix +++ hosts/ale/configuration.nix @@ -116,7 +116,6 @@ vim curl wget - claude-code clamav # da el binario `clamscan` que invoca clamui (pkgs/clamui.nix, instalado vía home.nix) uv # da `uvx` -- lanza el server MCP de kinocut (pip install kinocut aislado, sin venv manual) ffmpeg # kinocut llama a los binarios ffmpeg/ffprobe por PATH -- mpv (modules/desktop.nix) blob - 23eaef7cb8b19e855d3c15b275f9a8bd7693615e blob + 6edcd9937e52ef25f52ae7e8f751fd654fa6a6c9 --- modules/desktop.nix +++ modules/desktop.nix @@ -237,9 +237,6 @@ nautilus # gestor de archivos GTK4 -- hereda el theme (matugen) de DMS solo # (escribe gtk-4.0/gtk.css directo, confirmado en core/internal/ # matugen/matugen.go), sin necesidad de config aparte - yazi # gestor de archivos TUI. DMS no trae template propio para yazi - # (a diferencia de Noctalia, que sí lo tenía vía community_ids) -- - # queda sin tema Gruvbox automático hasta que exista un template. kdePackages.breeze # estilo Qt que renderiza la paleta de KDE kdePackages.plasma-integration # plugin de QPA platform theme (KDEPlasmaPlatformTheme6.so) # que aplica kdeglobals a cualquier app Qt -- sin esto blob - c2649c35b9baee9eee1c887ee782759a7e27b0b0 blob + 2f7a4a0596a217276120ff778459c8c6915a59af --- modules/graphics.nix +++ modules/graphics.nix @@ -122,12 +122,5 @@ # más espacio en disco. # heroic - # Minecraft Java Edition. Reemplaza a prismlauncher (que sí estaba en - # nixpkgs) por pedido explícito -- x-minecraft-launcher no tiene paquete - # oficial en nixpkgs ni flake comunitario (confirmado buscando), así que - # se empaqueta acá mismo desde el AppImage oficial. Ver - # pkgs/x-minecraft-launcher.nix para el porqué del approach (AppImage - # envuelto, no build desde fuente) y qué se confirmó en vivo. - (callPackage ../pkgs/x-minecraft-launcher.nix { }) ]; } blob - e11aa365eb61044f2c4abf042a6a646cb75f5e11 (mode 644) blob + /dev/null --- pkgs/x-minecraft-launcher.nix +++ /dev/null @@ -1,61 +0,0 @@ -# X Minecraft Launcher (XMCL, voxelum/x-minecraft-launcher) empaquetado desde -# el AppImage oficial de GitHub Releases. -# -# NO se compila de fuente (a diferencia de librepods.nix): es un monorepo -# Electron + Vue + pnpm workspaces con módulos nativos -- una build Nix desde -# cero sería un esfuerzo comparable a empaquetarlo para nixpkgs mismo, y no -# hay flake/derivación comunitaria existente (confirmado buscando). El -# AppImage x64 sí es 100% reproducible acá: fetchurl fija versión + hash, no -# es un "bajar a mano" fuera de Nix. -# -# 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.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/ -# - `--no-sandbox` es necesario porque el `chrome-sandbox` setuid que trae -# el AppImage no tiene los permisos correctos fuera de su entorno -# original -- mismo motivo por el que el .desktop upstream ya lo pasaba. -# -# Build + smoke test verificados en vivo en esta máquina: `nix build` con -# esta derivación compila, y `x-minecraft-launcher --version` corre y -# devuelve "0.65.1" sin abrir ventana. -# -# Actualizar versión: bajar el nuevo tag de -# https://github.com/voxelum/x-minecraft-launcher/releases, actualizar -# `version` y recalcular `hash` con -# `nix-prefetch-url --type sha256 ` + `nix hash convert -# --hash-algo sha256 --to sri `. -{ lib, appimageTools, fetchurl }: - -let - pname = "x-minecraft-launcher"; - version = "0.65.1"; - - src = fetchurl { - url = "https://github.com/voxelum/x-minecraft-launcher/releases/download/v${version}/xmcl-${version}-x86_64.AppImage"; - hash = "sha256-t1+JT9OEJSLPnoEfCLo7b7ai9aLYdAaz8gxdqLfTIUw="; - }; - - appimageContents = appimageTools.extract { inherit pname version src; }; -in -appimageTools.wrapType2 { - inherit pname version src; - - extraInstallCommands = '' - install -Dm444 ${appimageContents}/xmcl.desktop -t $out/share/applications - install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/xmcl.png -t $out/share/icons/hicolor/512x512/apps - substituteInPlace $out/share/applications/xmcl.desktop \ - --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=${pname} --no-sandbox %U' - ''; - - meta = with lib; { - description = "Fully featured Minecraft launcher (mods, modpacks, CurseForge/Modrinth integration)"; - homepage = "https://github.com/voxelum/x-minecraft-launcher"; - license = licenses.mit; # confirmado en el LICENSE real del repo - platforms = [ "x86_64-linux" ]; - mainProgram = "x-minecraft-launcher"; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - }; -}