Jovian-NixOS

Steam

You can enable the Steam Deck version of the Steam client with:

{
  jovian.steam.enable = true;
}

To manually start Gaming Mode (also known as the Steam Deck UI), there are two options:

Start On Boot

The following configuration snippet configures the system to automatically launch Gaming Mode on boot, and enables desktop switching to Plasma 6.

{
  services.desktopManager.plasma6.enable = true;

  jovian.steam = {
    enable = true;
    autoStart = true;
    user = "yourname";
    desktopSession = "plasma";
  };
}
Note

The session name semantics are the same as for the services.displayManager.defaultSession NixOS option.

Troubleshooting

Logs from Gaming Mode can be obtained with:

journalctl --user -u gamescope-session

Options

Note

The options listing is available on the website.

jovian.steam.autoStart

Name:

jovian.steam.autoStart

Default:

false

Type:

boolean

Description:

Whether to automatically launch the Steam Deck UI on boot.

Traditional Display Managers cannot be enabled in conjunction with this option.

jovian.steam.desktopSession

Name:

jovian.steam.desktopSession

Default:

null

Type:

null or string

Description:

The session to launch for Desktop Mode.

By default, attempting to switch to the desktop will launch Gaming Mode again.

jovian.steam.enable

Name:

jovian.steam.enable

Default:

false

Type:

boolean

Description:

Whether to enable the Steam Deck UI.

When enabled, you can either use the autoStart option (preferred), launch the Steam Deck UI from your Display Manager or by running start-gamescope-session.

Declared by:

jovian.steam.environment

Name:

jovian.steam.environment

Default:

{ }

Type:

attribute set of string

Description:

Additional environment variables or overrides to environment variables that will be applied to the gamescope session.

jovian.steam.updater.splash

Name:

jovian.steam.updater.splash

Default:

"steamos"

Type:

one of "steamos", "jovian", "vendor"

Description:

Configures the source of the splash screen used by the updater (preloader) step when launching Steam.

When steamos, this will use the vendor-selected image, scaled appropriately.

When jovian, this will use the Jovian Experiments logo, scaled appropriately.

When vendor, the vendor default will not be changed. This differs from default in that on systems other than the Steam Deck, the scaling may not be correct.

The scale of the vendor logo (in vendor) is incorrect when the display resolution is different from 1280 pixels wide. The updater logo will be bigger than the one used in the startup animation.

jovian.steam.user

Name:

jovian.steam.user

Default:

(unset)

Type:

string

Description:

The user to run Steam with.

jovian.steamos.enableAutoMountUdevRules

Name:

jovian.steamos.enableAutoMountUdevRules

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Whether to enable udev rules to automatically mount SD cards upon insertion.

jovian.steamos.enableBluetoothConfig

Name:

jovian.steamos.enableBluetoothConfig

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Adjust default BlueZ settings to match SteamOS.

jovian.steamos.enableDefaultCmdlineConfig

Name:

jovian.steamos.enableDefaultCmdlineConfig

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Whether to enable SteamOS kernel command line flags.

jovian.steamos.enableMesaPatches

Name:

jovian.steamos.enableMesaPatches

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Whether to apply the Mesa patches if available.

Currently, they allow the swapchain interval to be changed by the framerate limiter in gamescope.

jovian.steamos.enableProductSerialAccess

Name:

jovian.steamos.enableProductSerialAccess

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Loosen the product_serial node to 440 / root:wheel, rather than 400 / root:root to allow the physical users to read S/N without auth. — holo-dmi-rules 1.0

jovian.steamos.enableSysctlConfig

Name:

jovian.steamos.enableSysctlConfig

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Whether to enable SteamOS sysctl configurations

jovian.steamos.enableVendorRadv

Name:

jovian.steamos.enableVendorRadv

Default:

config.jovian.steamos.useSteamOSConfig && config.jovian.hardware.has.amd.gpu

Type:

boolean

Description:

Whether to enable the vendor branch of Mesa RADV.

jovian.steamos.enableZram

Name:

jovian.steamos.enableZram

Default:

config.jovian.steamos.useSteamOSConfig

Type:

boolean

Description:

Whether to enable SteamOS-like zram swap configuration

jovian.steamos.useSteamOSConfig

Name:

jovian.steamos.useSteamOSConfig

Default:

"config.jovian.steam.enable"

Type:

boolean

Description:

Whether to enable opinionated system configuration from SteamOS.

When true, this will enable most options under the jovian.steamos namespace.

Declared by: