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:
- Select "Gaming Mode" in the Display Manager or run
start-gamescope-session
in a VT. - Launch
gamescope-session
within an existing desktop session. This will run gamescope in nested mode which results in higher latency.
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:
Description:
Whether to automatically launch the Steam Deck UI on boot.
Traditional Display Managers cannot be enabled in conjunction with this option.
Declared by:
jovian.steam.desktopSession
Name:
jovian.steam.desktopSession
Default:
null
Type:
Description:
The session to launch for Desktop Mode.
By default, attempting to switch to the desktop will launch Gaming Mode again.
Declared by:
jovian.steam.enable
Name:
jovian.steam.enable
Default:
false
Type:
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:
Description:
Additional environment variables or overrides to environment variables that will be applied to the gamescope session.
Declared by:
jovian.steam.updater.splash
Name:
jovian.steam.updater.splash
Default:
"steamos"
Type:
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.
Declared by:
jovian.steam.user
Name:
jovian.steam.user
Default:
(unset)Type:
Description:
The user to run Steam with.
Declared by:
jovian.steamos.enableAutoMountUdevRules
Name:
jovian.steamos.enableAutoMountUdevRules
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Whether to enable udev rules to automatically mount SD cards upon insertion.
Declared by:
jovian.steamos.enableBluetoothConfig
Name:
jovian.steamos.enableBluetoothConfig
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Adjust default BlueZ settings to match SteamOS.
Declared by:
jovian.steamos.enableDefaultCmdlineConfig
Name:
jovian.steamos.enableDefaultCmdlineConfig
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Whether to enable SteamOS kernel command line flags.
Declared by:
jovian.steamos.enableMesaPatches
Name:
jovian.steamos.enableMesaPatches
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Whether to apply the Mesa patches if available.
Currently, they allow the swapchain interval to be changed by the framerate limiter in gamescope.
Declared by:
jovian.steamos.enableProductSerialAccess
Name:
jovian.steamos.enableProductSerialAccess
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Loosen the product_serial node to
440 / root:wheel
, rather than400 / root:root
to allow the physical users to read S/N without auth. — holo-dmi-rules 1.0
Declared by:
jovian.steamos.enableSysctlConfig
Name:
jovian.steamos.enableSysctlConfig
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Whether to enable SteamOS sysctl configurations
Declared by:
jovian.steamos.enableVendorRadv
Name:
jovian.steamos.enableVendorRadv
Default:
config.jovian.steamos.useSteamOSConfig && config.jovian.hardware.has.amd.gpu
Type:
Description:
Whether to enable the vendor branch of Mesa RADV.
Declared by:
jovian.steamos.enableZram
Name:
jovian.steamos.enableZram
Default:
config.jovian.steamos.useSteamOSConfig
Type:
Description:
Whether to enable SteamOS-like zram swap configuration
Declared by:
jovian.steamos.useSteamOSConfig
Name:
jovian.steamos.useSteamOSConfig
Default:
"config.jovian.steam.enable"
Type:
Description:
Whether to enable opinionated system configuration from SteamOS.
When true, this will enable most options under the jovian.steamos
namespace.