From 8752fb747f7cf5818b4020225d9a3c1bf20b5524 Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sat, 7 Jan 2023 22:13:50 +0000 Subject: [PATCH] Add gaming apps --- hosts/atlas/default.nix | 4 ++- modules/default.nix | 5 +++- modules/desktop/{ => browsers}/firefox.nix | 4 +-- modules/desktop/gaming/bottles.nix | 16 ++++++++++ modules/desktop/gaming/emulators.nix | 34 ++++++++++++++++++++++ modules/desktop/gaming/steam.nix | 16 ++++++++++ 6 files changed, 75 insertions(+), 4 deletions(-) rename modules/desktop/{ => browsers}/firefox.nix (65%) create mode 100644 modules/desktop/gaming/bottles.nix create mode 100644 modules/desktop/gaming/emulators.nix create mode 100644 modules/desktop/gaming/steam.nix diff --git a/hosts/atlas/default.nix b/hosts/atlas/default.nix index a57f1b3..504dbba 100644 --- a/hosts/atlas/default.nix +++ b/hosts/atlas/default.nix @@ -25,7 +25,9 @@ with lib.my; modules = { desktop = { - firefox.enable = true; + browsers = { + firefox.enable = true; + }; }; dev = { node.enable = true; diff --git a/modules/default.nix b/modules/default.nix index af6da19..a4203d7 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,8 +1,11 @@ { imports = [ ./options.nix - ./desktop/firefox.nix ./desktop/gnome.nix + ./desktop/browsers/firefox.nix + ./desktop/gaming/bottles.nix + ./desktop/gaming/emulators.nix + ./desktop/gaming/steam.nix ./dev/cc.nix ./dev/java.nix ./dev/lua.nix diff --git a/modules/desktop/firefox.nix b/modules/desktop/browsers/firefox.nix similarity index 65% rename from modules/desktop/firefox.nix rename to modules/desktop/browsers/firefox.nix index b79e909..25edfb5 100644 --- a/modules/desktop/firefox.nix +++ b/modules/desktop/browsers/firefox.nix @@ -2,9 +2,9 @@ with lib; with lib.my; -let cfg = config.modules.desktop.firefox; +let cfg = config.modules.desktop.browsers.firefox; in { - options.modules.desktop.firefox = { + options.modules.desktop.browsers.firefox = { enable = mkBoolOpt false; }; diff --git a/modules/desktop/gaming/bottles.nix b/modules/desktop/gaming/bottles.nix new file mode 100644 index 0000000..66b6f96 --- /dev/null +++ b/modules/desktop/gaming/bottles.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: + +with lib; +with lib.my; +let cfg = config.modules.desktop.gaming.bottles; +in { + options.modules.desktop.gaming.bottles = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + bottles + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/gaming/emulators.nix b/modules/desktop/gaming/emulators.nix new file mode 100644 index 0000000..d06a89a --- /dev/null +++ b/modules/desktop/gaming/emulators.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: + +with lib; +with lib.my; +let cfg = config.modules.desktop.gaming.emulators; +in { + options.modules.desktop.gaming.emulators = { + ds.enable = mkBoolOpt false; + gb.enable = mkBoolOpt false; + gba.enable = mkBoolOpt false; + gamecube.enable = mkBoolOpt false; + ps2.enable = mkBoolOpt false; + ps3.enable = mkBoolOpt false; + psp.enable = mkBoolOpt false; + snes.enable = mkBoolOpt false; + wii.enable = mkBoolOpt false; + }; + + config = { + user.packages = with pkgs; [ + (mkIf cfg.ps2.enable pcsx2) + (mkIf cfg.ps3.enable rpcs3) + (mkIf cfg.psp.enable ppsspp) + (mkIf cfg.ds.enable desmume) + (mkIf (cfg.gba.enable || + cfg.gb.enable || + cfg.snes.enable) + higan) + (mkIf (cfg.wii.enable || + cfg.gamecube.enable) + dolphin-emu) + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/gaming/steam.nix b/modules/desktop/gaming/steam.nix new file mode 100644 index 0000000..262089a --- /dev/null +++ b/modules/desktop/gaming/steam.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: + +with lib; +with lib.my; +let cfg = config.modules.desktop.gaming.steam; +in { + options.modules.desktop.gaming.steam = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + programs.steam.enable = true; + + systemd.extraConfig = "DefaultLimitNOFILE=1048576"; + }; +} \ No newline at end of file