I've created a small and highly annoying tool for training my self to use the keyboard more. You're welcome to download it and become annoyed.
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.
Navigating web pages with the keyboard is hard
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.
Introducing Mouse Nag
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.
Ideas for the future
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.
- Learning Scala part two – Installation and tools
- Øredev impressions and insights
- Manage multiple web.config files using Phantom
- Detecting mouse and keyboard input with .NET
- Select columns of text in Visual Studio
- Using MSpec – a few weeks in
- Web testing with Selenium and xUnit.net
- A simple example of the Open/Closed Principle