54

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.

6
  • Do you still have to be able to switch to other languages?
    – Ivo Flipse
    Jul 28, 2009 at 4:06
  • 2
    Yes, I'm using two layouts. I'd like to use another layout to type texts than to use in the console and to code. Jul 28, 2009 at 5:40
  • 4
    I can't believe it took until Win8 to actually implement this natively. What a pain! Nov 24, 2012 at 15:08
  • 3
    Grr Windows, this behaviour would be much more useful than the current 'per window' madness. Feb 4, 2013 at 18:14
  • 1
    See also superuser.com/questions/106722/… Feb 4, 2013 at 20:59

9 Answers 9

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.
9
  • I also discovered this some days ago, the layout handling changed in a very good way. +1 for the Win+Space Nov 11, 2012 at 9:10
  • 1
    This would be a reason to upgrade to windows 8.
    – Automatico
    Feb 27, 2014 at 15:05
  • 6
    this is not an answer to the question..
    – ccov77
    Aug 6, 2014 at 17:35
  • @JuanManuelVillegas, how so? In my experience, this resolves the problem perfectly.
    – Sam
    Aug 6, 2014 at 23:41
  • 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
    – ccov77
    Aug 15, 2014 at 14:06
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.

13
  • 2
    Awesome. All I miss is a single hotkey for all this (like alt+shift. Maybe AutoHotkey can do this?)
    – Apache
    Aug 17, 2010 at 5:27
  • Would you be able to get this to work for DOS prompts as well? :) Aug 6, 2011 at 12:04
  • 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
    Aug 9, 2011 at 22:16
  • 2
    It 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
    Jan 8, 2013 at 11:18
  • 2
    @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
    Dec 13, 2014 at 1:30
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 :)

7
  • This one doesn't seem to work for some windows such as the "Run" window. I recommend people try SwitchIt! instead of this.
    – Sam
    Sep 22, 2012 at 1:46
  • Alas didn't work for me - the app installed but weirdly wasn't able to set shortcut to change layouts. Feb 4, 2013 at 18:18
  • Keyla works for me on Win7. However @Sam comment for Windows7 is ace! Use it if you can.
    – antitoxic
    Apr 3, 2013 at 19:13
  • Keyla didn't work isn't such a good and friendly application
    – Denja
    Jan 16, 2014 at 10:51
  • Keyla works for me but it seems it has to be run as Administrator
    – MarcH
    Jun 30, 2015 at 17:28
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.

3
  • Working fine for me in XP, too!
    – brone
    Feb 11, 2010 at 0:06
  • 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
    Sep 22, 2012 at 1:47
  • 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
    May 31, 2013 at 23:41
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.

2
  • 4
    Not even this is a solution. The new default input language will only be used in new windows. Jul 27, 2009 at 11:32
  • You need to log off and on for the changes to apply.
    – Sam
    May 27, 2014 at 9:13
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.

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.
3
  • 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
    Jul 28, 2009 at 15:45
  • 2
    Doing 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
    Aug 2, 2009 at 14:45
  • 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
    Aug 2, 2009 at 17:23
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.

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

2
  • 1
    My 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". Dec 12, 2009 at 8:10
  • Well this is just not true. Switching layouts worked perfectly well until windows 10
    – mal
    Jun 4, 2019 at 5:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .