User Story: As a Windows 7 user of an IntelliPoint mouse I want to switch from left-handed to right-handed (and vice-versa) with a single double click.
The Old Way
I have a really nice mouse, but it uses IntelliPoint… ok, that’s fine. But at home I use the mouse left handed while at work (or on the road) I use it right handed. Here’s what it looks like to switch the keys between locations:
I’m starting as a Right Handed user…
1) Double click to open the IntelliPoint mouse
On my desktop I have a shortcut that looks like this:
When I double click that I get this dialog box:
Now Dell (bless their hearts) felt that they needed a front row seat, so it pauses for about 2 seconds (even on my very fast machine) before the Buttons tab (that’s the one I need) takes a back seat to the Dell Touchpad tab..
2) Select the Buttons tab
On to click number 2… I select the Buttons tab with looks like this:
Now before IntelliPoint came along, there was a nice little "Switch Mouse Buttons" checkbox… check it (when going from Right to Left) and then click OK, and I’m done… But IntelliPoint came along (and added a feature I like – the magnifier)…
3 and 4) Change the Left button
Now I change the left button to read Right-click (pretty easy)
5, 6, 7) Change the Right button
That’s not so easy. The option I want is out of view. I need to select the dropdown list (click 5), then use the scroll bar to move up to the option I want (click 6), then select it (click 7).
After steps 3 and 4 I have this:
8) Finally, Click OK
Now I can click OK. Going the other direction the "Restore Defaults" button makes my life MUCH easier… It’s only 4 clicks. (Double Clicks only count as 1 click for this post).
I’m not happy with that, so I’m going to see if I can change the way I switch hands with my mouse. Here goes…
A Coding Project
5:45 pm – Create a C# class library project in Visual Studio 2010 with the intent of changing the registry keys. I was able to use WinDiff and see what registry keys were changing when I’d do this. I want this to be generic, so I’ll create a project that will read the keys from the app.config file and let others change that without needing to write code. Since I’m using TDD (Test Driven Development – in the event you’ve been listening to your iPod rather than what I say…) I’ll start with some tests:
- Can_Read_Left_Mouse_Registry_Key_From_Config_File
- Can_Read_Right_Mouse_Registry_Key_From_Config_File
- Can_Read_Left_Button_Value_For_LeftHanded_Mouse
- Can_Read_Right_Button_Value_For_LeftHanded_Mouse
- Can_Read_Left_Button_Value_For_RightHanded_Mouse
- Can_Read_Right_Button_Value_For_RightHanded_Mouse
- Can_Determine_Current_Configuration (Is the current config Right-Handed or Left-Handed?)
- Can_Change_Current_Configuration
I’ve actually typed the titles of these tests in this blog post before I even type them into Visual Studio. Seems pretty simple. Let’s see how it goes.
Side Note: I saved the registry items for the Computer\HKEY_CURRENT_USER using the Export. Once for the left configuration, again for the right configuration. Then I used WinDiff to find out what keys were being changed.
8:15 pm – Ta Da. 100{f073afa9b3cad59b43edffc8236236232bb532d50165f68f2787a3c583ed137f} code coverage. Very little code. I can close the user story. Story Points? I’d give it a 2.
The New Way
1) Double Click the MouseSwitcher:
Done!
Cost Benefit Analysis
150 min to create the MouseSwitcher. I timed the switches. To go from right to left is 20 seconds, from left to right 7 seconds. In both cases, gated mainly by waiting for the Dell application to take the front row seat. I’ll round to 30 seconds each day. The MouseSwitcher takes less than 1 second.
That means that in about a year I will save enough time to make up for the development "cost". Of course I learned a lot too.
No frustration (particularly when my wife walks in the room after I had to do the 20 second switch)? Priceless!
Leave a Reply