mirror of
https://github.com/iesfdlr/lab.git
synced 2026-06-06 01:16:49 +00:00
chore: add filter to flatpak
This commit is contained in:
@@ -6,6 +6,31 @@ let
|
||||
andaredConnectScript = pkgs.writeShellScriptBin "andared-connect" (builtins.readFile ./andared-connect.sh);
|
||||
labUpdateMonitor = pkgs.writeShellScriptBin "lab-update-monitor" (builtins.readFile ./update-monitor.sh);
|
||||
labUpdateLauncher = pkgs.writeShellScriptBin "lab-update-launcher" (builtins.readFile ./update-launcher.sh);
|
||||
# flatpak app IDs that overlap with nix-installed packages — blocked from
|
||||
# being installed via Flatpak (both CLI and Discover) using a remote filter.
|
||||
blockedFlatpakIds = [
|
||||
"org.chromium.Chromium"
|
||||
"com.google.Chrome"
|
||||
"org.mozilla.firefox"
|
||||
"com.visualstudio.code"
|
||||
"com.vscodium.codium"
|
||||
"com.jetbrains.PyCharm-Community"
|
||||
"com.jetbrains.PyCharm-Professional"
|
||||
"com.jetbrains.DataGrip"
|
||||
"org.kde.kdenlive"
|
||||
"com.getpostman.Postman"
|
||||
"org.gimp.GIMP"
|
||||
"org.freecad.FreeCAD"
|
||||
"org.freecadweb.FreeCAD"
|
||||
"cc.arduino.IDE2"
|
||||
"cc.arduino.arduinoide"
|
||||
"org.wireshark.Wireshark"
|
||||
"org.libreoffice.LibreOffice"
|
||||
];
|
||||
|
||||
flathubFilter = pkgs.writeText "lab-flathub.filter" (
|
||||
lib.concatMapStringsSep "\n" (id: "deny ${id}") blockedFlatpakIds + "\n"
|
||||
);
|
||||
labUpdateDesktop = pkgs.makeDesktopItem {
|
||||
name = "lab-updates";
|
||||
desktopName = "Actualizaciones de la distribución";
|
||||
@@ -385,7 +410,7 @@ in
|
||||
};
|
||||
|
||||
systemd.services.flatpak-flathub-user = {
|
||||
description = "configura Flathub para el usuario";
|
||||
description = "configura Flathub para el usuario con filtro de apps duplicadas";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@@ -393,7 +418,10 @@ in
|
||||
Type = "oneshot";
|
||||
User = username;
|
||||
Environment = "HOME=/home/${username}";
|
||||
ExecStart = "${pkgs.flatpak}/bin/flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo";
|
||||
};
|
||||
script = ''
|
||||
${pkgs.flatpak}/bin/flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
${pkgs.flatpak}/bin/flatpak remote-modify --user --filter=${flathubFilter} flathub
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -49,3 +49,11 @@ La configuración habilita `Flatpak` y deja `Flathub` configurado automáticamen
|
||||
- El usuario `usuario` puede abrir `Discover`, buscar una aplicación y pulsar `Instalar`.
|
||||
- Las aplicaciones instaladas así quedan fuera de NixOS declarativo y se guardan en el perfil Flatpak del propio usuario.
|
||||
- Si se quiere revisar lo instalado por esa vía, se puede usar `flatpak list --user` o abrir la pestaña de instaladas en `Discover`.
|
||||
|
||||
### protección contra duplicados
|
||||
|
||||
El sistema evita que haya aplicaciones duplicadas (una instalada por Nix y otra por Flatpak) usando un **filtro nativo de Flatpak** en el remoto de Flathub:
|
||||
|
||||
- Las apps que ya se instalan por Nix (Chromium, Firefox, VS Code, GIMP, LibreOffice, etc.) están bloqueadas a nivel de catálogo de Flathub. No aparecen en Discover ni se pueden instalar por CLI.
|
||||
- El filtro se aplica en cada arranque mediante `flatpak remote-modify --filter=...`, así que se actualiza automáticamente cuando cambia `configuration.nix`.
|
||||
- Para añadir o quitar apps bloqueadas, editar la lista `blockedFlatpakIds` en `configuration.nix`.
|
||||
|
||||
Reference in New Issue
Block a user