DeckDS is a Steam Deck plugin for easily configuring and launching multi-window applications from Gamemode.
The DS
in the name is of dual significance, and stands for both Dual-Screen, and Desktop-Settings.
This plugin allows applications to be launched in Desktop mode, from Game mode. Additionally, DeckDS has specialized support for emulators for systems with multiple screens, configured as best as possible to use an external monitor as a second screen for a near-native dual-screen experience.
DeckDS allows launching Steam applications (both Steam and non-Steam titles are supported) in desktop mode. Additionally, the plugin supports launching a secondary application (currently only flatpaks are supported) simultaneously, allowing the user to play a game while interacting with an application like YouTube or Discord on the second display.
Configuration and display/window management for a small selection of emulators are currently supported. The following table lists the support status of supported emulators by install source:
- ✅ : Supported
- ☑️ : If it exists, should work if the emulator settings location is configured.
- 🚧 : Planned/In-Progress
- ❌ : Not Supported/Not Planned
Flatpak | AppImage | Emudeck (Proton) | Other Portable/Binary | RetroArch | |
---|---|---|---|---|---|
Dolphin/mGBA | 🚧 | 🚧 | ➖ | 🚧 | ❌ |
Cemu | ✅ | ✅ | ✅ | ☑️ | ❌ |
Citra* | ✅ | ☑️ | ➖ | ☑️ | ❌ |
Lime3DS | ✅ | ☑️ | ➖ | ☑️ | ❌ |
MelonDS | ✅ | ☑️ | ➖ | ☑️ | ❌ |
*Development of Citra is discontinued. Consider Lime3DS (supported), or another fork. Compatibility for other Citra forks not guaranteed. Other Citra forks may or may not fullscreen and/or snap windows automatically.
Configuration is handled through profiles. Profiles can be applied to Steam categories, and can be overridden per-game to provide the best experience.
Each profile allows configuring the application platform (either native or an emulator), as well as settings specific to each launch target.
Platforms each have (up to) two launch targets: Desktop, and Gamemode. This allows customizing settings, such as display layout, per-profile and per-game, with different settings for Desktop and Gamemode; useful for Nintendo DS and 3DS emulators specifically.
Currently, only display settings and (for emulators) emulator install source and layout options are configurable.
DeckDS also has basic support for changing display settings when swapping to desktop mode normally, in addition to when launching games. Configurable settings include:
- Resolution
- Enabling/disabling the Deck's internal display
- Setting the location of the Deck's internal display relative to the primary output
This plugin requires Decky Loader. DeckDS is (not yet) available on the store.
This plugin is only supported on Steam Deck. I do not currently have the resources to develop for and test against other hardware or software platforms. That being said, if you're wont to tinker, tinker away; all I ask is that you don't file issues for problems encountered on other platforms.
Desktop mode functionality makes use of:
- the
steamos-session-select
command for mode switching - KDE's autostart functionality
- the KWin window manager
xrandr
(x11)
It will not work without them.
DeckDS is licensed under GNU GPLv3.