Switching keyboard layout in Windows globally

52

16

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.

Manuel Faux

Posted 2009-07-26T20:37:50.643

Reputation: 936

Do you still have to be able to switch to other languages? – Ivo Flipse – 2009-07-28T04:06:50.547

2Yes, I'm using two layouts. I'd like to use another layout to type texts than to use in the console and to code. – Manuel Faux – 2009-07-28T05:40:13.853

4I can't believe it took until Win8 to actually implement this natively. What a pain! – Levi Botelho – 2012-11-24T15:08:46.033

3Grr Windows, this behaviour would be much more useful than the current 'per window' madness. – Colonel Panic – 2013-02-04T18:14:58.157

Check a Registry solution that could be useful http://superuser.com/a/702101/60856

– Denja – 2014-01-16T11:09:02.397

Answers

19

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

Posted 2009-07-26T20:37:50.643

Reputation: 1 171

5this is not an answer to the question.. – Juan Manuel Villegas – 2014-08-06T17:35:02.953

@JuanManuelVillegas, how so? In my experience, this resolves the problem perfectly. – Sam – 2014-08-06T23:41:54.757

1@Sam he is asking for a fix for Windows 7, not 8! Thus this is not a solution. From the replies below, the only one that worked pretty well for me is Keyla app – Juan Manuel Villegas – 2014-08-15T14:06:45.073

@JuanManuelVillegas, why do you think the question is specific to Windows 7? I just checked the question and tags again and didn't see that requirement. – Sam – 2014-08-17T05:32:44.030

lol you are right, I must have inferred it from the comments. – Juan Manuel Villegas – 2014-08-19T18:05:59.050

Of course the question is for Windows 7 (and before); the question would not make any sense if it were for Windows 8. On the other hand, upgrading to Windows 8 is a (sledgehammer) solution. – MarcH – 2015-01-04T20:06:45.103

@MarcH, Windows 8 supports both the old and new styles of keyboard layout switching, so it's still a valid question in both cases. (Alt+Shift still does per-window switching in Windows 8. And it's not reasonable to assume all Windows 8 users know about this new feature and how to use it.) It'd definitely be better if we could find something that worked perfectly for Windows 7 as well, but I don't know of any such solution, so this is the best we've got in terms of a fully-working solution. – Sam – 2015-01-04T23:52:38.900

I also discovered this some days ago, the layout handling changed in a very good way. +1 for the Win+Space – Manuel Faux – 2012-11-11T09:10:39.393

1This would be a reason to upgrade to windows 8. – Automatico – 2014-02-27T15:05:48.183

22

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.

Tom Seddon

Posted 2009-07-26T20:37:50.643

Reputation: 660

great work! THIS is the real answer, not the accepted one. The accepted one focuses on Windows 8, while the questions is for 7. trivial.. – Juan Manuel Villegas – 2014-08-06T17:34:47.310

Does anyone know how to mix this solution with autohotkey to create a keyboard shortcut for this? can that be done? – Mike H-R – 2014-10-08T08:46:54.707

1@MikeH-R If you are still interested, there is a new (experimental) sequel to kbswitch, kbswitch2, featuring wider compatibility and AutoHotkey-friendly command line support. – Tom Seddon – 2014-12-13T01:30:20.527

Really good. I only miss being able to see the currently selected language in the tray icon, without having to hover the icon. – Jose Gómez – 2015-10-20T09:57:42.170

2Awesome. All I miss is a single hotkey for all this (like alt+shift. Maybe AutoHotkey can do this?) – Apache – 2010-08-17T05:27:45.557

Would you be able to get this to work for DOS prompts as well? :) – Josh Johnson – 2011-08-06T12:04:18.850

It already works for me for console windows on 32-bit Windows XP. I have had reports of problems with Windows 7 (not sure which bit-ness), which I haven't looked into yet. – Tom Seddon – 2011-08-09T22:16:23.277

2It looks great but I'm not even going to try it because having to move my mouse and click every time I want to change layouts is more work than having layout-per-application. Not supporting hotkeys is not a feature, it's a handicap. The ability to choose whether to support hotkeys would be a feature. Maybe you should consider adding this feature to try and win some more users, like me! :) – Fletch – 2013-01-08T11:18:14.250

Thanks Tom this is great. One thing, I'd love to be able to switch layouts from the keyboard (without the mouse) – Colonel Panic – 2013-02-04T11:44:42.513

Tom, this is so awesome I'm nearly speechless. Thank you very, very much. – Jens Bannmann – 2013-10-01T09:29:35.537

Thanks!, this is really helpful. I've only tested for a few minutes, but it seems to work fine under Windows 7 Pro, 64-bit – WiringHarness – 2014-03-25T16:48:27.507

5

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

Posted 2009-07-26T20:37:50.643

Reputation: 169

Keyla works for me but it seems it has to be run as Administrator – MarcH – 2015-06-30T17:28:55.060

it worked like a charm for me – Abdu – 2019-11-18T12:03:24.710

This one doesn't seem to work for some windows such as the "Run" window. I recommend people try SwitchIt! instead of this.

– Sam – 2012-09-22T01:46:05.170

Alas didn't work for me - the app installed but weirdly wasn't able to set shortcut to change layouts. – Colonel Panic – 2013-02-04T18:18:39.477

Keyla works for me on Win7. However @Sam comment for Windows7 is ace! Use it if you can. – antitoxic – 2013-04-03T19:13:41.263

Keyla didn't work isn't such a good and friendly application – Denja – 2014-01-16T10:51:34.190

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.

Denis

Posted 2009-07-26T20:37:50.643

Reputation:

Working fine for me in XP, too! – brone – 2010-02-11T00:06:23.770

This is the best option I've found for this problem. Unfortunately, I have found that sometimes it gets stuck and ceases to work. Sometimes when I type something, the first letter or so will be in the wrong keyboard layout. – Sam – 2012-09-22T01:47:39.303

I've actually found that the older (non-beta) versions of the program seem to not have the first problem I mentioned in the above comment. (The second problem is still applicable, however.) – Sam – 2013-05-31T23:41:09.147

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

Posted 2009-07-26T20:37:50.643

Reputation: 2 118

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

Posted 2009-07-26T20:37:50.643

Reputation: 390

4Not even this is a solution. The new default input language will only be used in new windows. – Manuel Faux – 2009-07-27T11:32:35.290

You need to log off and on for the changes to apply. – Sam – 2014-05-27T09:13:15.520

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

Posted 2009-07-26T20:37:50.643

Reputation: 24 054

Care to explain the down votes? It worked for what he asked, his problem probably isn't solvable in a better fashion if it's by design – Ivo Flipse – 2009-07-28T15:45:13.027

2Doing this doesn't seem to buy you anything compared to just changing the keyboard layout and leaving the input language the same. The change doesn't affect all windows globally in either case. – brone – 2009-08-02T14:45:51.850

For me it's a Dutch laptop, which keeps switching randomly. By deleting all other languages, it will stay what I want it to be – Ivo Flipse – 2009-08-02T17:23:33.523

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

Posted 2009-07-26T20:37:50.643

Reputation: 306 093

-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.

Torben Gundtofte-Bruun

Posted 2009-07-26T20:37:50.643

Reputation: 16 308

Well this is just not true. Switching layouts worked perfectly well until windows 10 – bot_bot – 2019-06-04T05:43:43.433

1My solution was to choose "US International". This layout is a normal US layout with the addition to easily compose special characters as used in German or Danish by using "Alt Gr". – Manuel Faux – 2009-12-12T08:10:03.507