Hi Andreas,
I’ve been struggling with a weird issue on my MacBook Pro M1 Max lately. Every 4 seconds, I get a noticeable system-wide lag that lasts for a fraction of a second. It makes moving windows or scrolling very choppy ( https://youtu.be/O5uidUf60E0 ) After some testing, I confirmed that the lag stops immediately as soon as I quit BetterTouchTool.
I looked into the macOS Console logs, and it seems BTT is hitting a loop, requesting window images (SLSWindowListCreateImageFromArray) dozens of times per second, which seems to be choking the WindowServer.
I recently set up an async webserver on an ESP32-S3 with 7 physical buttons. I enabled the built-in webserver in BTT to use these buttons as shortcuts (similar to a DIY Stream Deck). I also have some Floating Menus configured. Interestingly, even if I disable the BTT webserver, the lag and the polling loop persist.
Here are the relevant snippets from my Console:
Repetitive Window Image Requests:
Plaintextdefault 11:47:09.960891 BetterTouchTool [INFO] SLSWindowListCreateImageFromArrayProxying_block_invoke:244 request: <private>, error: (null), output: <private> default 11:47:10.026366 BetterTouchTool [INFO] SLSWindowListCreateImageFromArrayProxying_block_invoke:244 request: <private>, error: (null), output: <private>
RunningBoard Entitlement Errors:
Plaintexterror 11:47:13.013446 runningboardd [app<application.com.hegenberg.BetterTouchTool...]: client not entitled to get limitationsForInstance: <Error Domain=RBSServiceErrorDomain Code=1 "Client not entitled" UserInfo={RBSEntitlement=com.apple.runningboard.process-state, ...}>
WindowServer struggling with the load:
Plaintexterror 11:47:20.412250 WindowServer Clearing datagram buffer for cid 0xd8803. Client state: Data count: 16616 connectionIsUnresponsive: 0 clientMayIgnoreEvents: 1 clientIsSuspended: 0
Do you have any idea what might be triggering this intense polling loop? Could it be related to how Floating Menus handle window previews or app icons?
I’m on the latest macOS and BTT versions is 246. Let me know if you need a full diagnostic export!
