# Jovian-NixOS deck-mode configuration shared by all hosts running Steam # in gamescope (yarn, patiodeck). Host-specific settings (like # jovian.devices.steamdeck.enable) stay in the host's default.nix. { lib, username, inputs, ... }: { imports = [ ./desktop-steam-update.nix inputs.jovian-nixos.nixosModules.default ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steamdeck-hw-theme" "steam-jupiter-unwrapped" "steam" "steam-original" "steam-unwrapped" "steam-run" # OptiScaler bundles XeSS (Intel SLA) and FidelityFX SDK alongside its own GPL-3.0 # source. The package's meta.license is unfreeRedistributable to reflect the bundle. "optiscaler" ]; jovian.steam = { enable = true; autoStart = true; desktopSession = "niri"; user = username; }; # default off: jovian's SteamOS kernel cmdline (Valve's Deck-tuned amdgpu # params: amd_iommu=off, amdgpu.sched_hw_submission=4, dcdebugmask=0x20000, # lockup_timeout=5000,...,5000, ttm.pages_min=2097152, audit=0) is tuned for # Van Gogh / Sephiroth APUs at 1280x800 and corrupts host memory pages on # RDNA3 desktop GPUs (yarn: Navi 32 1440p, FH5 wine-log showed >1M # illegal-instruction faults across .text after extended play). # mkDefault so actual Deck hosts can opt back in (see hosts/patiodeck). jovian.steamos.enableDefaultCmdlineConfig = lib.mkDefault false; # jovian overrides the display manager; sddm is required services.displayManager.sddm.wayland.enable = true; # desktop-common.nix enables programs.gamescope which conflicts with # jovian's own gamescope wrapper programs.gamescope.enable = lib.mkForce false; }