PRACTICAL GUIDE / COMPATIBILITY

Will your Linux session
be detected?

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.

Supported Partial / manual Unverified
geetRPCS-linux logo
BUILT AROUND LINUX

READ THIS BEFORE CARRYING ON

What this page
actually checks.

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

Is my desktop
compatible?

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.

1 Which session are you using?
How do I find out my session?

In a terminal, run echo "$XDG_SESSION_TYPE": the answer is usually wayland or x11.

2 Which desktop or Wayland compositor?
2 Is the xprop tool installed?

Question 2: first identify your session with the command above (answer wayland or x11), then choose the matching option.

3 Which Discord client do you use?
4 Do you want the icon in the notification area (tray)?
5 Do you have a Discord Application ID?

YOUR RESULT

Compatible on paper.

Your session has a documented detection method and your Discord client is supported. All that's left is to go through the list below, then test with a real application.

Compatible, with a few adjustments.

A method exists for your setup, but a component or a setting must be put in place (extension, plugin, package, or Discord client configuration). Follow the list below.

Partial or manual compatibility.

Detection is not native for your session: it is limited to X11/XWayland windows or requires an external tool. Some windows may not be detected.

Identify your session first.

Without knowing whether you are on Wayland or X11, there is no way to point you to the right method. The command is given in the list below.

Answer the questions to get your verdict.

Questions 1, 2, and 3 are enough for a verdict; the rest refine the list of points to check.

ACTIVE WINDOW DETECTION

Waiting for your answers

Answer questions 1 and 2.

Supported

GNOME Wayland: extension required

GNOME does not expose the wlroots protocol. geetRPCS-linux relies on a small GNOME Shell extension, geetRPCS Window Tracker, to know the active window.

Supported

KDE Plasma Wayland: KWin script required

A companion KWin script, geetrpcsWindowTracker, passes the active window to the software through a local D-Bus bridge.

Supported

Wayfire: one plugin to enable

Detection goes through the protocol shared by wlroots compositors. For Wayfire, the foreign-toplevel plugin must be enabled.

Supported

Sway, Hyprland, labwc: native detection

Detection uses the wlroots protocol, with no extension specific to your desktop, when the corresponding backend is available.

Limited

X11 / XWayland fallback only

Without a native backend, the software can use its X11/XWayland fallback. X11 or XWayland applications can be detected; native Wayland windows are not guaranteed.

Manual

Detection to provide yourself

A status file can supply the active window, but an external tool must produce it: the software does not fetch it on its own. This route is aimed at advanced users.

Supported

X11: detection via xprop

The software uses xprop to ask X11 which window is active. No additional component is documented for your case.

To install

X11: install xprop first

Detection works through xprop, but the tool must be present on the machine. Once installed, your session is supported.

Needs verification

X11: check whether xprop is present

Detection works through xprop. Check that it is installed (see the list below): it is the only documented requirement for X11.

Unverified

Session to identify

There is no way to tell which detection method applies until you know your session. Run the command given above, then take the test again.

DISCORD CONNECTION

Waiting for your answers

Answer question 3.

Supported

Discord Desktop

The Linux client uses its local IPC socket. Launch Discord before checking the connection status.

Supported

Native Vesktop

Vesktop already ships with its own arRPC server. You only need to enable the Enable Rich Presence via arRPC option.

Setup required

Vesktop Flatpak

The sandbox may block access to the machine's IPC socket. A native installation is recommended; otherwise, extra permissions are needed.

Depends on the bridge

Discord Web and other clients

A compatible arRPC server must be available on the machine. Equicord and Vencord rely on the host Discord client.

TRAY ICON

Waiting for your answers

Answer question 4.

Needs verification

GNOME Shell

An AppIndicator / StatusNotifierItem compatible host or extension may be needed to display the icon.

Needs verification

Budgie or Wayfire panel

The panel must have a suitable StatusNotifier applet to display the icon.

Not documented

Other panel

This panel is not described in the v0.4.3 documentation. If the icon does not appear, the main window remains usable.

No concern

Icon not needed

The GTK interface remains fully usable without the notification area icon.

