From 84367de7ebed5da8bfdffea5b5ebc6ec632141c9 Mon Sep 17 00:00:00 2001 From: Quentin Boyer Date: Sun, 26 Mar 2023 17:23:45 +0200 Subject: [PATCH] Mutualize gaming configuration (NixOS + Home Manager) --- flake.nix | 4 ++++ gaming/hm.nix | 35 +++++++++++++++++++++++++++++++++++ gaming/nixos.nix | 17 +++++++++++++++++ nixos/pkg.nix | 6 ------ 4 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 gaming/hm.nix create mode 100644 gaming/nixos.nix diff --git a/flake.nix b/flake.nix index 834d0f8..e23d365 100644 --- a/flake.nix +++ b/flake.nix @@ -95,6 +95,7 @@ }; personal-cli = import ./personal-cli/hm.nix; personal-gui = import ./personal-gui/hm.nix; + gaming = import ./gaming/hm.nix; }; nixosModules = { @@ -104,6 +105,7 @@ personal-cli = import ./personal-cli/nixos.nix; personal-gui = import ./personal-gui/nixos.nix; roaming = import ./roaming/nixos.nix; + gaming = import ./gaming/nixos.nix; }; overlays.x86_64-linux = final: prev: pkgList "x86_64-linux" prev.callPackage; @@ -116,6 +118,7 @@ self.nixosModules.minimal self.nixosModules.personal-cli self.nixosModules.personal-gui + self.nixosModules.gaming ({pkgs, ...}: { nixpkgs.overlays = [ inputs.nur.overlay @@ -141,6 +144,7 @@ self.hmModules.minimal self.hmModules.personal-cli self.hmModules.personal-gui + self.hmModules.gaming ./home.nix ./graphical.nix ./extra_info.nix diff --git a/gaming/hm.nix b/gaming/hm.nix new file mode 100644 index 0000000..fef0631 --- /dev/null +++ b/gaming/hm.nix @@ -0,0 +1,35 @@ +{ + pkgs, + config, + lib, + ... +}: { + home.packages = with pkgs; [ + bottles + heroic + lutris + simulationcraft + warcraftlogs + wine-ge + winetricks + wowup + xivlauncher + ]; + + home.file = { + ".config/heroic/tools/wine/wine-system" = { + source = pkgs.wine-ge; + recursive = true; + }; + }; + + home.activation = { + proton-ge = lib.hm.dag.entryAfter ["writeBoundary"] '' + target="${config.home.homeDirectory}/.steam/root/compatibilitytools.d/Proton-${pkgs.proton-ge.version}" + if ! [ -d "$target" ]; then + cp -R ${pkgs.proton-ge} "$target" + chmod -R u+w "$target" + fi + ''; + }; +} diff --git a/gaming/nixos.nix b/gaming/nixos.nix new file mode 100644 index 0000000..d8c8e66 --- /dev/null +++ b/gaming/nixos.nix @@ -0,0 +1,17 @@ +{pkgs, ...}: { + nixpkgs.config = { + allowUnfree = true; + }; + + programs.steam.enable = true; + hardware.steam-hardware.enable = true; + + security.wrappers = { + gamescope = { + owner = "root"; + group = "root"; + source = "${pkgs.gamescope}/bin/gamescope"; + capabilities = "cap_sys_nice+ep"; + }; + }; +} diff --git a/nixos/pkg.nix b/nixos/pkg.nix index 2eff932..fb6b7c7 100644 --- a/nixos/pkg.nix +++ b/nixos/pkg.nix @@ -10,10 +10,6 @@ in { # boot.extraModulePackages = [ ashmem binder ]; # boot.kernelModules = [ "ashmem_linux" "binder_linux" ]; - nixpkgs.config = { - allowUnfree = true; - }; - /* nixpkgs.config.packageOverrides = pkgs: { steam = pkgs.steam.override { @@ -21,6 +17,4 @@ in { }; }; */ - - programs.steam.enable = true; }