Files
nixos/modules/desktop-jovian.nix

50 lines
1.5 KiB
Nix

# 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"
];
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;
}