Skip to content

ShadowBlip/gamescope-dbus

Repository files navigation


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 set-property org.shadowblip.Gamescope /org/shadowblip/Gamescope/XWayland0 org.shadowblip.Gamescope.Primary BlurMode "u" 2

License

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

About

Daemon for interacting with Gamescope over DBus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •