{ config, lib, ... }: { imports = [ ]; options.me = { steam.enable = lib.mkOption { type = lib.types.bool; default = false; example = true; description = "Whether we want to install steam."; }; }; config = lib.mkIf (config.me.steam.enable && config.me.graphical) { allowedUnfree = [ "steam" "steam-original" "steam-unwrapped" "steam-run" ]; 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 localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers }; environment.persistence."/persist" = lib.mkIf (config.me.mountPersistence) { hideMounts = true; users.talexander = { directories = [ ".local/share/Steam" ".steam" ".factorio" ]; }; }; }; }