{ config, lib, pkgs, jovian, ... }: { imports = [ jovian.nixosModules.jovian ]; options.system.steamdeck.enable = lib.mkEnableOption "Jovian NixOS environment"; config = lib.mkIf config.system.steamdeck.enable { jovian = { steam = { enable = true; autoStart = true; desktopSession = "gnome"; user = config.sysusers.main; }; decky-loader = { enable = true; package = pkgs.decky-loader-prerelease; }; devices.steamdeck = { enable = true; enableGyroDsuService = true; }; }; boot.kernelPackages = lib.mkForce pkgs.linuxPackages_jovian; programs.steam = { extest.enable = true; extraCompatPackages = with pkgs; [ proton-ge-bin ]; localNetworkGameTransfers.openFirewall = true; remotePlay.openFirewall = true; }; services = { displayManager.ly.enable = lib.mkForce false; keyd.enable = lib.mkForce false; tlp.enable = lib.mkForce false; xserver.desktopManager.gnome.enable = true; }; networking = { networkmanager.enable = true; wireless.enable = lib.mkForce false; }; environment = { persistence."/persist" = { directories = [ "/etc/NetworkManager/system-connections" "/var/lib/decky-loader" ]; users.${config.sysusers.main}.directories = [ ".local/share/gnome-settings-daemon" ".local/share/gnome-shell" ".steam" ]; }; gnome.excludePackages = with pkgs; [ adwaita-icon-theme baobab epiphany evince file-roller geary gnome-calculator gnome-calendar gnome-characters gnome-clocks gnome-color-manager gnome-connections gnome-console gnome-contacts gnome-disk-utility gnome-font-viewer gnome-logs gnome-maps gnome-music gnome-shell-extensions gnome-software gnome-system-monitor gnome-text-editor gnome-tour gnome-user-docs gnome-weather loupe nautilus orca seahorse simple-scan snapshot sushi sysprof totem yelp ]; }; nixpkgs.allowUnfreePackages = [ "steam" "steam-jupiter-unwrapped" "steamdeck-firmware" "steamdeck-hw-theme" ]; specialisation.desktop.configuration.config.system.steamdeck.enable = lib.mkForce false; }; }