diff --git a/hosts/desktop1/configuration.nix b/hosts/desktop1/configuration.nix index 36c010a..64ff46a 100644 --- a/hosts/desktop1/configuration.nix +++ b/hosts/desktop1/configuration.nix @@ -41,18 +41,4 @@ environment.systemPackages = with pkgs; [ ]; - - services.flatpak = { - enable = true; - update.onActivation = true; - packages = [ - "com.heroicgameslauncher.hgl" - "com.github.tchx84.Flatseal" - "com.obsproject.Studio" - "com.usebottles.bottles" - "it.mijorus.gearlever" - "com.google.AndroidStudio" - ]; - }; - } diff --git a/hosts/laptop1/configuration.nix b/hosts/laptop1/configuration.nix index 11dc219..0a15d57 100644 --- a/hosts/laptop1/configuration.nix +++ b/hosts/laptop1/configuration.nix @@ -31,15 +31,4 @@ environment.systemPackages = with pkgs; [ ]; - services.flatpak = { - enable = true; - update.onActivation = true; - packages = [ - "com.github.tchx84.Flatseal" - "com.usebottles.bottles" - "it.mijorus.gearlever" - "com.google.AndroidStudio" - ]; - }; - } diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 53a4a78..5880a16 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -17,6 +17,7 @@ ./displaymanager ./vpn ./utilities + ./flatpak ]; # Timzone and locales (same for all machines so I put it here) diff --git a/modules/nix/flatpak/default.nix b/modules/nix/flatpak/default.nix new file mode 100644 index 0000000..d1e42d1 --- /dev/null +++ b/modules/nix/flatpak/default.nix @@ -0,0 +1,6 @@ +{ lib, config, pkgs, ... }: +{ + imports = [ + ./flatpak.nix + ]; +} diff --git a/modules/nix/flatpak/flatpak.nix b/modules/nix/flatpak/flatpak.nix new file mode 100644 index 0000000..d35d73a --- /dev/null +++ b/modules/nix/flatpak/flatpak.nix @@ -0,0 +1,73 @@ +{ lib, config, pkgs, ... }: +let + inherit (lib) mkIf mkOption types; + + gaming = [ + "com.heroicgameslauncher.hgl" + ]; + + dev = [ + "com.google.AndroidStudio" + ]; + + utils = [ + "com.usebottles.bottles" + "com.github.tchx84.Flatseal" + "it.mijorus.gearlever" + ]; + + media = [ + "com.obsproject.Studio" + ]; + + flatpaks = + (if config.smayzy.flatpak.gaming.enable then gaming else []) + ++ (if config.smayzy.flatpak.dev.enable then dev else []) + ++ (if config.smayzy.flatpak.utils.enable then utils else []) + ++ (if config.smayzy.flatpak.media.enable then media else []); +in +{ + options.smayzy.flatpak = mkOption { + type = types.submodule { + options = { + enable = mkOption { + type = types.bool; + default = false; + description = "enable flatpak support"; + }; + + gaming.enable = mkOption { + type = types.bool; + default = false; + description = "enable gaming flatpaks"; + }; + + dev.enable = mkOption { + type = types.bool; + default = false; + description = "enable dev flatpaks"; + }; + + utils.enable = mkOption { + type = types.bool; + default = true; + description = "enable utils flatpak"; + }; + + media.enable = mkOption { + type = types.bool; + default = false; + description = "enable media flatpak"; + }; + }; + }; + }; + + config = mkIf config.smayzy.flatpak.enable { + services.flatpak = { + enable = true; + update.onActivation = true; + packages = flatpaks; + }; + }; +} diff --git a/modules/nix/groups/desktop.nix b/modules/nix/groups/desktop.nix index 1167d03..113bc53 100644 --- a/modules/nix/groups/desktop.nix +++ b/modules/nix/groups/desktop.nix @@ -33,6 +33,12 @@ in blender.enable = true; inkscape.enable = true; komikku.enable = true; + flatpak = { + enable = true; + media = true; + dev = true; + gaming = true; + }; }; }; } diff --git a/modules/nix/groups/laptop.nix b/modules/nix/groups/laptop.nix index 1b10429..e5024d1 100644 --- a/modules/nix/groups/laptop.nix +++ b/modules/nix/groups/laptop.nix @@ -32,6 +32,11 @@ in thunderbird.enable = true; inkscape.enable = true; komikku.enable = true; + flatpak = { + enable = true; + dev.enable = true; + media.enable = true; + }; }; services.logind.lidSwitch = "ignore"; };