Daemon for interacting with Gamescope over DBus
  • Rust 93.5%
  • Makefile 6.1%
  • Dockerfile 0.4%
Find a file
semantic-release-bot 7eb1154bd5 chore(release): 1.13.1 [skip ci]
## [1.13.1](https://github.com/ShadowBlip/gamescope-dbus/compare/v1.13.0...v1.13.1) (2026-03-18)

### Bug Fixes

* **Wayland:** increase event timeout to 3s from 100ms ([2abfcb3](2abfcb3dd0))
2026-03-18 05:17:59 +00:00
.github/workflows fix: add aarch64 build 2025-05-08 16:53:22 -07:00
bindings/dbus-xml chore(Docs): update docs and bindings with baselayer_app_id methods 2024-09-29 14:06:25 -07:00
docs chore(Docs): update docs and bindings with baselayer_app_id methods 2024-09-29 14:06:25 -07:00
rootfs/usr fix: remove dbus specific service config 2025-06-05 10:51:20 -07:00
src fix(Wayland): increase event timeout to 3s from 100ms 2026-03-17 22:10:33 -07:00
.gitignore fix(GamescopeDBus): add initial release, docs, and CI 2024-01-24 15:09:06 -08:00
.releaserc.yaml fix: add aarch64 build 2025-05-08 16:53:22 -07:00
Cargo.lock chore(release): 1.13.1 [skip ci] 2026-03-18 05:17:59 +00:00
Cargo.toml chore(release): 1.13.1 [skip ci] 2026-03-18 05:17:59 +00:00
Dockerfile fix: add aarch64 build 2025-05-08 16:53:22 -07:00
LICENSE Add manager and xwayland instances 2024-01-22 23:15:42 -08:00
Makefile fix: remove dbus specific service config 2025-06-05 10:51:20 -07:00
README.md Fix example 2025-06-18 19:33:14 -07:00


Gamescope DBus

Discord

About

Gamescope DBus is an open source daemon for Linux that can be used to control the Gamescope compositor over DBus. This interface provides a UI-agnostic way to interact with Gamescope to make it easier to write your own user interface and integrate it with Gamescope.

Install

You can install with:

make build
sudo make install

If you are using ArchLinux, you can install Gamescope DBus from the AUR:

yay -S gamescope-dbus-bin

Then start the service with:

systemctl --user enable --now gamescope-dbus

Documentation

XML specifications for all interfaces can be found in bindings/dbus-xml.

Individual interface documentation can be found here:

Usage

When Gamescope DBus is running as a service, you can interact with it over DBus. There are various DBus libraries available for popular programming languages like Python, Rust, C++, etc.

You can also interface with DBus using the busctl command:

busctl --user tree org.shadowblip.Gamescope
└─ /org
  └─ /org/shadowblip
    └─ /org/shadowblip/Gamescope
      ├─ /org/shadowblip/Gamescope/Manager
      ├─ /org/shadowblip/Gamescope/Wayland0
      ├─ /org/shadowblip/Gamescope/XWayland0
      └─ /org/shadowblip/Gamescope/XWayland1
busctl --user introspect org.shadowblip.Gamescope /org/shadowblip/Gamescope/XWayland0
NAME                                      TYPE      SIGNATURE RESULT/VALUE            FLAGS
org.freedesktop.DBus.Introspectable       interface -         -                       -
.Introspect                               method    -         s                       -
org.freedesktop.DBus.Peer                 interface -         -                       -
.GetMachineId                             method    -         s                       -
.Ping                                     method    -         -                       -
org.freedesktop.DBus.Properties           interface -         -                       -
.Get                                      method    ss        v                       -
.GetAll                                   method    s         a{sv}                   -
.Set                                      method    ssv       -                       -
.PropertiesChanged                        signal    sa{sv}as  -                       -
org.shadowblip.Gamescope.XWayland         interface -         -                       -
.GetAllWindows                            method    u         au                      -
.GetAppId                                 method    u         u                       -
.GetWindowChildren                        method    u         au                      -
.GetWindowName                            method    u         s                       -
.HasAppId                                 method    u         b                       -
.SetAppId                                 method    uu        -                       -
.Name                                     property  s         ":2"                    emits-change
.Primary                                  property  b         true                    emits-change
.RootWindowId                             property  u         962                     emits-change
org.shadowblip.Gamescope.XWayland.Primary interface -         -                       -
.GetBaselayerWindow                       method    -         u                       -
.GetOverlay                               method    u         u                       -
.IsFocusableApp                           method    u         b                       -
.RemoveBaselayerWindow                    method    -         -                       -
.RequestScreenshot                        method    -         -                       -
.SetBaselayerWindow                       method    u         -                       -
.SetExternalOverlay                       method    uu        -                       -
.SetInputFocus                            method    uu        -                       -
.SetMainApp                               method    u         -                       -
.SetNotification                          method    uu        -                       -
.SetOverlay                               method    uu        -                       -
.AllowTearing                             property  b         false                   emits-change writable
.BlurMode                                 property  u         0                       emits-change writable
.BlurRadius                               property  u         0                       emits-change writable
.FocusableApps                            property  au        1 4194306               emits-change
.FocusableWindowNames                     property  as        -                       emits-change
.FocusableWindows                         property  au        3 4194306 4194306 64337 emits-change
.FocusedApp                               property  u         0                       emits-change
.FocusedAppGfx                            property  u         0                       emits-change
.FocusedWindow                            property  u         4194306                 emits-change
.FpsLimit                                 property  u         0                       emits-change writable
.OverlayFocused                           property  b         false                   emits-change
.BaselayerWindowUpdated                   signal    -         -                       -

Testing

When Gamescope DBus is running, you can test setting properties with:

busctl --user set-property org.shadowblip.Gamescope /org/shadowblip/Gamescope/XWayland0 org.shadowblip.Gamescope.XWayland.Primary BlurMode "u" 2

License

Gamescope DBus is licensed under THE GNU GPLv3+. See LICENSE for details.