Added nixos configs

This commit is contained in:
2026-02-22 19:25:39 +01:00
parent c0f19a200d
commit 8694deed28
9013 changed files with 118058 additions and 0 deletions
@@ -0,0 +1,58 @@
{ config, pkgs, lib, ... }:
let
p = import ./conf/packages.conf { inherit pkgs; };
remote = p.flatpakRemote;
apps = p.flatpakApps;
q = lib.escapeShellArg;
appArgs = lib.concatStringsSep " " (map q apps);
moduleName = "hm-flatpak";
in
{
services.flatpak.enable = true;
# Make network-online.target meaningful on NetworkManager systems
systemd.services.NetworkManager-wait-online.enable = true;
systemd.services.flatpak-sync = {
description = "Sync Flatpak remote and apps";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
# re-run when system changes (useful when app list changes)
#restartTriggers = [ config.system.build.toplevel ];
serviceConfig = {
Type = "oneshot";
TimeoutStartSec = 300;
};
script = ''
set -euo pipefail
FLATPAK=${pkgs.flatpak}/bin/flatpak
# wait for DNS (prevents your exact error)
for i in $(seq 1 30); do
if ${pkgs.getent}/bin/getent hosts dl.flathub.org >/dev/null 2>&1; then
break
fi
sleep 1
done
"$FLATPAK" remote-add --system --if-not-exists ${q remote.name} ${q remote.url} || true
installed="$("$FLATPAK" list --system --app --columns=application 2>/dev/null || true)"
for app in ${appArgs}; do
if echo "$installed" | grep -qx "$app"; then
echo "flatpak: already installed: $app"
else
echo "flatpak: installing: $app"
"$FLATPAK" install --system -y ${q remote.name} "$app"
fi
done
'';
};
home.file.".nixlog/loaded.${moduleName}-module-loaded".text = "loaded\n";
}