Hello All,
After using SteamOS for quite some time now on many different systems, including SteamDeck, ROG Ally, and an all AMD HTPC setup similar to the Steam Machine in terms of hardware specs, it came to me that for some reason SteamOS treats all of these systems as Steam Deck(even including the Steam Machine), and that's an issue for some games, where users are oftenly locked behind some limitations, for example not the full advanced graphical settings are available, or not the full screen resolution options are available, because the OS "thinks" it's a Steam Deck, thus limiting some games features to ensure the smoothest gameplay experience on the platform.
I'm pretty sure, you can already see where the issue is.
The workaround:
Game Launch Options: SteamDeck=0 %command%
This is "telling" the game that your system is in fact not a Steam Deck so that you can benefit from all ingame available settings, and features, so you can also utilize the available hardware.
All of this is especially true for the Steam Machine, as it's way more capable then the Steam Deck, and we can only expect that most people simply want to start the system, and play their favorite titles without even thinking about all that, thus we cannot expect those same people to also be aware of these launch options, plus, they also don't always work too.
The solution:
Fully automatic, and hardware-aware process, so SteamDeck=0 is only applied on non-Deck systems, while real Steam Deck hardware keeps its default behavior.
The clean way to do this is to conditionally set the environment variable at login, based on actual hardware detection.
What we know is that a real Steam Deck exposes identifiable system info via:
DMI/BIOS strings (/sys/class/dmi/id/*)
Vendor/model fields like: Valve Jupiter (LCD Deck) or Galileo (OLED Deck)
So we can check those and decide:
Is it a Real Deck? Yes, then keep SteamDeck=1
Anything else, force SteamDeck=0
Example of a detection script:
#!/bin/bash
# Detect if running on actual Steam Deck hardware
if grep -qiE "valve|jupiter|galileo" /sys/class/dmi/id/{sys_vendor,board_vendor,product_name,board_name} 2>/dev/null; then
export SteamDeck=1
else
export SteamDeck=0
fi
Example script file name: steamdeck-detect.sh
And then just hook it into the environment nano ~/.profile
source ~/.config/profile.d/steamdeck-detect.sh
All of this can also be introduced as a new feature as a trigger on the Steam UI, or in Gamescope, so that people can decide if they want to use the Deck profile, or the Desktop profile for their games, without the need of manually typing any commands anywhere.
Please let me know what you think, and if this is even a feasible request.
Thank You in advance.
Hello All,
After using SteamOS for quite some time now on many different systems, including SteamDeck, ROG Ally, and an all AMD HTPC setup similar to the Steam Machine in terms of hardware specs, it came to me that for some reason SteamOS treats all of these systems as Steam Deck(even including the Steam Machine), and that's an issue for some games, where users are oftenly locked behind some limitations, for example not the full advanced graphical settings are available, or not the full screen resolution options are available, because the OS "thinks" it's a Steam Deck, thus limiting some games features to ensure the smoothest gameplay experience on the platform.
I'm pretty sure, you can already see where the issue is.
The workaround:
Game Launch Options:
SteamDeck=0 %command%This is "telling" the game that your system is in fact not a Steam Deck so that you can benefit from all ingame available settings, and features, so you can also utilize the available hardware.
All of this is especially true for the Steam Machine, as it's way more capable then the Steam Deck, and we can only expect that most people simply want to start the system, and play their favorite titles without even thinking about all that, thus we cannot expect those same people to also be aware of these launch options, plus, they also don't always work too.
The solution:
Fully automatic, and hardware-aware process, so
SteamDeck=0is only applied on non-Deck systems, while real Steam Deck hardware keeps its default behavior.The clean way to do this is to conditionally set the environment variable at login, based on actual hardware detection.
What we know is that a real Steam Deck exposes identifiable system info via:
DMI/BIOS strings (
/sys/class/dmi/id/*)Vendor/model fields like:
Valve Jupiter(LCD Deck) orGalileo(OLED Deck)So we can check those and decide:
Is it a Real Deck? Yes, then keep SteamDeck=1
Anything else, force SteamDeck=0
Example of a detection script:
Example script file name:
steamdeck-detect.shAnd then just hook it into the environment
nano ~/.profilesource ~/.config/profile.d/steamdeck-detect.shAll of this can also be introduced as a new feature as a trigger on the Steam UI, or in Gamescope, so that people can decide if they want to use the Deck profile, or the Desktop profile for their games, without the need of manually typing any commands anywhere.
Please let me know what you think, and if this is even a feasible request.
Thank You in advance.