From ce1694f53d6a2465658f1bde9dacff66ffed031c Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 14 Jul 2026 19:38:49 +0530 Subject: refactor: refactored the configuration for gaming --- modules/default.nix | 1 + modules/gaming/default.nix | 47 +++++++++++++++++++++++++++++++++ modules/gaming/steam.nix | 22 ++++++++++++++++ modules/programs/default.nix | 1 - modules/programs/heroic/default.nix | 48 ---------------------------------- modules/programs/heroic/nexus-mods.nix | 36 ------------------------- modules/programs/heroic/steam.nix | 22 ---------------- users/arpit.nix | 5 +++- 8 files changed, 74 insertions(+), 108 deletions(-) create mode 100644 modules/gaming/default.nix create mode 100644 modules/gaming/steam.nix delete mode 100644 modules/programs/heroic/default.nix delete mode 100644 modules/programs/heroic/nexus-mods.nix delete mode 100644 modules/programs/heroic/steam.nix diff --git a/modules/default.nix b/modules/default.nix index 5a21b65..4cb90af 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -4,6 +4,7 @@ imports = [ ./desktop ./fonts + ./gaming ./scripts ./programs ]; diff --git a/modules/gaming/default.nix b/modules/gaming/default.nix new file mode 100644 index 0000000..f1933bd --- /dev/null +++ b/modules/gaming/default.nix @@ -0,0 +1,47 @@ +{ + config, + pkgs, + lib, + ... +}: + +# Gaming - Collection of game launchers and gaming utilities +{ + imports = [ + ./steam.nix + ]; + + options.gaming = { + enable = lib.mkEnableOption "gaming tools bundle (Heroic, winetricks, gamemode)."; + launcher = lib.mkOption { + type = lib.types.package; + default = pkgs.symlinkJoin { + name = "heroic-bundle"; + paths = with pkgs; [ + # Wrap Heroic so it dynamically appends gamemode's library folder to LD_LIBRARY_PATH + (pkgs.symlinkJoin { + name = "heroic-wrapped"; + paths = [ heroic ]; + buildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/heroic \ + --prefix LD_LIBRARY_PATH : "${pkgs.gamemode.lib}/lib:${pkgs.pkgsi686Linux.gamemode.lib}/lib" + ''; + }) + winetricks + xdg-user-dirs + gamemode + ]; + }; + description = "Bundle of game launchers (Heroic), winetricks, and core gaming utilities with GameMode support."; + }; + }; + + config = lib.mkIf config.gaming.enable { + home.packages = [ config.gaming.launcher ]; + + xdg.mimeApps.defaultApplications = { + "x-scheme-handler/heroic" = "heroic.desktop"; + }; + }; +} diff --git a/modules/gaming/steam.nix b/modules/gaming/steam.nix new file mode 100644 index 0000000..d1944d5 --- /dev/null +++ b/modules/gaming/steam.nix @@ -0,0 +1,22 @@ +{ + config, + pkgs, + lib, + ... +}: + +# Steam - game store +{ + options.gaming.steam = { + enable = lib.mkEnableOption "Enables steam."; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.steam; + description = "Package for steam app."; + }; + }; + + config = lib.mkIf config.gaming.steam.enable { + home.packages = [ config.gaming.steam.package ]; + }; +} diff --git a/modules/programs/default.nix b/modules/programs/default.nix index d6d59c6..28583d5 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -16,7 +16,6 @@ ./fzf ./git ./gpg - ./heroic ./htop ./impala ./kitty diff --git a/modules/programs/heroic/default.nix b/modules/programs/heroic/default.nix deleted file mode 100644 index aaf4b90..0000000 --- a/modules/programs/heroic/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -# Heroic Games Launcher - An elegant UI for Epic, GOG, and Amazon Games using UMU under the hood -{ - imports = [ - ./nexus-mods.nix - ./steam.nix - ]; - - options.programs.heroic = { - enable = lib.mkEnableOption "Enables Heroic Games Launcher."; - package = lib.mkOption { - type = lib.types.package; - default = pkgs.symlinkJoin { - name = "heroic-bundle"; - paths = with pkgs; [ - # Wrap Heroic so it dynamically appends gamemode's library folder to LD_LIBRARY_PATH - (pkgs.symlinkJoin { - name = "heroic-wrapped"; - paths = [ heroic ]; - buildInputs = [ pkgs.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/heroic \ - --prefix LD_LIBRARY_PATH : "${pkgs.gamemode.lib}/lib:${pkgs.pkgsi686Linux.gamemode.lib}/lib" - ''; - }) - winetricks - xdg-user-dirs - gamemode - ]; - }; - description = "Bundle of Heroic Games Launcher, winetricks, and core utilities with GameMode support."; - }; - }; - - config = lib.mkIf config.programs.heroic.enable { - home.packages = [ config.programs.heroic.package ]; - - xdg.mimeApps.defaultApplications = { - "x-scheme-handler/heroic" = "heroic.desktop"; - }; - }; -} diff --git a/modules/programs/heroic/nexus-mods.nix b/modules/programs/heroic/nexus-mods.nix deleted file mode 100644 index e459f14..0000000 --- a/modules/programs/heroic/nexus-mods.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -# Nexus Mods - for Modding Games -{ - options.programs.heroic.nexus-mods = { - enable = lib.mkEnableOption "Enables NexusMods."; - package = lib.mkOption { - type = lib.types.package; - default = pkgs.nexusmods-app-unfree; - description = "Package for NexusMods app, used to mod games."; - }; - }; - - config = lib.mkIf config.programs.heroic.nexus-mods.enable { - home.packages = [ config.programs.heroic.nexus-mods.package ]; - - xdg.mimeApps = { - enable = true; - defaultApplications = { - "x-scheme-handler/nxm" = [ "com.nexusmods.app.desktop" ]; - }; - }; - - nixpkgs.config = { - allowUnfree = true; - permittedInsecurePackages = [ - "nexusmods-app-unfree-0.21.1" - ]; - }; - }; -} diff --git a/modules/programs/heroic/steam.nix b/modules/programs/heroic/steam.nix deleted file mode 100644 index 287758f..0000000 --- a/modules/programs/heroic/steam.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -# Steam - game store -{ - options.programs.heroic.steam = { - enable = lib.mkEnableOption "Enables steam."; - package = lib.mkOption { - type = lib.types.package; - default = pkgs.steam; - description = "Package for steam app."; - }; - }; - - config = lib.mkIf config.programs.heroic.steam.enable { - home.packages = [ config.programs.heroic.steam.package ]; - }; -} diff --git a/users/arpit.nix b/users/arpit.nix index 1729588..3e51851 100644 --- a/users/arpit.nix +++ b/users/arpit.nix @@ -15,6 +15,10 @@ # Desktop environment desktop.enable = true; + # Gaming + gaming.enable = true; + gaming.steam.enable = false; + # Tools programs.aria2.enable = true; programs.bat.enable = true; @@ -32,7 +36,6 @@ programs.git.useSSH = true; programs.git.signing.signByDefault = true; programs.gpg.enable = true; - programs.heroic.enable = true; programs.htop.enable = true; programs.impala.enable = true; programs.kitty.enable = true; -- cgit v1.2.3