SteamOS On A Laptop - Steam Tweaks Fixes The iGPU Nightmare
SteamOS on a laptop with a hybrid GPU is the hardest configuration there is. Steam installs against the iGPU, decides that's the only graphics card in the system, and ignores your discrete GPU completely — even with an HDMI cable…
SteamOS on a laptop with a hybrid GPU is the hardest configuration there is. Steam installs against the iGPU, decides that's the only graphics card in the system, and ignores your discrete GPU completely — even with an HDMI cable wired straight into it. Then it boots into Gamescope every time, and closing the lid puts the whole thing to sleep mid-game.
link to steam tweak script
https://github.com/28allday/steam-tweak
more stuff on the website
you can buy me a coffee to help with channel
https://buymeacoffee.com/gnugent
subscribe for updates
Subscribe for more reviews and videos https://www.youtube.com/@28allday?sub_confirmation=1
or become a member
https://www.youtube.com/channel/UC1nagfUlQ4_ZmOVkGhWcw1g/join
You can download Omarchy here https://omarchy.org
Amazing premade Omarchy themes here and other cool stuff
https://github.com/HANCORE-linux
So I've written Steam Tweaks — a script that gives you control over all of it. Which GPU plays your games, which screen Steam appears on, whether you boot to desktop or Gamescope, and whether the lid closing kills your session.
THE PROBLEM
Install SteamOS on a hybrid laptop and it has to go through the iGPU — installing against the dGPU output directly won't work. But once it's in, Steam permanently believes the iGPU is the only card. Launch into games mode and it renders on the laptop panel using integrated graphics while your external monitor and discrete GPU sit there doing nothing. And every boot drops you into Gamescope, which is not what you want on a machine you actually use.
THE SCRIPT — STEAM TWEAKS
One command from Git installs it into its own folder. Run it and you get a menu:
Desktop boot toggle — switch off booting into Gamescope so the machine boots to desktop like a normal laptop.
Pick the GPU for games — it scans your system and lists what's there. Choose the discrete card and games render through the dGPU out of your directly-wired HDMI port. Choose the iGPU and it flips back to the laptop panel. You can switch back and forth whenever you like.
Pick the screen for Steam — choose your external monitor or the laptop panel. Don't leave it on auto; Steam will mess it up. Set it deliberately depending on whether you're docked or portable.
Lid sleep control — this is the one that had me stumped. When Gamescope exits, the laptop briefly believes the external monitor has disconnected, and with the lid shut it decides it's asleep and drops to a black screen. The script sets the lid to never sleep so you can run lid-closed on an external monitor without the machine dying every time you switch modes.
THE CATCH — KNOW YOUR HARDWARE
This only works if your laptop can physically route the discrete GPU to a display. If you've got a MUX switch, or your HDMI port is wired directly to the dGPU, you're fine. If your machine relies on Optimus-style hybrid offload — the software passthrough — it will not work. I tested it on camera: unplug the external monitor, try to force the dGPU to the laptop panel, and it fails because there's no offload path. You'll be stuck on the iGPU.
If your laptop is iGPU-only, you're actually golden — Panther Lake machines, Strix Halo, anything with just powerful integrated graphics works beautifully because there's nothing to switch.
And desktop users — this script is handy for you too. Run it and switch off desktop boot, or use the screen picker. The GPU stuff just won't apply.
A CHALLENGE
Someone cleverer than me — there must be a software route to make the advanced hybrid MUX switching work. I don't have the hardware to write it. If you figure it out, let me know and I'll build it into the script.
Before you ask questions in the comments, check your system specs first. If you've got software-only hybrid graphics, don't go down this road — you'll end up at a black screen.
THE SCRIPT
Steam Tweaks is on Git, link in the description
00:00 - Start
00:09 - Preamble
04:28 - Laptop Igpus
06:33 - MUX
10:14 - STEAM CONTROL SCRIPT
20:11 - FINAL WORDS