Say hello to ScopeBuddy, your gamescope manager

Greetings!

Not that long ago we added a in-house developed tool to Bazzite testing named ScopeBuddy.
However ScopeBuddy is now available in Bazzite stable so everyone can use it now!.

ScopeBuddy is a script that works as a bridge and manager for gamescope

The way to utilize it is by adding

scb -- %command%

or

scopebuddy -- %command%

to your games Launch Options.

When you now launch the game, scopebuddy will look at ~/.config/scopebuddy/scb.conf and apply your default global settings for gamescope before looking into ~/.config/scopebuddy/AppID/appidofgame.conf to apply any game specific settings you have defined.

Finally it will apply a fix for the Steam Overlay and Steam Input so they both work inside nested gamescope and launch the game.

Best of all, if you use gamemode and desktop mode, you will no longer have to remove gamescope from the launch options when you launch the game inside gamemode. When you use scopebuddy instead of gamescope, it will handle this automatically for you.

For full documentation and usage please look at the dedicated ScopeBuddy documentation

You can find the source for ScopeBuddy here to either contribute to it or use it in your own project.

9 Likes

@HikariKnight Do I need to start the game from Big picture mode in order for the Steam overlay and Steam input to work with ScopeBuddy?

Holy! Thank you for this!

What caught my eye most was this line:

“Finally it will apply a fix for the Steam Overlay and Steam Input so they both work inside nested gamescope and launch the game.”

I have been dealing with this issue for a while now, and I think I was having even more of an issue because I was using gamescope. I have always had the overlay turned on but that never fixed the issue, and when I would use LD_PRELOAD=“” It would break steam input! The gamescope thread on this issue was all but dead referencing the former issue as the likely culprit and I have been watching that thread hoping for some sort of resolution!

I can say after a run of Returnal and Issac I think it is working, but I need some longer play sessions to be absolutely sure.

Looking at the code it seems this is the fix in question? I guess I’m just wondering how you came up with that or have any input on how a one line implementation could be used to remove scopebuddy and prove it works with just plain gamescope.