A week or so ago Rob Conery proposed that we should make November 24th the “International Mouse Freedom Day”. I’ve often felt that I could use my tools (Visual Studio etc) more effortlessly and efficiently if I could learn to use them with the keyboard to a higher degree. So I decided to join Rob and on Wednesday morning last week I pulled out my mouse from my computer.
It actually went surprisingly well for the first couple of hours. I did however find myself instinctively using the mouse a lot and a couple of times I even thought my computer had frozen when I was unable to deactivate the screen saver using the mouse. But navigating Visual Studio, Firefox, Outlook, my text editor etc really wasn’t that hard and I learnt a lot of useful keyboard shortcuts in the process.
However, after a couple of hours the task I was working on shifted in nature and I needed to navigate a complex web interface which proved to be really hard using the keyboard. I recalled a tip I had gotten from Marcus Ahnve about a Firefox plugin called Pentadactyl that is supposed to make Firefox more keyboard accessible by allowing its users to control Firefox using Vim-like commands. That sounded good in theory but as I’ve hardly ever used Vim it really didn’t work out for me.
While I think learning Pentadactyl or something similar is an interesting option for the future I felt so handicapped by not being able to use the mouse when navigating the web UI that it severely hampered my productivity. Not to mention that it made me really frustrated. So I plugged the mouse back in.
Ever since then I’ve been back to my old (bad) habits of using the mouse to much. It’s simply so easy to just grab the mouse whenever I don’t know the keyboard shortcut that I should use. If only there was a way to discourage myself from using the mouse while still leaving it possible to do so.
Being a developer I of course decided to try to solve my problems using code and during the weekend I tossed together the first version of a WPF application called Mouse Nag.
Mouse Nag listens to keyboard and mouse events globally and whenever you start using the mouse after having used the keyboard a full screen window pops up to annoy you.
You are welcome to grab the compiled executable or download the source code from GitHub.
I have no idea whether this “solution” will work for me or not but I plan to try it out for a couple of days at work. If it does it would be interesting to track and display the total time spent using the mouse and the total time spent using the keyboard as well as the keyboard/mouse ratio. It might also be a good idea to add other ways to annoy me, possibly forcing me to type in one of a number of useful keyboard shortcuts for practice whenever I try to use the mouse.
PS. For updates about new posts, sites I find useful and the occasional rant you can follow me on Twitter. You are also most welcome to subscribe to the RSS-feed.
This blog is built with EPiServer Community, EPiServer CMS, ASP.NET MVC and a bunch of other great products. The source code is available for download at the projects page, where you also can read more about this site and my other projects.
read more
Comments
Ian 1 years ago
Nice, we should delete all mouses, Lets go back to the command prompt.
Daniel Berg 1 years ago
Haha. That is just too cool. Great work, Joel.
I wonder how the stress levels will be affected with Mouse Nag?
I'll be sure to follow your progress!
Deniz Dogan 1 years ago
To make it possible to navigate web pages in Firefox, you can hit ', i.e., the apostrophe key which acts exactly like Ctrl+F but only for hyperlinks. It is surprisingly simple and doesn't require any addons.
Unfortunately it only works in Firefox and not Chrome.
Joel Abrahamsson 1 years ago
That's an extremely useful tip Deniz, thanks!
Chris 1 years ago
It's interesting that your mouse nag window has a close button - surely it should have a keyboard short cut that's a little obscure to really remind you to use your keyboard and not use the mouse! (also disable the default alt+f4 shortcut for good measure!)
Nice idea, love it.
Joel Abrahamsson 1 years ago
Hehe, well sometimes I actually do have to continue to use the mouse so therefore the button is required. It is selected by default though so if you move the mouse, regret it and go back to the keyboard you can just hit enter to close it.
I definitely would like to be able to crank up the annoyance level though, making it harder to close the window :)
seth 1 years ago
Interesting idea. I may give this a shot when doing coding on my own time and occasionally at work. Purchasing a copy of Resharper was a huge step forward for speed improvements in Visual Studio for me, but I could definitely use some motivation to learn more of the features it and VS 2010 provide.
Its funny how reliant we all seem to be on the mouse in IDEs like visual studio for .Net based development, but I'm perfectly happy to use command line editors like vim for ruby.