rvaiya / warpd

A modal keyboard-driven virtual pointer
MIT License
2.9k stars 131 forks source link

Hints mode fails after several-minute period #232

Open sachamasry opened 1 year ago

sachamasry commented 1 year ago

I'm using warpd—built from source: warpd v1.3.5-osx (built from: a33c400)—on macOS 12.6.2.

I've been using it constantly for months now, but only for quick jumps to a section, followed by an ESC key to close it. Recently, I have started using it much more intensively, keeping it open for longer periods (many minutes) while browsing, reading PDFs, etc.

While in normal mode, I have not noticed any problems, with decent responsiveness throughout. However, after more than a minute or two in normal mode, if I then activate hint mode (with 'x' or 'X'), nothing happens, and hints come on the screen with a rough delay of 1 second for each minute warpd has been active, i.e. if I've had warpd in normal mode for 4 minutes, it takes about 4 seconds to see the hint matrix drawn on screen.

That's not all. If I now try to get out of hint mode (pressing ESC), nothing happens for an indeterminate time, with the hints remaining drawn on screen. Only by pressing ESC a second time do they disappear.

I looked at htop output, and nothing seems to change. Using macOS' Activity Monitor, however, shows no CPU or memory spike, but if warpd was singled out as a process using the search, activating hint mode resets the search (process restarted?), after which point it is possible to find the warpd process again, with the same PID. For comparison, moving the cursor, using acceleration and deceleration modifiers, scrolling the screen, etc., do show a CPU spike up towards 35%.

Hints mode is important to quickly jump to another part of the screen, and this significant response delay forces some forward-thinking in either scrolling manually or deactivating normal mode and re-entering hint mode separately. Neither is ideal. Is there anything I can do to help debug this?

Also, an aside: I haven't been able to find anywhere in the documentation or in the --list-options a binding to switch to normal mode from hints mode, forcing me to deactivate warpd entirely (with ESC), and re-invoke it. Sometimes, I simply enter hint mode, only to realise that I don't actually need it and want to simply revert to normal mode quickly, while remaining in warpd. Is there a way to do this?

Thanks