M hosts/arwen/default.nix => hosts/arwen/default.nix +2 -0
@@ 37,4 37,6 @@
roles.zellij.enable = true;
roles.kitty.enable = true;
roles.hyprland.enable = true;
+
+ roles.steam.enable = true;
}
M roles/default.nix => roles/default.nix +1 -0
@@ 8,6 8,7 @@
./kitty.nix
./nix.nix
./shell.nix
+ ./steam.nix
./zellij.nix
];
}
A roles/steam.nix => roles/steam.nix +64 -0
@@ 0,0 1,64 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.roles.steam;
+in {
+ options.roles.steam = {
+ enable = lib.mkEnableOption "";
+ };
+
+ config = lib.mkIf cfg.enable {
+ nixpkgs.config.allowUnfreePredicate = pkg:
+ builtins.elem (lib.getName pkg) [
+ "steam-run"
+ "steam-original"
+ "steam"
+ ];
+
+ programs.steam = {
+ enable = true;
+ remotePlay.openFirewall = false;
+ dedicatedServer.openFirewall = false;
+ };
+ hardware.steam-hardware.enable = true;
+ programs.gamemode = {
+ enable = true;
+ };
+
+ environment.systemPackages = with pkgs; [
+ gamescope
+ protontricks
+ gnome.zenity
+ ];
+
+ hm = {
+ programs.mangohud = {
+ enable = true;
+ enableSessionWide = false;
+ settings = {
+ fps_limit = "60,90,120,200";
+ time = true;
+
+ gpu_stats = true;
+ gpu_temp = true;
+ gpu_text = "GPU";
+
+ cpu_stats = true;
+ cpu_temp = true;
+ cpu_text = "CPU";
+
+ vram = true;
+ ram = true;
+
+ fps = true;
+ frametime = true;
+ frame_timing = true;
+ show_fps_limit = true;
+ };
+ };
+ };
+ };
+}