A method exists.
The project has a backend for detecting the active window. A package or a companion extension may still be required.
PRACTICAL GUIDE / COMPATIBILITY
This page helps you check whether geetRPCS-linux can identify the window or game you are using. Pick your environment, read its status, and follow any installation guidance.
READ THIS BEFORE CARRYING ON
The statuses below are about active window detection: how geetRPCS-linux knows which game or software is in the foreground. On their own, they do not mean that Discord is connected, nor that the software's icon will appear in your panel.
For everything to work, you also need a Discord client compatible with Rich Presence and, if you want the tray icon, a panel compatible with StatusNotifierItem.
QUICK TEST · 5 QUESTIONS
Answer according to your setup: the questionnaire tells you whether detection is supported, what needs to be installed, and which issues to anticipate. It works without JavaScript and collects nothing.
YOUR FIRST STEP
The name of your desktop is not always enough: GNOME, KDE Plasma, or a window manager can run with Wayland or X11.
Open a terminal and run:
echo "$XDG_SESSION_TYPE"
The command usually prints wayland or x11. You can also check the session information in the system settings or on your distribution's login screen.
UNDERSTANDING THE STATUSES
A status indicates the level of detection support, based on the documentation and the mechanisms present in version v0.4.3.
The project has a backend for detecting the active window. A package or a companion extension may still be required.
Detection relies on a specific configuration or a fallback mechanism. It can be incomplete depending on the applications.
The environment is not documented in the matrix. That does not mean it is incompatible.
Not supported: this label is reserved for environments explicitly declared incompatible. No specific environment is marked this way in the provided v0.4.3 documentation.
01 — WAYLAND
Wayland is the display system used by many recent Linux sessions. The project does not rely on a single method: some desktops need their own companion.
Detection uses a protocol shared by these compositors. The software can retrieve the active window's information without an extension specific to each desktop.
For Wayfire, the foreign-toplevel plugin must be enabled. Sway, Hyprland, and labwc use the corresponding backend when it is available.
In ~/.config/wayfire.ini, add foreign-toplevel to the existing plugin list of the [core] section, then restart Wayfire. Don't replace your entire plugin list with a minimal example.
GNOME uses Mutter, which does not expose the wlroots protocol. geetRPCS-linux therefore relies on a small GNOME Shell extension to report the active window.
The geetRPCS Window Tracker extension must be installed and enabled. Version v0.4.3 declares GNOME Shell 45 to 51. The main installer attempts to install it automatically when the necessary GNOME tools are available.
Wayland desktops do not all give access to the same window information. The GNOME companion locally passes the identifier and title of the focused window to the geetRPCS-linux process.
On Plasma Wayland, a companion KWin script reports the focused window to the software through a local D-Bus bridge.
The geetrpcsWindowTracker script must be deployed. The installer sets it up automatically when it is run from a compatible KDE session.
KWin does not provide the wlroots protocol used by Sway or Hyprland. The companion script therefore passes the window information to geetRPCS-linux through the mechanism provided for in the project.
02 — X11 / XORG
X11 (often called Xorg) is another display system, still used by several Linux environments and window managers.
The software uses xprop to ask X11 which window is active, then retrieves its identifier and information.
The package that provides xprop must be installed. On Arch Linux, it is xorg-xprop; on many Debian/Ubuntu distributions, it is provided by x11-utils.
xprop is a small command-line tool for reading the properties of X11 windows. geetRPCS-linux uses it to identify the active window; it is not a desktop extension.
03 — WAYLAND: SPECIAL CASES
These environments do not have an equally direct integration. Detection requires an external tool or is limited to windows accessible through X11/XWayland.
A temporary status file can provide geetRPCS-linux with the identifier and title of the active window. The software does not fetch them on its own: an external tool must produce this information.
This method is aimed at advanced users able to configure their own window tracking tool.
The file to update is $XDG_RUNTIME_DIR/geetrpcs-linux/active-window.json. It must contain the app_id, title, and updated_at fields (Unix timestamp in seconds). The file must be refreshed before its content expires, that is, every 6 seconds.
{
"app_id": "org.example.Application",
"title": "Window title",
"updated_at": 1794067200
}The updated_at value above is a format example: your tool must generate the current time on each update.
In the absence of a native backend, geetRPCS-linux can use its X11/XWayland fallback. Not all native Wayland windows can be tracked this way.
Applications accessible through X11 or XWayland can be detected. Native Wayland windows do not come with this guarantee.
04 — NOTIFICATION AREA ICON
Detection tells the software which window is active. The tray (the small icon near the clock) depends on your desktop's panel. geetRPCS-linux uses the StatusNotifierItem protocol: the panel must therefore have a compatible host to display the icon.
On GNOME Shell, an AppIndicator/StatusNotifierItem compatible host or extension may be necessary. Budgie Panel and the Wayfire panels must also have a suitable StatusNotifier applet.
If no tray host is available, the GTK interface remains usable; the software provides a fallback mode with its main window.
05 — DISCORD CLIENT
Even if the window is correctly detected, the presence can only appear if geetRPCS-linux can reach a compatible Discord client and has a usable Discord Application ID.
The Linux client uses its local IPC socket. Launch Discord before checking the connection status.
Open Vesktop's settings and enable Enable Rich Presence via arRPC. Vesktop already ships with the arRPC server.
The sandbox may block access to the host's socket. A native installation is recommended; see the Vesktop documentation if you keep the Flatpak.
06 — UNLISTED ENVIRONMENTS
UnverifiedThat isn't necessarily a problem. It simply means that support is not described in the v0.4.3 documentation used for this page. The desktop may work through one of the existing mechanisms, but it should not be considered confirmed without testing.
No specific environment is explicitly declared “not supported” in this documentation. The matrix deliberately distinguishes “unverified” from “incompatible”.
07 — A SHORT GLOSSARY
A few technical words appear in the cards. Here is what they mean, without getting into implementation details.
A modern display system used by many Linux desktops. It protects information between applications more strictly; detection methods therefore differ from one desktop to another.
An older display system, still widely used. It offers a way of reading the active window that geetRPCS-linux uses.
The technical method the software uses to obtain the name or identifier of the active window in a given session.
A small module added to the desktop (for example GNOME Shell or KWin) to pass the software information that the display system does not provide to it directly.
A compatibility layer that lets some applications designed for X11 run in a Wayland session.
A protocol that lets an application display its icon and menu in the notification area of a compatible Linux panel.
DOCUMENTATION BASE: v0.4.3
Head back to the project overview to understand its features, its requirements, and its current limitations.