But I have a problem. I almost always use the left Shift key, even if the right Shift key would be better (same for Ctrl).

What I'm searching for is an application that blocks (and possible notifies) the wrong Shift key.

E.g.: I want to type a uppercase "W", "$", "!" ... and use the left Shift key, the result should be "w", "4", "1" ... and maybe a flash on the screen (that left Shift was blocked, because I should have used the right Shift key).

On a related note, you might look into Plover, at two levels. 1) Just using it may be something you'd be interested in for the typing speed increase, and 2) if you need to implement app you want, the Linux and Windows implementations may prove helpful.
–
retracileAug 9 '12 at 14:14

It may be a tedious process, but I'm sure you could develop an AutoHotkey script to help you practice this in Windows.

AutoHotkey has a function called GetKeyState which you could use to check if LShift or RShift is down. Inside the conditional block, you can define what is done if a bad key is pressed (popup dialog, send the character unshifted, do nothing, etc). I am not sure if AHK scripts can have arrays/lists in them, so you may need to write the logic code and then duplicate it for each key, but you can do it all with relative ease.

AutoHotkey is Windows only, so unfortunately you can't use it on a GNU/Linux box, but you could set this up for a training exercise, practice on Windows until it's habit, and be good to go.

Make it right before you make it fast. Slow down and use an existing typing program to train the proper touch typing technique or do your day to day work, it does not matter. Just make sure you type with the correct Shift key every time. Once you get comfortable you can slowly increase your speed.

Once you realize that you fall back into old habits just slow down again.

There is not easy way to get rid of bad habits, you have to substitute them with good ones and this takes time.

So to go back a step - rather than making sure you use the 'correct' shift key - let's get you to a point where you use the right-shift often enought that it's natural to consider (I almost never use right-shift so I'm right there with you.

The simplest solution to me was a straightforward mechanical one - I put a dirty great lump of blue-tac on the left shift key and now it's slightly odd to press - so I'm using only the right shift key (makes 'I'm' fairly strange to type, particularly, with the ' keys around it) After a couple of days of this, I suspect that I'll be able to switch back and find the right shift key gets more use...

For those attempting this on linux (or anything with xmodmap, paste this code into your ~/.Xmodmap file and run xmodmap ~/.Xmodmap.

This will clobber your alt-gr mappings, but if you're not using the alt-gr key or don't know what it is then this will work. Fork the gist if you have anything you want to add. It works by changing one of your shift keys to alt-gr and mapping keys on one half of the board exclusively to the modified key.