Skip to content

Empty gaps in the window watcher and journal flooded with errors #67

@onyx-tty

Description

@onyx-tty

As the title says, the window watcher reports gaps in focus where there should be none.
The gaps can be seen here, in the right part of the image. Firefox was consistently focused but the program reported gaps:

Image

Logs

As for the flooding of the journal:

Feb 12 20:09:02 aw-qt[1705]: 2026-02-12 20:09:02 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:09:05 aw-qt[1711]: [2026-02-12 19:09:05.695156 ERROR watchers::watchers::wl_foreign_toplevel_management] Window is not found: zwlr_foreign_toplevel_handle_v1@4278190136
Feb 12 20:09:05 aw-qt[1711]: [2026-02-12 19:09:05.695194 ERROR watchers::watchers::wl_foreign_toplevel_management] Window is not found: zwlr_foreign_toplevel_handle_v1@4278190136
Feb 12 20:09:15 aw-qt[1711]: [2026-02-12 19:09:15.331247 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:09:16 aw-qt[1705]: 2026-02-12 20:09:16 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:09:18 aw-qt[1711]: [2026-02-12 19:09:18.367278 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:09:19 aw-qt[1705]: 2026-02-12 20:09:19 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:10:00 aw-qt[1711]: [2026-02-12 19:10:00.825021 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:10:01 aw-qt[1705]: 2026-02-12 20:10:01 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:10:46 aw-qt[1711]: [2026-02-12 19:10:46.576193 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:10:47 aw-qt[1705]: 2026-02-12 20:10:47 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:11:12 aw-qt[1711]: [2026-02-12 19:11:12.494811 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:11:13 aw-qt[1705]: 2026-02-12 20:11:13 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:11:16 aw-qt[1705]: 2026-02-12 20:11:16 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:11:42 aw-qt[1711]: [2026-02-12 19:11:42.648198 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:11:43 aw-qt[1705]: 2026-02-12 20:11:43 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:11:47 aw-qt[1711]: [2026-02-12 19:11:47.654088 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:11:48 aw-qt[1705]: 2026-02-12 20:11:48 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:12:13 aw-qt[1711]: [2026-02-12 19:12:13.714608 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:12:14 aw-qt[1705]: 2026-02-12 20:12:14 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:12:39 aw-qt[1711]: [2026-02-12 19:12:39.781526 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:13:24 aw-qt[1711]: [2026-02-12 19:13:24.940895 ERROR watchers::watchers::wl_foreign_toplevel_management] Window is not found: zwlr_foreign_toplevel_handle_v1@4278190137
Feb 12 20:13:24 aw-qt[1711]: [2026-02-12 19:13:24.940920 ERROR watchers::watchers::wl_foreign_toplevel_management] Window is not found: zwlr_foreign_toplevel_handle_v1@4278190137
Feb 12 20:14:02 aw-qt[1711]: [2026-02-12 19:14:02.369962 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:14:03 aw-qt[1705]: 2026-02-12 20:14:03 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:14:37 aw-qt[1711]: [2026-02-12 19:14:37.416927 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:14:38 aw-qt[1705]: 2026-02-12 20:14:38 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:14:42 aw-qt[1711]: [2026-02-12 19:14:42.317985 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:14:43 aw-qt[1705]: 2026-02-12 20:14:43 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:14:47 aw-qt[1711]: [2026-02-12 19:14:47.234275 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:14:48 aw-qt[1705]: 2026-02-12 20:14:48 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:14:52 aw-qt[1711]: [2026-02-12 19:14:52.214202 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:14:53 aw-qt[1705]: 2026-02-12 20:14:53 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:14:57 aw-qt[1711]: [2026-02-12 19:14:57.164266 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:14:58 aw-qt[1705]: 2026-02-12 20:14:58 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:15:02 aw-qt[1711]: [2026-02-12 19:15:02.117273 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:15:03 aw-qt[1705]: 2026-02-12 20:15:03 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:15:20 aw-qt[1711]: [2026-02-12 19:15:20.883057 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:15:21 aw-qt[1705]: 2026-02-12 20:15:21 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:15:25 aw-qt[1711]: [2026-02-12 19:15:25.880197 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:15:26 aw-qt[1705]: 2026-02-12 20:15:26 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)
Feb 12 20:15:36 aw-qt[1711]: [2026-02-12 19:15:36.645272 ERROR watchers::watchers] Timeout on active window iteration after 1s

I was able to isolate some of these errors by using journalctl -f.
This one appears when no windows are present on screen:

Feb 12 20:31:36 aw-qt[1711]: [2026-02-12 19:31:36.776704 ERROR watchers::watchers::wl_foreign_toplevel_management] Window is not found: zwlr_foreign_toplevel_handle_v1@4278190083

I'm not sure about these, but they seem to appear even if I've been focusing on one window for a few minutes:

Feb 12 20:24:05 aw-qt[1711]: [2026-02-12 19:24:05.718530 ERROR watchers::watchers] Timeout on active window iteration after 1s
Feb 12 20:24:06 aw-qt[1705]: 2026-02-12 20:24:06 [INFO ]: Received heartbeat after pulse window, inserting as new event. (bucket: aw-watcher-window_Hostname)  (aw_server.api:317)

Config

# The commented values are the defaults on the file creation
[server]
host = "127.0.0.1"
port = 5600

[awatcher]
idle-timeout-seconds=180
poll-time-idle-seconds=4
poll-time-window-seconds=1

Context

The problem became apparent to me after installing and using UWSM, so I imagine it's just the program's regular output and only happens to be in the journal because of UWSM.

System information

OS: Arch Linux
Kernel: linux-zen 6.18.9.zen1-2
WM: hyprland 0.53.3-2
ActivityWatch: activitywatch-bin 0.13.2-1, aw-awatcher 0.3.3-1
uwsm: uwsm 0.26.2-1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions