diff --git a/home/asakiyuki/configuration.nix b/home/asakiyuki/configuration.nix index 4dc6fbf..02f850c 100644 --- a/home/asakiyuki/configuration.nix +++ b/home/asakiyuki/configuration.nix @@ -32,6 +32,7 @@ in ./modules/env.nix ../../modules/features/home/theme.nix + ../../options/home/default.nix inputs.nixvim.homeModules.nixvim inputs.nixcord.homeModules.nixcord @@ -48,5 +49,27 @@ in }) { pkgs = pkgs; }; }; + + programs = { + catppuccin.enable = true; + antigravity.enable = true; + hyprshot.enable = true; + prismlauncher.enable = true; + proton-ge.enable = true; + vlc.enable = true; + gimp.enable = true; + libreoffice.enable = true; + lutris.enable = true; + osu.enable = true; + lmstudio.enable = true; + blender.enable = true; + xprop.enable = true; + bluetuith.enable = true; + pavucontrol.enable = true; + nwg-look.enable = true; + proton-apps.enable = true; + hytale.enable = true; + cider.enable = true; + }; }; } diff --git a/modules/features/home/packages.nix b/modules/features/home/packages.nix index b44cf9d..2a1de84 100644 --- a/modules/features/home/packages.nix +++ b/modules/features/home/packages.nix @@ -1,48 +1,39 @@ { pkgs, lib, + config, osconfig, inputs, ... }: -let - custom-catppuccin-gtk = pkgs.catppuccin-gtk.override { - variant = "mocha"; - accents = [ "sapphire" ]; - size = "compact"; - }; - - custom-catppuccin-kde = (pkgs.catppuccin-kde.override { - flavour = [ "mocha" ]; - accents = [ "sapphire" ]; - }); -in { - home.packages = with pkgs; [ - custom-catppuccin-gtk + home.packages = [ + (lib.mkIf config.programs.catppuccin.enable config.programs.catppuccin.package) - hyprshot - antigravity - prismlauncher - protonup-qt - protonplus - vlc - gimp - libreoffice-qt-fresh - lutris - osu-lazer-bin - lmstudio - blender - xprop + (lib.mkIf config.programs.hyprshot.enable config.programs.hyprshot.package) + (lib.mkIf config.programs.antigravity.enable config.programs.antigravity.package) + (lib.mkIf config.programs.prismlauncher.enable config.programs.prismlauncher.package) + (lib.mkIf config.programs.proton-ge.enable config.programs.proton-ge.protonup-qt) + (lib.mkIf config.programs.proton-ge.enable config.programs.proton-ge.protonplus) + (lib.mkIf config.programs.vlc.enable config.programs.vlc.package) + (lib.mkIf config.programs.gimp.enable config.programs.gimp.package) + (lib.mkIf config.programs.libreoffice.enable config.programs.libreoffice.package) + (lib.mkIf config.programs.lutris.enable config.programs.lutris.package) + (lib.mkIf config.programs.osu.enable config.programs.osu.package) + (lib.mkIf config.programs.lmstudio.enable config.programs.lmstudio.package) + (lib.mkIf config.programs.blender.enable config.programs.blender.package) + (lib.mkIf config.programs.xprop.enable config.programs.xprop.package) - bluetuith - lxqt.pavucontrol-qt - nwg-look + (lib.mkIf config.programs.bluetuith.enable config.programs.bluetuith.package) + (lib.mkIf config.programs.pavucontrol.enable config.programs.pavucontrol.package) + (lib.mkIf config.programs.nwg-look.enable config.programs.nwg-look.package) - proton-pass - proton-authenticator + (lib.mkIf config.programs.proton-apps.enable config.programs.proton-apps.pass) + (lib.mkIf config.programs.proton-apps.enable config.programs.proton-apps.authenticator) - inputs.hytale-launcher.packages.${system}.default - (lib.mkIf osconfig.device.programs.cider-2.enable cider-2) + (lib.mkIf config.programs.hytale.enable config.programs.hytale.package) + (lib.mkIf ( + config.programs.cider.enable && osconfig.device.programs.cider-2.enable + ) config.programs.cider.package) ]; } diff --git a/options/home/default.nix b/options/home/default.nix new file mode 100644 index 0000000..6e358ab --- /dev/null +++ b/options/home/default.nix @@ -0,0 +1,5 @@ +{ ... }: +{ + imports = [ ./programs.nix ]; + options = { }; +} diff --git a/options/home/programs.nix b/options/home/programs.nix new file mode 100644 index 0000000..7d56568 --- /dev/null +++ b/options/home/programs.nix @@ -0,0 +1,108 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: +{ + options.programs = { + catppuccin = { + enable = lib.mkEnableOption "catppuccin"; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.catppuccin-gtk.override { + variant = "mocha"; + accents = [ "sapphire" ]; + size = "compact"; + }; + description = "Catppuccin GTK package"; + }; + kde = lib.mkOption { + type = lib.types.package; + default = pkgs.catppuccin-kde.override { + flavour = [ "mocha" ]; + accents = [ "sapphire" ]; + }; + description = "Catppuccin KDE package"; + }; + }; + antigravity = { + enable = lib.mkEnableOption "antigravity"; + package = lib.mkPackageOption pkgs "antigravity" { }; + }; + hyprshot = { + enable = lib.mkEnableOption "hyprshot"; + package = lib.mkPackageOption pkgs "hyprshot" { }; + }; + prismlauncher = { + enable = lib.mkEnableOption "prismlauncher"; + package = lib.mkPackageOption pkgs "prismlauncher" { }; + }; + proton-ge = { + enable = lib.mkEnableOption "proton-ge utils"; + protonup-qt = lib.mkPackageOption pkgs "protonup-qt" { }; + protonplus = lib.mkPackageOption pkgs "protonplus" { }; + }; + vlc = { + enable = lib.mkEnableOption "vlc"; + package = lib.mkPackageOption pkgs "vlc" { }; + }; + gimp = { + enable = lib.mkEnableOption "gimp"; + package = lib.mkPackageOption pkgs "gimp" { }; + }; + libreoffice = { + enable = lib.mkEnableOption "libreoffice"; + package = lib.mkPackageOption pkgs "libreoffice-qt-fresh" { }; + }; + lutris = { + enable = lib.mkEnableOption "lutris"; + package = lib.mkPackageOption pkgs "lutris" { }; + }; + osu = { + enable = lib.mkEnableOption "osu-lazer"; + package = lib.mkPackageOption pkgs "osu-lazer-bin" { }; + }; + lmstudio = { + enable = lib.mkEnableOption "lmstudio"; + package = lib.mkPackageOption pkgs "lmstudio" { }; + }; + blender = { + enable = lib.mkEnableOption "blender"; + package = lib.mkPackageOption pkgs "blender" { }; + }; + xprop = { + enable = lib.mkEnableOption "xprop"; + package = lib.mkPackageOption pkgs "xprop" { }; + }; + bluetuith = { + enable = lib.mkEnableOption "bluetuith"; + package = lib.mkPackageOption pkgs "bluetuith" { }; + }; + pavucontrol = { + enable = lib.mkEnableOption "pavucontrol-qt"; + package = lib.mkPackageOption pkgs "lxqt" { extraPrefixCode = ".pavucontrol-qt"; }; + }; + nwg-look = { + enable = lib.mkEnableOption "nwg-look"; + package = lib.mkPackageOption pkgs "nwg-look" { }; + }; + proton-apps = { + enable = lib.mkEnableOption "proton-pass and proton-authenticator"; + pass = lib.mkPackageOption pkgs "proton-pass" { }; + authenticator = lib.mkPackageOption pkgs "proton-authenticator" { }; + }; + hytale = { + enable = lib.mkEnableOption "hytale-launcher"; + package = lib.mkOption { + type = lib.types.package; + default = inputs.hytale-launcher.packages.${pkgs.system}.default; + }; + }; + cider = { + enable = lib.mkEnableOption "cider-2"; + package = lib.mkPackageOption pkgs "cider-2" { }; + }; + }; +} diff --git a/options/server/default.nix b/options/server/default.nix new file mode 100644 index 0000000..95fbfff --- /dev/null +++ b/options/server/default.nix @@ -0,0 +1,5 @@ +{ ... }: +{ + imports = [ ../common/default.nix ]; + options.device = { }; +}