From 83ea72383410a999b1ee9ab09415231c9038c284 Mon Sep 17 00:00:00 2001 From: randogoth Date: Tue, 3 Feb 2026 13:07:02 +0200 Subject: [PATCH] Enable system flatpak via nix-flatpak and simplify HM --- flake.lock | 17 +++++++++++++++++ flake.nix | 1 + hosts/nanuqsaurus.nix | 2 ++ modules/system/flatpak.nix | 25 +++++++++++++++++++++++++ modules/system/packages.nix | 1 + templates/home-flake.nix | 21 ++++++++++++++------- templates/home-home.nix | 33 ++++++++++++++++++++++++++------- 7 files changed, 86 insertions(+), 14 deletions(-) create mode 100644 modules/system/flatpak.nix diff --git a/flake.lock b/flake.lock index ecce96a..f18d58e 100644 --- a/flake.lock +++ b/flake.lock @@ -147,6 +147,22 @@ "url": "https://git.lix.systems/lix-project/nixos-module" } }, + "nix-flatpak": { + "locked": { + "lastModified": 1767983141, + "narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "440818969ac2cbd77bfe025e884d0aa528991374", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "latest", + "repo": "nix-flatpak", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -210,6 +226,7 @@ "inputs": { "lanzaboote": "lanzaboote", "lix-module": "lix-module", + "nix-flatpak": "nix-flatpak", "nix-index-database": "nix-index-database", "nixpkgs": "nixpkgs" } diff --git a/flake.nix b/flake.nix index f0e6865..c856fd5 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,7 @@ url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; lix-module.url = "git+https://git.lix.systems/lix-project/nixos-module?ref=release-2.93"; lix-module.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote.url = "github:nix-community/lanzaboote"; diff --git a/hosts/nanuqsaurus.nix b/hosts/nanuqsaurus.nix index 981848e..ae20bb1 100644 --- a/hosts/nanuqsaurus.nix +++ b/hosts/nanuqsaurus.nix @@ -4,6 +4,8 @@ imports = [ inputs.lix-module.nixosModules.lixFromNixpkgs inputs.nix-index-database.nixosModules.nix-index + inputs.nix-flatpak.nixosModules.nix-flatpak + ../modules/system/flatpak.nix ../modules/system/base.nix ../modules/system/packages.nix ../modules/system/shell.nix diff --git a/modules/system/flatpak.nix b/modules/system/flatpak.nix new file mode 100644 index 0000000..b337316 --- /dev/null +++ b/modules/system/flatpak.nix @@ -0,0 +1,25 @@ +{ lib, ... }: + +{ + services.flatpak = { + enable = true; + remotes = [ + { + name = "flathub"; + location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; + } + { + name = "flathub-beta"; + location = "https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo"; + } + ]; + update.auto = { + enable = true; + onCalendar = "daily"; + }; + packages = [ + "com.github.tchx84.Flatseal" + "io.github.kolunmi.Bazaar" + ]; + }; +} diff --git a/modules/system/packages.nix b/modules/system/packages.nix index f06a2b9..ee92f71 100644 --- a/modules/system/packages.nix +++ b/modules/system/packages.nix @@ -6,6 +6,7 @@ pkgs.distrobox pkgs.distroshelf pkgs.fastfetch + pkgs.flatpak pkgs.ghostty pkgs.git pkgs.home-manager diff --git a/templates/home-flake.nix b/templates/home-flake.nix index 6d6508b..3e2e95e 100644 --- a/templates/home-flake.nix +++ b/templates/home-flake.nix @@ -7,12 +7,19 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - }; - - outputs = { nixpkgs, home-manager, ... }: { - homeConfigurations."admin" = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; - modules = [ ./home.nix ]; + nix-flatpak = { + url = "github:gmodena/nix-flatpak/?ref=latest"; + inputs.nixpkgs.follows = "nixpkgs"; }; }; -} \ No newline at end of file + + outputs = { nixpkgs, home-manager, nix-flatpak, ... }: { + homeConfigurations."admin" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + modules = [ + nix-flatpak.homeManagerModules.nix-flatpak + ./home.nix + ]; + }; + }; +} diff --git a/templates/home-home.nix b/templates/home-home.nix index eac54f8..d95b2d4 100644 --- a/templates/home-home.nix +++ b/templates/home-home.nix @@ -1,4 +1,9 @@ -{ config, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { home.username = "admin"; @@ -7,6 +12,17 @@ nixpkgs.config.allowUnfree = true; + # User-level flatpaks + services.flatpak = { + enable = true; + packages = [ ]; + update = { + auto.enable = true; + auto.onCalendar = "weekly"; + onActivation = false; + }; + }; + programs = { distrobox = { enable = true; @@ -49,27 +65,27 @@ home.packages = with pkgs; [ # decibels # default GNOME audio player - gnome-calendar # default GNOME calendar + gnome-calendar # default GNOME calendar # gnome-contacts # default GNOME contacts - firefox # Mozilla web browser + firefox # Mozilla web browser # google-chrome # web browser from Google # chromium # open source web browser from Google # brave # privacy oriented web browser # opera # fast alternative web browser # vivaldi # powerful and personal web browser - thunderbird # full-featured Mozilla e-mail client + thunderbird # full-featured Mozilla e-mail client # geary # default GNOME email client - ptyxis # container aware GNOME terminal + ptyxis # container aware GNOME terminal # alacritty # GPU accelerated terminal emulator # kitty # GPU accelerated terminal emulator - jetbrains-toolbox # fresh versions of Android Studio and other tools + jetbrains-toolbox # fresh versions of Android Studio and other tools # devpod # open-source code spaces - pods # Podman desktop application + pods # Podman desktop application ]; @@ -99,6 +115,9 @@ DEFAULT_TERMINAL = "${pkgs.ghostty}/bin/ghostty"; EDITOR = "${pkgs.micro}/bin/micro"; DBX_CONTAINER_HOME_PREFIX = "$HOME/distrobox"; + XDG_DATA_DIRS = + "${config.home.profileDirectory}/share:${config.xdg.dataHome}/applications:" + + "${config.xdg.dataHome}/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share"; }; }