About this Tool


ScopeBuddy GUI is a graphical interface you can use to easily generate a configuration for environment variables, launch options, and Gamescope. Ordinarily, this would require you to understand command-line syntax and Gamescope well enough to manually type-out every detail of what you want. With this tool, all you need to do is click on the settings you want!

Gamescope is a very powerful tool that can drastically improve the gaming experience, but knowing what launch options you want and what they do can take a lot of time and frustration to figure out. Understandably, many people may not consider it as an option because of this. I wanted to solve that problem, and when I found out about Scopebuddy I decided to make a GUI interface for it!

To activate these settings in any game you have1, all you need to do is type scb -- %command% into the Launch Options box for that game! (picture guides for various launchers are found below) If you do not wish to install scopebuddy and scopebuddy-gui, but still want a Gamescope config generated, there is a web-based version here.

Gamescope is a micro-compositor made by ValveSoftware that is used to simplify running games and other software. It can handle a lot of things many games struggle with such as extreme resolutions, entering fullscreen, extremely wide monitors, and more! This can greatly reduce glitchy behavior, improving the gaming experience.

Scopebuddy is a tool made by HikariKnight that makes it easier to use Gamescope. It allows you to do many things, which includes creating a general Gamescope configuration for all of your games. This GUI does not cover all of its capabilities, but allows for easier usage of its more simple features while preserving any advanced manually-set functions.

1. Game launchers installed as flatpak may have difficulties using Gamescope.

Get it on Flathub

Options


Automatic AppID Detection

Some game launchers (such as Steam, Heroic, and Ubisoft Connect) have static identifiers for games that can be detected by scopebuddy. If scopebuddy supports automatic detection for such a launcher, you will no longer need to specify the SCB_APPID environment variable if the file name matches the AppID.

Use the following names when creating a new launcher folder if you wish to take advantage of scopebuddy's automatic detection:

  • Steam: folder always present
  • Heroic Games Launcher: heroic
  • Ubisoft Connect (uplay): ubisoft

Additional reading:

Environment Variables

Environment variables can be used to pass information to programs, telling them to function differently from normal. For example, SteamDeck=1 will tell games you are on a SteamDeck so they behave as they would on SteamDeck (if they utilize the variable). SteamDeck=0 does the opposite. Usually, if a game isn't working properly you can find environment variables (and other settings) to fix it on ProtonDB.

Additional reading:

Gamescope Arguments

Gamescope uses launch options to determine how it will render and display games. For example, -w 1920 -h 1080 will tell it to render at a resolution of 1920x1080p (FHD). There are a few launch options for Gamescope left out of the GUI because they are either too complex or unreliable. If you wish to use them, they can be entered into the "Additional Arguments" text field at the bottom of the gamescope page.

Additional reading:

Launch Options

Like environment variables, launch options can be used to pass information to programs, telling them to function differently from normal. For example, -novid will skip the starting video in Valve games.

Additional reading:

Applying a Config: Steam


Desktop UI

  • Open Steam and go to your Library.
  • Right-click the game you want to use with Gamescope and select Properties.
  • In the Launch Options field, enter either of the following:
    scopebuddy -- %command%
    scb -- %command%
  • This will launch the game using your current ScopeBuddy configuration.


Big Picture Mode

  • On the SteamDeck interface (gamescope session), using ScopeBuddy results in Gamescope launch arguments being ignored as they would otherwise prevent the game from starting; Gamescope cannot be run within itself. Enter desktop mode when launching games for gamescope settings to be applied!
  • Navigate to your Library and select the game you want to use with Gamescope.
  • Click on the gear icon (Settings) at the opposite side of the Play button.
  • In the Launch Options field, enter either of the following:
    scopebuddy -- %command%
    scb -- %command%
  • This will launch the game using your current ScopeBuddy configuration.


Applying a Config: Lutris


For playing games on the Epic Games Store, Bazzite recommends using the Heroic Games Launcher instead of trying to run the Epic Games Store through Lutris or similar alternatives.

To apply scopebuddy to a game in Lutris:

  • Right click on the game, click on Configure
  • Click the System Options tab
  • Enable the "Advanced" toggle in the top right of the window
  • Scroll to the "Game execution" section, in the Command Prefix line, enter scb -- , then click "Save" in the top right of the window.
  • (Optional) If you wish to use a game-specific config (the global file will be used by default), enter the environment variable key SCB_APPID and set its value to lutris/filename, where "filename" is the name of the config file (without the .conf extension) you wish to use. It is displayed in the bottom bar in Scopebuddy GUI when you select a file.


If you follow these steps and create a Steam shortcut, the shortcut will properly work with your scopebuddy settings!

Applying a Config: Heroic Games Launcher


To apply scopebuddy to a game in Heroic:

  • Click on the game's settings button
  • In the settings menu, click the Advanced tab
  • Scroll down to Wrapper command, put scb as the wrapper and -- as its arguments (ignore the warning, it is irrelevant in this case)
  • (Optional) If you wish to use a game-specific config (the global file will be used by default), enter the environment variable key SCB_APPID and set its value to heroic/filename, where "filename" is the name of the config file (without the .conf extension) you wish to use. It is displayed in the bottom bar in Scopebuddy GUI when you select a file.


Troubleshooting


Known Issues

  • At this moment, Gamescope (and therefore, Scopebuddy) does not tend to work properly with game launchers that are packaged as a flatpak. Some workarounds until that is resolved are to use other formats such as AppImage or distro-specific packages, or to launch the game launcher itself inside gamescope/scopebuddy.

    For Example: scb -- flatpak run com.heroicgameslauncher.hgl

  • At this moment, the steam overlay option can result in gamescope not opening! If you have this issue, disable the overlay setting.

Other Considerations

  • Make sure the resolution you chose the game to render at is a reasonable quality and aspect ratio. Some examples are the ones in the dropdown menu, half of the resolution of your screen, exactly the resolution of your screen, etc.

    Leaving the rendered resolution fields blank will lead to their default 720p resolution, which will look very low-quality on many screens! Setting the rendered resolution too high will cause poor performance.

  • If setting the rendered width and height to match your screen fails, you can also check the in-game settings to see if they can solve the problem! For example, I have noticed that Overwatch 2 in Gamescope works best when it is run in borderless window mode.

  • When using MangoHUD with gamescope, make sure to use the built-in support that gamescope has and not the traditional mangohud or MANGOHUD=1 in launch options. Scopebuddy GUI will attempt to detect when you apply gamescope and normal MangoHUD and warn you, so heed its warning!


If you have an issue, especially one that is easy to encounter, post it in the Github!

Developer Information


The app itself uses Python and PySide6 (Qt for Python). I utilize Qt Designer for the interface and Python code for the logic. The web-based version uses JavaScript. The app itself is built from source with the following commands (run inside of a folder with the yml):

  • flatpak-builder --force-clean --repo=repo builddir io.github.rfrench3.scopebuddyGUI.yml
  • flatpak build-bundle repo scopebuddyGUI.flatpak io.github.rfrench3.scopebuddyGUI

If you are interested in making a flatpak app with Qt and Python, or a website with bootstrap similar to this one, my GitHub has templates of both you can use! Additionally, I strongly recommend developing Qt/KDE applications inside of this distrobox as it greatly simplifies development!