55

I'm searching for a solution to switch my keyboard layout in Windows globally for all windows quickly.

When I switch the current layout by pressing the magic combination Alt+Shift or when I choose another layout in the language bar, this only changes the layout in the current window.

chicks
  • 590

9 Answers9

24

I'm a bit late to this, but interested parties may like my (free) kbswitch app. Switch keyboard layouts in Windows globally. I use it all the time, and I think it's awesome. (Some might say I'm biased; I'd argue that I just worked out what would be awesome, and then wrote the program that did that, so it would be odd if I thought otherwise.)

http://www.tomseddon.plus.com/kbswitch/

I use it for switching between Dvorak (when I'm using a split keyboard) and QWERTY (when I'm using an unsplit keyboard). By doing this I keep the muscle memory for both layouts separate. Stops my fingers getting too confused.

POSTSCRIPT: If you're feeling daring, and/or you use Windows 7 x64, you might like to try the experimental kbswitch2 (link is to the README). In addition to broader compatibility, this features command line support, so it can be integrated with AutoHotkey (or similar) for keyboard-controlled layout switching. Due to its experimental nature, it's so far only available via GitHub, so, with apologies for the slightly ropey delivery method: visit the kbswitch project page, use the GitHub Download ZIP button to get a ZIP, and find kbswitch2.exe in the kbswitch-master/kbswitch2/bin/ folder inside the ZIP.

20

Windows 8 supports this out-of-the-box. It seems to have very good built-in keyboard layout switching functionality with the following features:

  • Switches layout globally by default. (This can be changed if necessary.)
  • Has a built in shortcut key to change layouts: Windows+Space. This also triggers a useful notification window. (This is like a keyboard layout version of Alt+Tab.)
  • Shows you the current keyboard layout in the language bar icon.

I put up with the keyboard layout problems with previous versions of Windows for a long time, and I tried all of the programs mentioned in other answers, but I never found one that solved the problem reliably. I can confidently say that Windows 8 solves the problem.

Update

After spending a couple of weeks using Windows 8, I noticed that the keyboard layout seemed to intermittently be changing to a non-default one during normal use. It turned out that the problem was caused by the intrusive legacy Ctrl+Shift and Alt+Shift shortcuts. To fix this, do the following:

  1. Open the Language control panel item.
  2. Go to Advanced Settings on the left side.
  3. Go to Change language bar hot keys.
  4. Go to Change key sequence....
  5. Unassign the shortcuts you don't want.
Sam
  • 1,476
6

Use Keyla. It supports global layout and it switches between layouts miles quicker!

I installed it on everyone's computer once I had the chance :)

antitoxic
  • 179
5

Try Switch It!. It is a Russian program with an optional English interface; it works on Vista and Windows 7. Just keep pressing "Next" to install. After installation, in Properties (first item in the menu), check "Use English as a user interface language" and "Set active layout systemwide".


Edit: The above link goes to a Google translation page. This post originally linked to this Russian page.

1

One of my workmates has a custom layout created with the Microsoft Keyboard Layout Editor which has different caps lock/shift behaviour: if caps lock is on, it's a Dvorak layout, and if caps lock is off, it's QWERTY. Since caps lock is a global setting, hitting caps lock toggles between the layouts globally.

This is a horrible hack, it means you can't use your caps lock key normally, some programs use only the caps lock-off button for modified commands (e.g. Ctrl+C), and you can only use this with at most two layouts.

But, for all those disadvantages, it is a method of quickly changing globally between two different keyboard layouts.

Another option is to get a hardware converter/hardwired keyboard in the other layouts you want, and have multiple keyboards on your desktop, one for each language. That has its own set of disadvantages, though, namely having multiple keyboards on your desk and being at the whims of the (usually fairly limited) hardware rewiring.

me_and
  • 2,267
1

I guess remembering layouts per window is a "feature". I have wondered about how to do this myself and it appears that one way to do this is by changing the default input language.

However changing the default input language involves a gazillion steps -

Start -> control panel -> regional and language settions -> second tab -> Details -> change default -> Ok -> Ok -> Close windows

(In windows xp). By no means "quick" :) But the only way I can think of.

alok
  • 418
0

Edit: Based on your comment this won't work for you. But it does solve a problem if your keyboard regional settings don't match your primary typnig language.

Use the language bar to hotswap between layouts.

But perhaps the "easiest" solution is to delete any other keyboard lay-out from your Language settings, since then it won't switch back anymore. It seems that even though you turn off the automatic language recognition, some applications will overwrite this and keep changing it (like browsers). Therefore simply turning them off (you can always put them back) is the easiest way.

To show the Language bar (using Classic view in Control Panel):

  • Click Start, click Control Panel, and then double-click Regional and Language Options.
  • On the Languages tab, under Text services and input languages, click Details.
  • Under Preferences, click Language Bar.
  • Select the Show the Language bar on the desktop check box.

Notes:

  • The Language bar is displayed automatically if you install a text service such as handwriting, speech, or an Input Method Editor (IME). However, if you close the Language bar, you can use this procedure to redisplay it.
  • If you minimized the Language bar to the taskbar, click the Language icon on the taskbar, and then click Show the Language bar.
  • After the Language bar is displayed, you can right-click it to display a shortcut menu. Use this menu to change settings for the Language bar, such as docking it on the taskbar or adding text labels.
Ivo Flipse
  • 24,894
0

If you go to Control Panel / Regional and Language Options / Languages / Details / Key Settings", you can define hotkeys for language changes.

You may couple this with a macro language like AutoHotkey, to define a macro that changes the language / keyboard layout for all windows.

harrymc
  • 498,455
-2

Your best option really is to only have ONE layout, how horrible it may sound...

Windows has never been good at handling multiple layouts, and will always try to keep a per-window setting - and even that fails regularly. I've suffered from this too, and the only workable solution is to choose only one and live with that.

I'm a Dane living in Austria and writing English; I chose to only use Danish layout because that's better than having to fix all the layout switching problems all the time.