{ pkgs, lib, config, ... }: { options.mods.containers.steam = { enable = lib.mkEnableOption { default = false; description = "enables steam container"; }; }; config = lib.mkIf config.mods.containers.steam.enable { mods.containers.enable = true; environment.systemPackages = with pkgs; [ x2goclient guacamole-client remmina ]; containers.steam = { privateNetwork = true; hostAddress = "192.168.100.10"; localAddress = "192.168.100.11"; bindMounts = { "/home/steam/.steam/steam/steamapps/common/SMITE" = { hostPath = "/mnt/bulk/SteamLibrary/steamapps/common/SMITE"; isReadOnly = true; }; "/home/steam/.steam/steam/steamapps/shadercache/386360" = { hostPath = "/mnt/bulk/SteamLibrary/steamapps/shadercache/386360"; isReadOnly = true; }; "/home/steam/.steam/steam/steamapps/appmanifest_386360.acf" = { hostPath = "/mnt/bulk/SteamLibrary/steamapps/appmanifest_386360.acf"; isReadOnly = true; }; }; config = { config, pkgs, lib, ... }: { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" "steam-run" ]; programs.steam = { enable = true; remotePlay.openFirewall = true; }; environment.systemPackages = with pkgs; [ xterm glxinfo guacamole-server wget bottles ]; services.xserver.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; services.xrdp.enable = true; services.xrdp.defaultWindowManager = "startplasma-x11"; services.xrdp.openFirewall = true; hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; services.x2goserver.enable = true; programs.ssh.forwardX11 = true; services.openssh = { enable = true; settings.X11Forwarding = true; }; users.users.steam = { isNormalUser = true; extraGroups = [ "wheel" ]; initialPassword = "changeme"; }; system.stateVersion = "23.11"; }; }; }; }