From 823361a99926838dd95ebee84958e306cca0e3c3 Mon Sep 17 00:00:00 2001 From: BuyMyMojo Date: Sat, 5 Apr 2025 10:40:02 +1100 Subject: [PATCH] Do a TON of organising into seperate files --- nixos/common/corectrl.nix | 18 ++++++ nixos/{ => common}/nix-ld.nix | 0 nixos/common/steam.nix | 36 ++++++++++++ nixos/common/template.nix | 12 ++++ nixos/{ => common}/universal.nix | 0 nixos/common/video-capture.nix | 15 +++++ nixos/common/virtualisation.nix | 17 ++++++ nixos/flake.lock | 4 +- nixos/flake.nix | 14 +++-- nixos/home-manager/nixos.nix | 6 ++ nixos/home-manager/nixos/packages.nix | 55 ------------------ nixos/home-manager/packages/emulation.nix | 32 +++++++++++ nixos/home-manager/packages/game-extras.nix | 32 +++++++++++ nixos/home-manager/packages/gameing.nix | 51 +++++++++++++++++ nixos/home-manager/packages/template.nix | 28 +++++++++ nixos/home-manager/packages/video-capture.nix | 42 ++++++++++++++ nixos/home-manager/packages/video-prod.nix | 32 +++++++++++ .../home-manager/packages/virtualisation.nix | 30 ++++++++++ nixos/home-manager/packages/wine.nix | 31 ++++++++++ nixos/hosts/nixos/configuration.nix | 57 +------------------ 20 files changed, 396 insertions(+), 116 deletions(-) create mode 100644 nixos/common/corectrl.nix rename nixos/{ => common}/nix-ld.nix (100%) create mode 100644 nixos/common/steam.nix create mode 100644 nixos/common/template.nix rename nixos/{ => common}/universal.nix (100%) create mode 100644 nixos/common/video-capture.nix create mode 100644 nixos/common/virtualisation.nix create mode 100644 nixos/home-manager/packages/emulation.nix create mode 100644 nixos/home-manager/packages/game-extras.nix create mode 100644 nixos/home-manager/packages/gameing.nix create mode 100644 nixos/home-manager/packages/template.nix create mode 100644 nixos/home-manager/packages/video-capture.nix create mode 100644 nixos/home-manager/packages/video-prod.nix create mode 100644 nixos/home-manager/packages/virtualisation.nix create mode 100644 nixos/home-manager/packages/wine.nix diff --git a/nixos/common/corectrl.nix b/nixos/common/corectrl.nix new file mode 100644 index 0000000..55565c1 --- /dev/null +++ b/nixos/common/corectrl.nix @@ -0,0 +1,18 @@ +{ + config, + pkgs, + unstable, + inputs, + nix-your-shell, + ... +}: + +{ + programs.corectrl = { + enable = true; + gpuOverclock = { + enable = true; + ppfeaturemask = "0xffffffff"; + }; + }; +} diff --git a/nixos/nix-ld.nix b/nixos/common/nix-ld.nix similarity index 100% rename from nixos/nix-ld.nix rename to nixos/common/nix-ld.nix diff --git a/nixos/common/steam.nix b/nixos/common/steam.nix new file mode 100644 index 0000000..14c9227 --- /dev/null +++ b/nixos/common/steam.nix @@ -0,0 +1,36 @@ +{ + config, + pkgs, + unstable, + inputs, + nix-your-shell, + ... +}: + +{ + programs.steam = { + enable = true; + package = pkgs.steam.override { + extraPkgs = ( + pkgs: + with pkgs; + with unstable; + [ + gamemode + unstable.mangohud + # additional packages... + # e.g. some games require python3 + ] + ); + }; + + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers + }; + programs.steam.gamescopeSession.enable = true; + programs.steam.protontricks.enable = true; + hardware.steam-hardware.enable = true; + programs.gamescope.enable = true; + programs.gamemode.enable = true; +} diff --git a/nixos/common/template.nix b/nixos/common/template.nix new file mode 100644 index 0000000..af89309 --- /dev/null +++ b/nixos/common/template.nix @@ -0,0 +1,12 @@ +{ + config, + pkgs, + unstable, + inputs, + nix-your-shell, + ... +}: + +{ + +} diff --git a/nixos/universal.nix b/nixos/common/universal.nix similarity index 100% rename from nixos/universal.nix rename to nixos/common/universal.nix diff --git a/nixos/common/video-capture.nix b/nixos/common/video-capture.nix new file mode 100644 index 0000000..8baa595 --- /dev/null +++ b/nixos/common/video-capture.nix @@ -0,0 +1,15 @@ +{ + config, + pkgs, + unstable, + inputs, + nix-your-shell, + ... +}: + +{ + programs.gpu-screen-recorder = { + enable = true; + package = unstable.gpu-screen-recorder; + }; +} diff --git a/nixos/common/virtualisation.nix b/nixos/common/virtualisation.nix new file mode 100644 index 0000000..296c059 --- /dev/null +++ b/nixos/common/virtualisation.nix @@ -0,0 +1,17 @@ +{ + config, + pkgs, + unstable, + inputs, + nix-your-shell, + ... +}: + +{ + virtualisation.docker.enable = true; + virtualisation.docker.storageDriver = "btrfs"; + # virtualisation.docker.rootless = { + # enable = true; + # setSocketVariable = true; + # }; +} diff --git a/nixos/flake.lock b/nixos/flake.lock index e9bf976..7b86657 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -327,11 +327,11 @@ "locked": { "lastModified": 1, "narHash": "sha256-rADqSJu492bURPi5fmvPyeG1B5bV3k2hfGR+VfHn1Ig=", - "path": "/nix/store/0xvl9qqlmfb4vr5c7kd4rd94df9qwnxp-source/nixos/programs/shadps4", + "path": "/nix/store/waqwlk8xamf15iybdy26hll1s1bj4nk6-source/nixos/programs/shadps4", "type": "path" }, "original": { - "path": "/nix/store/0xvl9qqlmfb4vr5c7kd4rd94df9qwnxp-source/nixos/programs/shadps4", + "path": "/nix/store/waqwlk8xamf15iybdy26hll1s1bj4nk6-source/nixos/programs/shadps4", "type": "path" } }, diff --git a/nixos/flake.nix b/nixos/flake.nix index c60c8e0..ad54794 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -75,8 +75,13 @@ }; modules = [ - ./universal.nix - ./nix-ld.nix + ./common/universal.nix + ./common/nix-ld.nix + ./common/steam.nix + ./common/virtualisation.nix + ./common/corectrl.nix + ./common/video-capture.nix + ./hosts/nixos/configuration.nix ./hosts/nixos/services.nix @@ -106,8 +111,9 @@ }; modules = [ - ./universal.nix - ./nix-ld.nix + ./common/universal.nix + ./common/nix-ld.nix + ./common/corectrl.nix ./hosts/low-power-laptop/configuration.nix home-manager.nixosModules.home-manager diff --git a/nixos/home-manager/nixos.nix b/nixos/home-manager/nixos.nix index 878b808..5ed8030 100644 --- a/nixos/home-manager/nixos.nix +++ b/nixos/home-manager/nixos.nix @@ -13,6 +13,12 @@ ./nixos/services.nix ./packages/gamedev.nix + ./packages/gaming.nix + ./packages/game-extras.nix + ./packages/emulation.nix + ./packages/wine.nix + ./packages/video-capture.nix + ./packages/video-prod.nix ./packages/common-cli.nix ./packages/common-desktop.nix diff --git a/nixos/home-manager/nixos/packages.nix b/nixos/home-manager/nixos/packages.nix index 656fbdb..9ba04ff 100644 --- a/nixos/home-manager/nixos/packages.nix +++ b/nixos/home-manager/nixos/packages.nix @@ -9,12 +9,6 @@ { - home.file."jdks/zulujdk8".source = pkgs.zulu8; - home.file."jdks/zulujdk17".source = pkgs.zulu17; - home.file."jdks/zulujdk23".source = pkgs.zulu23; - - home.file."bin/wine".source = unstable.wineWowPackages.waylandFull; - # The home.packages option allows you to install Nix packages into your # environment. home.packages = @@ -26,26 +20,6 @@ pkgs.monero-gui unstable.kiwix - # pkgs.protonplus - unstable.pcsx2 - pkgs.rpcs3 - unstable.ryubing - unstable.torzu - pkgs.heroic-unwrapped - unstable.ludusavi - inputs.shadps4-git.packages."x86_64-linux".default - - unstable.wineWowPackages.waylandFull - unstable.winetricks - steamtinkerlaunch - - # === Minecraft === - pkgs.prismlauncher - # pkgs.zulu8 - # pkgs.zulu17 - # pkgs.zulu23 - # === Minecraft === - # === CLI === pkgs.rrsync pkgs.poop # Compare the performance of multiple commands with a colorful terminal user interface @@ -65,23 +39,13 @@ pkgs.imagemagick # === Image CLI === - # === Game perf === - unstable.mangojuice - unstable.goverlay - # === Game perf === - # === Dev tooling === # pkgs.rustup # === Dev tooling === # pkgs.polychromatic - pkgs.lazydocker - pkgs.distrobox - pkgs.boxbuddy - unstable.gpu-screen-recorder-gtk - gsr-ui.gpu-screen-recorder-ui # # You can also create simple shell scripts directly inside your # # configuration. For example, this adds a command 'my-hello' to your @@ -91,25 +55,6 @@ # '') ]; - programs.mangohud = { - enable = true; - enableSessionWide = true; - package = unstable.mangohud; - }; - - programs.obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ - wlrobs - obs-vkcapture - obs-pipewire-audio-capture - obs-teleport - obs-source-record - obs-source-clone - obs-composite-blur - ]; - }; - # === ssh === programs.ssh.matchBlocks = { "*" = { diff --git a/nixos/home-manager/packages/emulation.nix b/nixos/home-manager/packages/emulation.nix new file mode 100644 index 0000000..9c812ce --- /dev/null +++ b/nixos/home-manager/packages/emulation.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + unstable.pcsx2 + unstable.rpcs3 + unstable.ryubing + unstable.torzu + inputs.shadps4-git.packages."x86_64-linux".default + ]; +} + diff --git a/nixos/home-manager/packages/game-extras.nix b/nixos/home-manager/packages/game-extras.nix new file mode 100644 index 0000000..93e8c44 --- /dev/null +++ b/nixos/home-manager/packages/game-extras.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + # === Factorio related === + unstable.yafc-ce + unstable.pactorio + unstable.factoriolab + # === Factorio related === + ]; +} + diff --git a/nixos/home-manager/packages/gameing.nix b/nixos/home-manager/packages/gameing.nix new file mode 100644 index 0000000..2bf5a2a --- /dev/null +++ b/nixos/home-manager/packages/gameing.nix @@ -0,0 +1,51 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + # === Java versions for MC === + home.file."jdks/zulujdk8".source = pkgs.zulu8; + home.file."jdks/zulujdk17".source = pkgs.zulu17; + home.file."jdks/zulujdk23".source = pkgs.zulu23; + # === Java versions for MC === + + home.packages = + with unstable; + with inputs; + [ + # === Minecraft related === + unstable.modrinth-app + unstable.prismlauncher + # === Minecraft related === + + unstable.steamtinkerlaunch + pkgs.heroic-unwrapped + unstable.ludusavi + + # === Game perf === + unstable.mangojuice + unstable.goverlay + # === Game perf === + ]; + + programs.mangohud = { + enable = true; + enableSessionWide = true; + package = unstable.mangohud; + }; +} diff --git a/nixos/home-manager/packages/template.nix b/nixos/home-manager/packages/template.nix new file mode 100644 index 0000000..7094843 --- /dev/null +++ b/nixos/home-manager/packages/template.nix @@ -0,0 +1,28 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + + ]; + +} diff --git a/nixos/home-manager/packages/video-capture.nix b/nixos/home-manager/packages/video-capture.nix new file mode 100644 index 0000000..11b1fe8 --- /dev/null +++ b/nixos/home-manager/packages/video-capture.nix @@ -0,0 +1,42 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + unstable.gpu-screen-recorder-gtk + gsr-ui.gpu-screen-recorder-ui + ]; + + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + obs-vkcapture + obs-pipewire-audio-capture + obs-teleport + obs-source-record + obs-source-clone + obs-composite-blur + ]; + }; + +} diff --git a/nixos/home-manager/packages/video-prod.nix b/nixos/home-manager/packages/video-prod.nix new file mode 100644 index 0000000..5a49db6 --- /dev/null +++ b/nixos/home-manager/packages/video-prod.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + unstable.svt-av1-psy + unstable.ffmpeg-full + unstable.ab-av1 + unstable.whisper-cpp-vulkan + unstable.video-compare + ]; + +} diff --git a/nixos/home-manager/packages/virtualisation.nix b/nixos/home-manager/packages/virtualisation.nix new file mode 100644 index 0000000..b98924b --- /dev/null +++ b/nixos/home-manager/packages/virtualisation.nix @@ -0,0 +1,30 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + pkgs.lazydocker + pkgs.distrobox + pkgs.boxbuddy + ]; + +} diff --git a/nixos/home-manager/packages/wine.nix b/nixos/home-manager/packages/wine.nix new file mode 100644 index 0000000..b5709b7 --- /dev/null +++ b/nixos/home-manager/packages/wine.nix @@ -0,0 +1,31 @@ +{ + config, + pkgs, + unstable, + inputs, + lib, + ... +}: + +let + withExtraPackages = + pkg: extraPackages: + pkgs.runCommand "${pkg.name}-wrapped" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' + for exe in ${lib.getBin pkg}/bin/*; do + makeWrapper $exe $out/bin/$(basename $exe) --prefix PATH : ${lib.makeBinPath extraPackages} + done + ''; +in +{ + + home.packages = + with unstable; + with inputs; + [ + home.file."bin/wine".source = unstable.wineWowPackages.waylandFull; + + unstable.wineWowPackages.waylandFull + unstable.winetricks + ]; + +} diff --git a/nixos/hosts/nixos/configuration.nix b/nixos/hosts/nixos/configuration.nix index e7280fa..f93809b 100644 --- a/nixos/hosts/nixos/configuration.nix +++ b/nixos/hosts/nixos/configuration.nix @@ -123,41 +123,6 @@ programs.thunderbird.enable = true; - - programs.gpu-screen-recorder = { - enable = true; - package = unstable.gpu-screen-recorder; - }; - - programs.corectrl = { - enable = true; - gpuOverclock = { - enable = true; - ppfeaturemask = "0xffffffff"; - }; - }; - - programs.steam = { - enable = true; - package = pkgs.steam.override { - extraPkgs = (pkgs: with pkgs; with unstable; [ - gamemode - unstable.mangohud - # additional packages... - # e.g. some games require python3 - ]); - }; - - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers - }; - programs.steam.gamescopeSession.enable = true; - programs.steam.protontricks.enable = true; - hardware.steam-hardware.enable = true; - programs.gamescope.enable = true; - programs.gamemode.enable = true; - programs.alvr.enable = true; programs.noisetorch.enable = true; @@ -180,11 +145,6 @@ amdgpu_top # unstable.mangohud - unstable.svt-av1-psy - unstable.ffmpeg-full - unstable.ab-av1 - unstable.whisper-cpp-vulkan - # unstable.openrazer-daemon # Broken, enable again in a few days? rustc @@ -197,8 +157,8 @@ gcc dotnetCorePackages.sdk_8_0_3xx (pkgs.writeShellScriptBin "python" '' - export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH - exec ${pkgs.python312}/bin/python "$@" + export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH + exec ${pkgs.python312}/bin/python "$@" '') # noisetorch # yad @@ -217,17 +177,6 @@ # enableSSHSupport = true; # }; - # List services that you want to enable: - - # Enable the OpenSSH daemon. - - virtualisation.docker.enable = true; - virtualisation.docker.storageDriver = "btrfs"; - # virtualisation.docker.rootless = { - # enable = true; - # setSocketVariable = true; - # }; - # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; @@ -247,8 +196,6 @@ ]; }; - - # environment.variables = { # };