Supported platforms
This page lists what the Desktop Agent can track today. Support means: the agent can resolve the focused application (name and, when possible, executable path) in a normal interactive session.
Operating systems
| OS | Status | How focus is read |
|---|---|---|
| Linux | Supported | Compositor-specific backends (see below) |
| Windows | Supported | Win32 GetForegroundWindow + process image path |
| macOS (Darwin) | Supported | AppleScript via System Events (osascript) |
The agent is a single Go codebase with build tags per OS. You need a binary built for the target GOOS/GOARCH.
Linux desktop environments and compositors
Linux support depends on the session type (Wayland vs X11) and the compositor. The agent tries backends in order and uses the first one that returns a focused window.
Fully supported
| Environment | Session | Backend | Notes |
|---|---|---|---|
| GNOME | Wayland / X11 | Built-in Shell extension over D-Bus; fallback xprop on X11 | Agent auto-installs the user extension and may restart GNOME Shell once |
| KDE Plasma | Wayland / X11 | KWin script over D-Bus; fallback xprop / xdotool on X11 | Agent auto-installs and enables the KWin script |
| Hyprland | Wayland | hyprctl activewindow -j | Needs hyprctl on PATH |
| Sway | Wayland | swaymsg -t get_tree (focused node) | Needs swaymsg on PATH |
| Generic X11 | X11 | xprop and/or xdotool | Works for many X11 DEs when those tools are installed |
Not supported / skipped
The following are not first-class targets right now. The agent does not ship a dedicated compositor helper for them. On pure Wayland they usually fail with:
no active window backend available for this desktop session
| Environment | Reason |
|---|---|
| XFCE | No dedicated Wayland/X11 helper; not validated |
| Cinnamon | Not validated; may work only if X11 + xdotool/xprop happen to work |
| MATE | Same as above |
| Budgie | Same as above |
| LXQt / LXDE | Same as above |
| Other wlroots compositors (besides Sway) | No generic wlroots backend yet |
| Headless / SSH-only sessions | No interactive focused window |
XFCE is intentionally out of scope for now. Do not expect reliable active-window tracking there, especially on Wayland. Prefer GNOME, KDE Plasma, Hyprland, or Sway if you need the agent.
Windows details
- Uses the foreground HWND, window title, and
QueryFullProcessImageNamefor the process path. - The background worker is started detached (new process group, hidden console window).
- Stop uses process termination after writing the disabled flag (Windows does not deliver Unix
SIGTERMto arbitrary processes).
macOS details
- Reads the frontmost process name and POSIX path through System Events.
- The first run may require granting Automation / Accessibility permissions to the terminal or to the agent binary in System Settings → Privacy & Security.
- Platform field reported to the API is
Darwin.
Quick self-check
After start + login:
./Analog-WakaTime-Agent status
tail -f logs/agent.log
Switch focus between two apps. Within a poll interval you should see activity flushing / syncing rather than repeated:
active window: no active window backend available for this desktop session
If that warning keeps appearing on Linux, open Linux desktops for GNOME/KDE helper setup, or confirm you are not on an unsupported DE such as XFCE.