Description
The current tracking implementation relies on X11-based utilities (xprop, xdotool, wmctrl) for its wayland-generic fallback. On GNOME Wayland, these tools can only detect applications running via XWayland. Native Wayland applications (which is the default for Firefox, Terminal, and most core apps on modern distros like Fedora and Ubuntu) are not tracked, resulting in 0 recorded time.
Root Cause
GNOME Wayland restricts global window state access for security. The standard X11 "active window" properties are not populated for native Wayland surfaces, so the current GenericWaylandManager fails to identify them.
Suggested Solution
Mono needs a dedicated GnomeManager that uses Wayland-native methods to fetch the active window. Potential paths include:
- DBus Introspection: Using org.gnome.Shell.Introspect (requires handling permissions).
- GNOME Extension Helper: Providing a small companion extension (like "Window Calls") that exposes the active window title/class over DBus.
- Portal Integration: Investigating if XDG Portals can provide this info without compromising security.
Environment:
- OS: Linux (e.g., Fedora 44, Ubuntu 24.04)
- Desktop Environment: GNOME (Wayland)
- Mono Version: v0.2.0
Description
The current tracking implementation relies on X11-based utilities (xprop, xdotool, wmctrl) for its wayland-generic fallback. On GNOME Wayland, these tools can only detect applications running via XWayland. Native Wayland applications (which is the default for Firefox, Terminal, and most core apps on modern distros like Fedora and Ubuntu) are not tracked, resulting in 0 recorded time.
Root Cause
GNOME Wayland restricts global window state access for security. The standard X11 "active window" properties are not populated for native Wayland surfaces, so the current GenericWaylandManager fails to identify them.
Suggested Solution
Mono needs a dedicated GnomeManager that uses Wayland-native methods to fetch the active window. Potential paths include:
Environment: