From 321cb97502516ce3edab069861f8d4cfcf050fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Thu, 20 Feb 2025 22:01:03 -0300 Subject: [PATCH] wip refactor --- flake.nix | 32 +++++++++++-------- hosts/monolith/default.nix | 2 ++ settings/default.nix | 14 ++++++++- system/configuration.nix | 2 +- system/gamemode.nix | 27 ---------------- system/gaming.nix | 63 ++++++++++++++++++++++++++++++++++++++ system/steam.nix | 36 ---------------------- user/gaming.nix | 9 ++++++ user/helix.nix | 6 +++- user/home.nix | 1 + 10 files changed, 113 insertions(+), 79 deletions(-) delete mode 100644 system/gamemode.nix create mode 100644 system/gaming.nix delete mode 100644 system/steam.nix create mode 100644 user/gaming.nix diff --git a/flake.nix b/flake.nix index 49c3192..0126f65 100644 --- a/flake.nix +++ b/flake.nix @@ -102,17 +102,25 @@ inputs.agenix.nixosModules.default inputs.home-manager.nixosModules.home-manager inputs.disko.nixosModules.disko - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.lelgenio = import ./user/home.nix; - home-manager.backupFileExtension = "bkp"; - # Optionally, use home-manager.extraSpecialArgs to pass - # arguments to home.nix - home-manager.extraSpecialArgs = { - inherit inputs; - }; - } + ( + { config, ... }: + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.lelgenio = { + my = config.my; + imports = [ + ./user/home.nix + ]; + }; + home-manager.backupFileExtension = "bkp"; + # Optionally, use home-manager.extraSpecialArgs to pass + # arguments to home.nix + home-manager.extraSpecialArgs = { + inherit inputs; + }; + } + ) ] ++ lib.optional (desktop == "gnome") ./system/gnome.nix ++ lib.optional (desktop == "kde") ./system/kde.nix; @@ -133,7 +141,6 @@ ./system/monolith-gitlab-runner.nix ./system/monolith-forgejo-runner.nix ./system/nix-serve.nix - ./system/steam.nix ] ++ common_modules; }; double-rainbow = lib.nixosSystem { @@ -151,7 +158,6 @@ ++ [ { packages.media-packages.enable = lib.mkOverride 0 false; - programs.steam.enable = lib.mkOverride 0 false; services.flatpak.enable = lib.mkOverride 0 false; } ]; diff --git a/hosts/monolith/default.nix b/hosts/monolith/default.nix index c3764fd..410300e 100644 --- a/hosts/monolith/default.nix +++ b/hosts/monolith/default.nix @@ -41,6 +41,8 @@ in package = pkgs.unstable.opentabletdriver; }; + my.gaming.enable = true; + boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ]; boot.initrd.kernelModules = [ "amdgpu" ]; diff --git a/settings/default.nix b/settings/default.nix index 2a2ca08..b8c17b3 100644 --- a/settings/default.nix +++ b/settings/default.nix @@ -1,6 +1,18 @@ { lib, ... }: { options = { - my = lib.mkOption { }; + my = { + themes = lib.mkOption { }; + key = lib.mkOption { }; + theme = lib.mkOption { }; + accent = lib.mkOption { }; + font = lib.mkOption { }; + username = lib.mkOption { }; + mail = lib.mkOption { }; + dmenu = lib.mkOption { }; + desktop = lib.mkOption { }; + browser = lib.mkOption { }; + editor = lib.mkOption { }; + }; }; } diff --git a/system/configuration.nix b/system/configuration.nix index 9b4bed3..ff3e57e 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -9,7 +9,7 @@ }: { imports = [ - ./gamemode.nix + ./gaming.nix ./cachix.nix ./media-packages.nix ./boot.nix diff --git a/system/gamemode.nix b/system/gamemode.nix deleted file mode 100644 index 92207cd..0000000 --- a/system/gamemode.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ - programs.gamemode.enable = true; - programs.gamemode.enableRenice = true; - programs.gamemode.settings = { - general = { - renice = 10; - }; - - # Warning: GPU optimisations have the potential to damage hardware - gpu = { - apply_gpu_optimisations = "accept-responsibility"; - gpu_device = 0; - amd_performance_level = "high"; - }; - - custom = { - start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; - end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; - }; - }; -} diff --git a/system/gaming.nix b/system/gaming.nix new file mode 100644 index 0000000..e32c640 --- /dev/null +++ b/system/gaming.nix @@ -0,0 +1,63 @@ +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ + options.my.gaming.enable = lib.mkEnableOption { }; + + config = lib.mkIf config.my.gaming.enable { + programs.steam.enable = true; + programs.steam.extraPackages = + config.fonts.packages + ++ (with pkgs; [ + capitaine-cursors + bibata-cursors + mangohud + xdg-user-dirs + gamescope + + # gamescope compatibility?? + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]); + + environment.systemPackages = with pkgs; [ + protontricks + bottles + inputs.dzgui-nix.packages.${pkgs.system}.default + ]; + + programs.gamemode = { + enable = true; + enableRenice = true; + settings = { + general = { + renice = 10; + }; + + # Warning: GPU optimisations have the potential to damage hardware + gpu = { + apply_gpu_optimisations = "accept-responsibility"; + gpu_device = 0; + amd_performance_level = "high"; + }; + + custom = { + start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; + end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; + }; + }; + }; + }; +} diff --git a/system/steam.nix b/system/steam.nix deleted file mode 100644 index f82c958..0000000 --- a/system/steam.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ - programs.steam.enable = true; - programs.steam.extraPackages = - config.fonts.packages - ++ (with pkgs; [ - capitaine-cursors - bibata-cursors - mangohud - xdg-user-dirs - gamescope - - # gamescope compatibility?? - xorg.libXcursor - xorg.libXi - xorg.libXinerama - xorg.libXScrnSaver - libpng - libpulseaudio - libvorbis - stdenv.cc.cc.lib - libkrb5 - keyutils - ]); - - environment.systemPackages = with pkgs; [ - protontricks - bottles - inputs.dzgui-nix.packages.${pkgs.system}.default - ]; -} diff --git a/user/gaming.nix b/user/gaming.nix new file mode 100644 index 0000000..ec5dae8 --- /dev/null +++ b/user/gaming.nix @@ -0,0 +1,9 @@ +{ config, lib, ... }: +let + cfg = config.my.gaming; +in +{ + options.my.gaming.enable = lib.mkEnableOption { }; + config = lib.mkIf cfg.enable { + }; +} diff --git a/user/helix.nix b/user/helix.nix index b711055..15250b4 100644 --- a/user/helix.nix +++ b/user/helix.nix @@ -7,9 +7,13 @@ let inherit (config.my) accent theme editor; inherit (theme) color; + + cfg = config.my.helix; in { - config = { + options.my.helix.enable = lib.mkEnableOption "Enable helix config"; + + config = lib.mkIf cfg.enable { programs.helix = { enable = true; settings = { diff --git a/user/home.nix b/user/home.nix index e8ba81d..a7cd23e 100644 --- a/user/home.nix +++ b/user/home.nix @@ -21,6 +21,7 @@ ./rofi.nix ./mpv.nix ./mangohud.nix + ./gaming.nix ./pipewire.nix ./mimeapps.nix ./desktop-entries.nix