Here’s something I could use some help with… I haven’t spent a lot of time looking into things, but there doesn’t seem to be an easy solution.

The problem is about switching keyboard layouts in Windows Vista (older versions of Windows weren’t significantly different, AFAIK, but that’s what I’m using). Now I hear a lot of people go “hehe, he’s not aware of all the nifty shortcuts you can configure to switch layouts”… no, I am aware of them, but they don’t do what I want.

What I want is really very simple. I use the Dvorak keyboard layout on my laptop. When I’m using the built-in keyboard, I have the driver in Windows configured to “United States - Dvorak” to support this. I also have a United Kingdom layout configured as well as a Russian layout — I switch between those only rarely, when I need some special characters, and I just use the mouse to do it temporarily. No problem there.

Now I also have an external keyboard that has Dvorak built in. I plug it into my laptop and want to start using it. No chance! What I need to do is switch the laptop to a US layout without Dvorak to make it compatible with the keyboard, but it doesn’t appear to be possible to do this in exactly the right way. I can use the mouse/keyboard shortcut way that the keyboard toolbar supports, but that applies only to the current application. It’s possible to switch the default layout as well, but that’s cumbersome to do (need to enter a dialog, set a default, hit okay — I haven’t found a way to replace this with a command line command so I could easily run it from Slickrun) and even worse, it still doesn’t apply to any of the apps that are already running!

So I find myself switching to the US layout for each app separately. Usually there are some that rarely require keyboard input, so even after working for quite a while, there’s still a combination of apps running that are configured for Dvorak in software and that are not. So when I unplug the external keyboard at some point, it’s chaos again — this is really a PITA to deal with. Does anybody know how I can reconfigure my keyboard layout for my current Windows session? It sounds like an extremely simple request… nice to have a per-app setting, but isn’t a per-session setting a much more natural thing? Is there really no solution?