Add declarative Flatpak support via nix-flatpak

Integrates the nix-flatpak module for declarative Flatpak management. Enables Flatpak system-wide, configures Home Manager to manage Flatpak apps, and adds an example Flatpak package with automatic weekly updates.
This commit is contained in:
2025-10-26 22:58:15 +00:00
parent 8ce8da5361
commit 7be16e5072
3 changed files with 25 additions and 1 deletions

View File

@@ -10,6 +10,9 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Declarative Flatpak management
nix-flatpak.url = "github:gmodena/nix-flatpak";
# Optional: Hyprland (if you want a tiling Wayland compositor) # Optional: Hyprland (if you want a tiling Wayland compositor)
# hyprland.url = "github:hyprwm/Hyprland"; # hyprland.url = "github:hyprwm/Hyprland";
@@ -17,7 +20,7 @@
# nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; # nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
}; };
outputs = { self, nixpkgs, home-manager, ... }@inputs: { outputs = { self, nixpkgs, home-manager, nix-flatpak, ... }@inputs: {
# NixOS configuration for your hostname(s) # NixOS configuration for your hostname(s)
nixosConfigurations = { nixosConfigurations = {
# Desktop PC configuration # Desktop PC configuration
@@ -43,6 +46,9 @@
# User configuration # User configuration
home-manager.users.zeph = import ./home/home.nix; home-manager.users.zeph = import ./home/home.nix;
# Declarative Flatpak
home-manager.sharedModules = [ nix-flatpak.homeManagerModules.nix-flatpak ];
} }
]; ];
}; };
@@ -70,6 +76,9 @@
# User configuration # User configuration
home-manager.users.zeph = import ./home/home.nix; home-manager.users.zeph = import ./home/home.nix;
# Declarative Flatpak
home-manager.sharedModules = [ nix-flatpak.homeManagerModules.nix-flatpak ];
} }
]; ];
}; };

View File

@@ -154,6 +154,18 @@
# platformTheme.name = "gtk"; # platformTheme.name = "gtk";
# }; # };
# Declarative Flatpak packages
services.flatpak = {
packages = [
"io.github.zen_browser.zen"
# Add more Flatpak apps here
];
update.auto = {
enable = true;
onCalendar = "weekly";
};
};
# Let Home Manager manage itself # Let Home Manager manage itself
programs.home-manager.enable = true; programs.home-manager.enable = true;

View File

@@ -10,6 +10,9 @@
# Networking # Networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Enable Flatpak
services.flatpak.enable = true;
# Timezone and locale # Timezone and locale
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";