Personal Nix setup

Add games module

Changed files
+76 -10
machines
modules
+3 -3
flake.lock
···
},
"locked": {
"dir": "nix",
-
"lastModified": 1728468997,
-
"narHash": "sha256-SoBdlk/amOe/nob9QPime4rDMAsHkZprhblERp/Yi8E=",
+
"lastModified": 1728495297,
+
"narHash": "sha256-3/7OTUP/bn5TGHEIyJaCQXup+K5O5qP+5NhZywXSC8k=",
"owner": "kitten",
"repo": "yeetmouse",
-
"rev": "b38d777f8b64df750c2d01115c0ea51f6fad4fb7",
+
"rev": "0bdbe598a8bcc3b351795e1e8d22c241aa7662a8",
"type": "github"
},
"original": {
+9
machines/pepper/configuration.nix
···
modules = {
desktop.enable = true;
fonts.enable = true;
+
server = {
+
enable = true;
+
sshd.enable = true;
+
tailscale.enable = true;
+
};
+
apps = {
+
enable = true;
+
games.enable = true;
+
};
};
system.stateVersion = "24.11";
+20
modules/apps/default.nix
···
+
{ lib, helpers, ... }:
+
+
with lib; {
+
options.modules.apps = {
+
enable = mkOption {
+
default = false;
+
example = true;
+
description = "Whether to enable Apps options.";
+
type = types.bool;
+
};
+
};
+
+
config.modules.apps = {
+
enable = if helpers.isLinux then (mkDefault false) else (mkForce false);
+
};
+
} // helpers.linuxAttrs {
+
imports = [
+
./games.nix
+
];
+
}
+33
modules/apps/games.nix
···
+
{ lib, config, pkgs, user, ... }:
+
+
with lib;
+
let
+
cfg = config.modules.apps;
+
in {
+
options.modules.apps.games = {
+
enable = mkOption {
+
default = false;
+
example = true;
+
description = "Whether to enable games.";
+
type = types.bool;
+
};
+
};
+
+
config = mkIf (cfg.enable && cfg.games.enable) {
+
users.users."${user}".extraGroups = [ "gamemode" ];
+
+
hardware.steam-hardware.enable = true;
+
services.system76-scheduler.enable = true;
+
environment.systemPackages = [ pkgs.lutris ];
+
+
programs = {
+
gamemode.enable = true;
+
steam = {
+
enable = true;
+
remotePlay.openFirewall = true;
+
};
+
};
+
+
networking.hosts."0.0.0.0" = [ "ipv6check-http.steamserver.net" ];
+
};
+
}
+2
modules/default.nix
···
{
imports = [
./base
+
./apps
./desktop
./development
./fonts
···
./router
./server
./automation
+
./apps
];
}
+3 -3
modules/desktop/rawaccel.nix
···
AccelerationMode = "jump";
Exponent = 1.0;
InputCap = 35.0;
-
Midpoint = 4.4;
-
Offset = 5.38;
+
Midpoint = 4.1;
+
Offset = 5.9;
PreScale = 0.17;
-
RotationAngle = 0.0506145;
+
RotationAngle = 0.05;
ScrollsPerTick = 3;
UseSmoothing = true;
};
+6 -4
modules/server/tailscale.nix
···
with lib;
let
cfgRoot = config.modules.server;
+
cfgRouter = config.modules.router;
cfg = config.modules.server.tailscale;
-
address = config.modules.router.address;
in {
options.modules.server.tailscale = {
enable = mkOption {
···
domain = "fable-pancake.ts.net";
search = [ "fable-pancake.ts.net" ];
firewall.trustedInterfaces = [ "tailscale0" ];
-
hosts."${address}" = [ "${hostname}.fable-pancake.ts.net" hostname ];
+
hosts."${cfgRouter.address}" = mkIf cfgRouter.enable [ "${hostname}.fable-pancake.ts.net" hostname ];
};
age.secrets."tailscale" = {
···
services.tailscale = {
enable = true;
-
useRoutingFeatures = "server";
-
extraUpFlags = [ "--advertise-exit-node" "--ssh" "--accept-dns=false" ];
+
useRoutingFeatures = if cfgRouter.enable then "server" else "none";
+
extraUpFlags = if cfgRouter.enable
+
then [ "--advertise-exit-node" "--ssh" "--accept-dns=false" ]
+
else [ "--ssh" ];
extraDaemonFlags = [ "--no-logs-no-support" ];
authKeyFile = "/run/secrets/tailscale";
};