refactor(steam): port to home

This commit is contained in:
514fpv 2024-01-07 21:50:42 +08:00
parent 4017da619a
commit a7d23cfec2
Signed by: koishi
SSH key fingerprint: SHA256:axz0uIzzY+5W19i7QOUuiw5LSqhKfCBKPf3L4xFRxLw
4 changed files with 56 additions and 23 deletions

View file

@ -1,23 +0,0 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.faucet.steam;
in {
options.faucet.steam = {
enable = mkEnableOption "steam software and environment";
};
config = mkIf cfg.enable {
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
};
users.home.persist.directories = [
".local/share/Steam"
".steam"
];
};
}

14
home/steam/config.nix Normal file
View file

@ -0,0 +1,14 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.home.steam;
in mkIf cfg.enable {
hardware.steam-hardware.enable = true;
networking.firewall = {
allowedTCPPorts = [ 27015 27036 ];
allowedUDPPorts = [ 27015 ];
allowedUDPPortRanges = [ { from = 27031; to = 27036; } ];
};
}

13
home/steam/home.nix Normal file
View file

@ -0,0 +1,13 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.passthrough.steam;
enable = cfg.enable && (cfg.allUsers || (config.home.username == "app"));
package = config.programs.steam.package;
in mkIf enable {
home.packages = with pkgs; [
cfg.package
cfg.package.run
];
}

29
home/steam/nixos.nix Normal file
View file

@ -0,0 +1,29 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.home.steam;
persist = [ ".steam" ".local/share/Steam" ];
in {
imports = [ ./config.nix ];
options.home.steam = {
enable = mkEnableOption "steam software and environment";
package = mkOption {
type = with types; package;
default = config.programs.steam.package;
description = "steam package";
};
allUsers = mkEnableOption "set up for all users";
};
config = {
users.homeModules = [
# this module passes steam configuration to home-manager
{ passthrough.steam = cfg; }
];
users.home.persist.directories = with cfg; mkIf (enable && allUsers) persist;
users.home.persistApp.directories = with cfg; mkIf (enable && !allUsers) persist;
};
}