4

I used to use Caps Lock to switch between keyboard layouts (e.g. between English and Russian), as opposed to Windows built-in inconvenient CtrlShift and AltShift combos.

On earlier versions of Windows that could be achieved by a Recaps utility. However, for some reason, it does not work on Windows 8 properly. More specifically, while it works fine in old-style applications, Caps Lock does nothing in Metro applications: the layout is not switched, and "CapsLock" mode is not entered as well.

Is there any way to switch keyboard layouts with the Caps Lock key in all applications on Windows 8, including Metro ones?

Diego
  • 185
  • 1
  • 7
penartur
  • 239
  • 2
  • 4
  • 4
    You could look at using [AutoHotkey](http://www.autohotkey.com/) to automate the switching process. – Brad Patton Apr 17 '13 at 19:07
  • 1
    You'll find a variety of answers at [this question](http://superuser.com/questions/429930/sing-capslock-to-switch-the-keyboard-language-layout/537098#537098). The site of one alternative has [this list](https://code.google.com/p/keyla/wiki/en_Alternatives) of more alternatives. – yosh m Apr 18 '13 at 11:44

3 Answers3

3

This answer helped me a lot: sing CapsLock to switch the keyboard language layout.

Recaps worked fine until I upgraded to Windows 10 and Skype 7.1. After that Skype was hanging after I was pressing CapsLock. This solution with AutoHotkey helped a lot and now i still have keyboard layout switching on CapLock and Skype is not hanging. Hope this will help someone.

Jawa
  • 3,619
  • 13
  • 31
  • 36
flamedmg
  • 131
  • 3
2

One option would be to

  1. Configure Windows to use grave accent to switch keyboard layouts;
  2. Remap Caps Lock to grave accent, and grave accent to the special key 0x0056 (by manually editing Windows registry, or using tools such as SharpKeys);
  3. Use MS Keyboard Layout Creator (only supported on x86/x64, not ARM) to create the custom keyboard layout which will interpret 0x0056 in the same way standart layout interprets grave accent / tilde.

This solution will work in all apps, and will not depend on some resident process intercepting key presses (such as Recaps).

penartur
  • 239
  • 2
  • 4
  • To enable using grave accent to switch keyboard layouts I had to switch the system locale to Thai (just the locale, not the user interface language), then remove English input language, then add Thai input language with Thai layout *and* Thai input language with US layout. If you set the last one as the default input language & layout, it would work exactly like ordinary US English layout. – selurvedu Jan 23 '21 at 04:27
0

I keep forgetting the only solution for exactly this issue that worked for me on all and any Windows version so far. It is not listed in other answers, so let me put this here. It is super simple!

  1. Download https://haali.su/winutils/lswitch.exe somewhere where you want it to reside.
  2. Create a windows shortcut for this program.
  3. Edit the shortcut Properties and add 20 to the end of the "Target" field so it looks like C:\...\lswitch.exe 20
  4. Copy or move the shortcut to the autostart directory %AppData%\Microsoft\Windows\Start Menu\Programs\Startup

(comment and source code https://haali.su/winutils/)

Diego
  • 185
  • 1
  • 7