{ povSelf, pkgs, lib, config, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options.enable = { type = types.bool; default = false; }; config = lib.mkIf cfg.enable { assertions = [ { assertion = cfg.enable -> config.modules.unfree.enable; message = '' The programs.steam module uses unfree software. To use it you need to set modules.unfree.enable to true. ''; } { assertion = cfg.enable -> config.modules.filesystem.impermernance.home.enable; message = '' The programs.steam module can't be used when impermancence is used inside of home-directories. ''; } ]; modules.unfree.list = [ "steam" "steam-unwrapped" ]; programs.steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; }; }; }