diff --git a/flake.nix b/flake.nix index eaaca59..d45d3c6 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ inputs.nixpkgs.follows = "nixpkgs-unstable"; }; nix-homebrew.url = "github:zhaofengli/nix-homebrew"; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/hosts/nixos/yveltal/configuration.nix b/hosts/nixos/yveltal/configuration.nix index 3b65a02..54abd9c 100644 --- a/hosts/nixos/yveltal/configuration.nix +++ b/hosts/nixos/yveltal/configuration.nix @@ -25,6 +25,7 @@ yubikey.enable = true; tailscale.enable = true; syncthing.enable = true; + flatpak.enable = true; graphics = { enable = true; vendor = "intel"; diff --git a/modules/system/default.nix b/modules/system/default.nix index ed1b4d0..b8730e3 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -15,6 +15,7 @@ ./vpn-confinement ./syncthing ./graphics + ./flatpak ]; system.ssh.enable = lib.mkDefault true; diff --git a/modules/system/flatpak/default.nix b/modules/system/flatpak/default.nix new file mode 100644 index 0000000..c4c11d0 --- /dev/null +++ b/modules/system/flatpak/default.nix @@ -0,0 +1,19 @@ +{ + pkgs, + inputs, + config, + lib, + ... +}: let + cfg = config.system.flatpak; +in { + options.system.flatpak = { + enable = lib.mkEnableOption "enables nix-flatpak on nixos side"; + }; + + imports = [inputs.nix-flatpak.nixosModules.nix-flatpak]; + + config = lib.mkIf cfg.enable { + services.flatpak.enable = true; + }; +} diff --git a/users/blake/dots/programs/_flatpak/.template/default.nix b/users/blake/dots/programs/_flatpak/.template/default.nix new file mode 100644 index 0000000..4498f5a --- /dev/null +++ b/users/blake/dots/programs/_flatpak/.template/default.nix @@ -0,0 +1,25 @@ +{ + pkgs, + lib, + inputs, + config, + ... +}: let + program = ""; + app_id = ""; + origin = "flathub"; + cfg = config.dots.${program}; + home_dir = config.home.homeDirectory; +in { + options.dots.${program} = { + enable = lib.mkEnableOption "enables ${program}"; + }; + + config = lib.mkIf cfg.enable { + + services.flatpak.packages = [ + { appId = app_id; origin = origin;} + ]; + + }; +} diff --git a/users/blake/dots/programs/_flatpak/default.nix b/users/blake/dots/programs/_flatpak/default.nix new file mode 100644 index 0000000..5f57209 --- /dev/null +++ b/users/blake/dots/programs/_flatpak/default.nix @@ -0,0 +1,28 @@ +{ + pkgs, + inputs, + lib, + config, + ... +}: let + cfg = config.dots.flatpak; +in { + imports = [ + inputs.homeManagerModules.nix-flatpak + ./devtoys + ]; + + options.dots.flatpak = { + enable = lib.mkEnableOption "enables all programs by default"; + }; + + # brought to you by nix-flatpak, readme is below + # https://github.com/gmodena/nix-flatpak?tab=readme-ov-file + + config = lib.mkIf cfg.enable { + #services.flatpak.remotes = {}; + dots = { + devtoys.enable = lib.mkDefault true; + }; + }; +} diff --git a/users/blake/dots/programs/_flatpak/devtoys/default.nix b/users/blake/dots/programs/_flatpak/devtoys/default.nix new file mode 100644 index 0000000..015744d --- /dev/null +++ b/users/blake/dots/programs/_flatpak/devtoys/default.nix @@ -0,0 +1,25 @@ +{ + pkgs, + lib, + inputs, + config, + ... +}: let + program = "devtoys"; + app_id = "me.iepure.devtoolbox"; + origin = "flathub"; + cfg = config.dots.${program}; + home_dir = config.home.homeDirectory; +in { + options.dots.${program} = { + enable = lib.mkEnableOption "enables ${program}"; + }; + + config = lib.mkIf cfg.enable { + + services.flatpak.packages = [ + { appId = app_id; origin = origin;} + ]; + + }; +}