Using CapsLock to switch the keyboard language layout

28

11

Currently I am using Recaps for switching between keyboard layouts. But I am looking for a replacement, because it is a little buggy and not updated for years. Do you know any replacement?

PHPst

Posted 2012-05-29T04:49:41.770

Reputation: 3 466

3Any particular OS, or will you accept an answer for Haiku? – Ignacio Vazquez-Abrams – 2012-05-29T04:51:45.023

2Recaps is a Windows app, so it is either that or Plan 9 – Paul – 2012-05-29T04:55:10.527

4Is it alright for Alt + Shift to still be assigned to language switching? If so, AutoHotkey could be used to send an Alt + Shift on CapsLock. – Bob – 2012-05-29T05:36:47.380

@Reza Your AHK code is wrong. + is the Shift modifier, it must come before {Raw} or normal keys. Try: Send, +{LAlt} – iglvzx – 2012-06-01T05:05:19.147

@iglvzx It did not work. – PHPst – 2012-06-01T05:11:27.960

What do you mean by not so stable yet? – Bob – 2012-07-15T21:21:31.223

@Bob It stop working in win 7 suddenly, also you have set language each time you restart windows – PHPst – 2012-07-16T04:54:49.417

Answers

13

In windows you can set Windows to use Grave Accent (`) for switching between languages or keyboard layouts via a single key press.

If your windows is set to change keyboard layout by Ctrl+Shift you can use following AutoHotKey script (I strongly recommend using http://www.autohotkey.com/) to map them to Caps Lock, normal CapsLock will be achieved by Shif+CapsLock

SetCapsLockState, AlwaysOff
+CapsLock::CapsLock

CapsLock::Send, {Ctrl down}{Shift down}{Shift up}{Ctrl up}{Ctrl up}
return

PHPst

Posted 2012-05-29T04:49:41.770

Reputation: 3 466

http://l.autohotkey.net/ is down :( – turbanoff – 2015-08-31T15:10:53.447

@turbanoff Updated. – PHPst – 2015-09-01T06:57:23.010

6Second {Ctrl up}? Why? – Monah Tuk – 2016-12-15T04:26:05.903

I was forced to use windows at work after a long time, and can't even imagine how easy things were in Ubuntu and how difficult these things are here on Windows. For things as trivial as a keyboard shortcut you have to install an separate program. – Muhammad bin Yusrat – 2019-01-10T04:41:27.410

⊙﹏⊙ I wish I had AHK in ubuntu to easily create my shortcut! – PHPst – 2019-01-10T05:49:11.630

24

Following @Bob's suggestion to use AutoHotkey, the following script will simulate Alt+Shift when you press CapsLock:

CapsLock::Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}

Windows can be a little stubborn when it comes to keyboard shortcuts only consisting of modifiers, but the above technique works.

iglvzx

Posted 2012-05-29T04:49:41.770

Reputation: 21 611

Wonderful, works like a charm! Thanks for this. – Per Lundberg – 2018-06-30T18:19:10.783

What about Caps Lock for 1st layout and Shift+CapsLock for 2nd layout, any idea? – mini – 2019-03-16T05:55:32.157

6

Use lswitch.

Use any key to switch input languages, usage: lswitch [keycode]. Keycode is optional and defaults to context menu key. Another good candidate is a CapsLock key with a keycode of 20.

Cheers!

Dimko Desu

Posted 2012-05-29T04:49:41.770

Reputation: 61

1Simplest solution. – Vojtěch Dohnal – 2019-03-05T15:07:42.217

This works for English, German and/or Russian keyboard layouts or input languages as well. The only thing that reliably worked for me for decades already in any Windows version. Add a shortcut it to C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup with target "lswitch.exe 20" (no quotes) to run all the time. Grave Accent doesn't work for e.g. German layout. – Diego – 2020-02-24T02:33:01.130

3

Punto Switcher can do this! http://punto.yandex.ru/win/

Basically it allows you to switch keyboard layout automatically, based on what you are typing. But it also can switch keyboard layouts on Caps Lock or many other keys. If don't like automatic switching you can turn it off in settings.

icem

Posted 2012-05-29T04:49:41.770

Reputation: 131

1too much functional for this task in this app. – kyb – 2017-10-02T10:15:52.623

2Dose it have an English version? – PHPst – 2012-10-23T07:50:11.390

1Sorry, it seems that it's Russian only. Probably because it's main function is keyboard layout auto-switch (rus-en). Anyway, my answer can help Russian users. – icem – 2012-11-03T18:50:18.690

2

Around a year ago I switched from ReCaps to keyla and I am pretty much happy with it.

Tagir Bakirov

Posted 2012-05-29T04:49:41.770

Reputation: 21

Skype 7.23 hangs when switching language via Caps Lock in Windows 10. – Paul Annekov – 2016-05-19T12:11:59.693

Keyla site is die. – Monah Tuk – 2016-12-15T04:30:40.827

1

Use Capslang: simply download suitable exe and put it in folder

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup

(to make it launch automatically when system starts)

Pavel

Posted 2012-05-29T04:49:41.770

Reputation: 208

1

I made it using PowerPro tool (as if it is constantly loaded already for other stuff) And now I achieve language change by tapping and CAPSLOCK via long press.

ClockworkBastard

Posted 2012-05-29T04:49:41.770

Reputation: 11

0

You can easely (by changing first two lines to:

$~CapsLock::LangSwitch(1)
$~CapsLock up::LangSwitch(2)

) modify wOxxOm's Keyboard layout switcher for using Win+Space instead of right control. And it will work no matter which hotkeys are set up for switching layout in Windows (default is Alt+Shift, I'm using Ctrl+Shift).

Because of non-ahk-native switching (script uses WinAPI), whole script is rather bulky, so I didn't paste it inline. In case of autohotkey.com inaccessibility, here it is: http://pastebin.com/RayAw1VP

(again, all credits go to wOxxOm, source script is there: http://www.autohotkey.com/board/topic/24666-keyboard-layout-switcher/)

P.S. That script is quite old, and has hardcoded byte-offsets, so I'm not sure if it will work with 64-bit Autohotkey.exe or in 64-bit Windows. I only have 32-bit at hand.

P.P.S. This answer is nearly duplicate to another but questions are also nearly similar.

LogicDaemon

Posted 2012-05-29T04:49:41.770

Reputation: 1 681