New virtual X mouse tool

This is only indirectly related to XMonad... For a while I've been using keynav to avoid reaching for the mouse for those few annoying circumstances which seemingly require a mouse. 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. 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. So I put this little utility together, in C++, and I have a keybinding spawn it from xmonad. 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. I hope someone finds it useful or entertaining! I had fun writing it. https://github.com/blak3mill3r/mouser
participants (1)
-
Blake Miller