<div dir="ltr"><div dir="ltr"><div>This is only indirectly related to XMonad...</div><div><br></div><div>For a while I've been using keynav to avoid reaching for the mouse for those few annoying circumstances which seemingly require a mouse.</div><div><br></div><div>I did find that keynav sometimes saved me some energy, but I only found it useful for simple clicks. It does not seem useful if you want to click and drag a region, for example.</div><div><br></div><div>Repeatedly bisecting the screen to narrow in on a point for the cursor is a fine approach and has some advantages, but I found myself wanting something more visceral: a little physics simulation to let me move the mouse around using the keyboard, like a video game.</div><div><br></div><div>So I put this little utility together, in C++, and I have a keybinding spawn it from xmonad.</div><div><br></div><div>It was an interesting challenge to make it single-threaded and still simultaneously run the physics loop, poll for X events, and send fake mouse events with XTest. I ended up designing it around channels (as in CSP) using boost::fiber.</div><div><br></div><div>I hope someone finds it useful or entertaining! I had fun writing it.</div><div><br></div><div><a href="https://github.com/blak3mill3r/mouser">https://github.com/blak3mill3r/mouser</a></div><div><br></div></div></div>