Points to check and possible issues

  • Identify your session

    In a terminal, run echo "$XDG_SESSION_TYPE". The answer is usually wayland or x11. Then take the test again.

  • Install and enable the GNOME Shell extension

    The geetRPCS Window Tracker extension must be installed and enabled. It is declared compatible with GNOME Shell 45 to 51: outside that range, compatibility is not claimed. The installer attempts to set it up automatically if the necessary GNOME tools are available.

  • Check that the KWin script is deployed

    The geetrpcsWindowTracker script must be present. The installer deploys it automatically when run from a compatible KDE session (Plasma 5.27 to 6.x): if you ran it from another session, check that it is actually there.

  • Enable the foreign-toplevel plugin

    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.

  • Nothing more to install for detection

    The wlroots backend is used when it is available. If detection does not react, check that your compositor does expose this protocol.

  • Expect incomplete detection

    Only windows accessible through X11 or XWayland can be tracked. A native Wayland application may not be recognized.

  • Plan for a window tracking tool

    It must update $XDG_RUNTIME_DIR/geetrpcs-linux/active-window.json with the app_id, title, and updated_at fields (Unix timestamp in seconds), at least every 6 seconds. The full format is detailed further down this page.

  • Install (or check) xprop

    On Arch Linux, the package is xorg-xprop; on many Debian/Ubuntu distributions, it is provided by x11-utils. To find out whether it is present, run command -v xprop: a path is printed if it is installed.

  • Launch Discord before checking the connection

    The client must be running for the local IPC socket to be available.

  • Enable Rich Presence in Vesktop

    Open Vesktop's settings and enable Enable Rich Presence via arRPC. Don't add a second arRPC server: Vesktop already ships with its own.

  • The Flatpak may block the connection

    The sandbox may block access to the machine's IPC socket. A native installation is recommended; if you keep the Flatpak, you must grant it extra permissions (see Vesktop's documentation).

  • A compatible arRPC server is required

    Discord Web and the other clients need an arRPC bridge available on the machine. Equicord and Vencord rely on the host Discord client.

  • Check activity sharing in Discord

    In Discord's settings, the “Share your detected activities with others” setting must be enabled, otherwise your presence will not appear.

  • Fill in your Application ID

    Enter it as the global ID in the Discord tab of the interface, or as a per-application ID. Some catalog entries already have their own Client ID.

  • Create an application in the Discord Developer Portal

    A presence must be associated with a Discord application. Without a valid Application ID, geetRPCS-linux sends no presence for entries that do not have a dedicated Client ID.

  • Check the ID in the Discord tab

    A Discord Application ID is required to display a presence. If the Discord tab of the interface contains no global ID and the application has no dedicated Client ID, nothing will be sent.

  • Tray: plan for an AppIndicator extension

    On GNOME Shell, the icon may require an AppIndicator / StatusNotifierItem compatible host or extension.

  • Tray: add a StatusNotifier applet

    Budgie Panel and the Wayfire panels must have a suitable StatusNotifier applet.

  • Tray: not documented for this panel

    If the icon does not appear, it is not blocking: the software provides a fallback mode with its main window.

  • Privacy: unknown applications

    By default, a window missing from the catalog can be published through your global presence, title included, if an Application ID is available. Turn off “Also show apps missing from the catalog” in the Discord tab to treat them as AFK.

See all the cards

A guide, not a test of your machine. These results reflect the geetRPCS-linux v0.4.3 documentation: they do not guarantee problem-free operation, and no environment is explicitly declared “incompatible”. A session missing from the list is “unverified”, not “rejected”.

YOUR FIRST STEP

Which session are you using?

The name of your desktop is not always enough: GNOME, KDE Plasma, or a window manager can run with Wayland or X11.

How do I find out my session?

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

Three levels.
No false “yes”.

A status indicates the level of detection support, based on the documentation and the mechanisms present in version v0.4.3.

Supported

A method exists.

The project has a backend for detecting the active window. A package or a companion extension may still be required.

Partial / manual

Some intervention is needed.

Detection relies on a specific configuration or a fallback mechanism. It can be incomplete depending on the applications.

Unverified

Not enough information.

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

Supported.

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.

WAYLAND · WLROOTS Supported

Wayfire, Sway,
Hyprland, and labwc

Detection uses a protocol shared by these compositors. The software can retrieve the active window's information without an extension specific to each desktop.

What you need to check

For Wayfire, the foreign-toplevel plugin must be enabled. Sway, Hyprland, and labwc use the corresponding backend when it is available.

See the technical details for Wayfire

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.

WAYLAND · GNOME / MUTTER Supported

GNOME
Wayland

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.

What you need to check

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.

Why is an extension necessary?

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.

WAYLAND · KDE / KWIN Supported

KDE Plasma
5.27 to 6.x

On Plasma Wayland, a companion KWin script reports the focused window to the software through a local D-Bus bridge.

What you need to check

The geetrpcsWindowTracker script must be deployed. The installer sets it up automatically when it is run from a compatible KDE session.

Why a KWin companion?

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 sessions.

X11 (often called Xorg) is another display system, still used by several Linux environments and window managers.

X11 · XORG Supported

GNOME Xorg, XFCE, Cinnamon, i3, and other compatible X11 sessions

The software uses xprop to ask X11 which window is active, then retrieves its identifier and information.

What you need to check

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.

What is xprop for?

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

Partial or
manual configuration.

These environments do not have an equally direct integration. Detection requires an external tool or is limited to windows accessible through X11/XWayland.

WAYLAND · GENERIC BACKEND Manual

Weston, Enlightenment,
and other compositors

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.

Who is it for?

This method is aimed at advanced users able to configure their own window tracking tool.

See the expected format (advanced users)

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.

WAYLAND · X11 / XWAYLAND FALLBACK Limited

COSMIC and sessions
without a dedicated backend

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.

What this means

Applications accessible through X11 or XWayland can be detected. Native Wayland windows do not come with this guarantee.

04 — NOTIFICATION AREA ICON

Detection and the tray icon
are two different things.

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

Also check
your 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.

A

Discord Desktop

The Linux client uses its local IPC socket. Launch Discord before checking the connection status.

B

Native Vesktop

Open Vesktop's settings and enable Enable Rich Presence via arRPC. Vesktop already ships with the arRPC server.

C

Vesktop Flatpak

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

Unverified

Your environment isn't listed?

That 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

The terms
in plain language.

A few technical words appear in the cards. Here is what they mean, without getting into implementation details.

Wayland

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.

X11 / Xorg

An older display system, still widely used. It offers a way of reading the active window that geetRPCS-linux uses.

Backend

The technical method the software uses to obtain the name or identifier of the active window in a given session.

Extension / companion

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.

XWayland

A compatibility layer that lets some applications designed for X11 run in a Wayland session.

StatusNotifierItem (tray)

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

Is your environment
in the list?

Head back to the project overview to understand its features, its requirements, and its current limitations.

Explore the project