Switch language with Caps Lock in Windows

If you use more than one input languages on your Windows PC most probably you have to switch between layouts somehow the least efficient way is to do that with mouse clicks by clicking the language bar in Windows tray and selecting the required layout or language

however most users will use some kind of a hotkey since Windows 8 came along Microsoft is trying to force the windows and spacebar combination to change input languages this actually works across operating systems for instance in Linux in Mac OS and even in Android you will probably be able to switch languages using a so-called super key that is Windows key on Windows keyboards and spacebar old school users will either press shift alt or shift Ctrl to change the languages the biggest issue is that you have to use at least two fingers to do that and there is is no dedicated key to switch languages to think about that new keys appear on keyboard layouts all the time for example Microsoft keyboards have a dedicated button to launch Microsoft Office apps and a dedicated button to enter freaking emojis some laptops from Chinese Brands like xiaomi have a dedicated button to launch their brand app from Microsoft store and the app is all Chinese a very useful feature for a western consumer well to be fair Apple first introduced The Globe button which is a special button to change the input language in Hardware external keyboards for iPads and then in 2021 this button also appeared on new MacBooks but still this key is far from being Universal and in MacBooks it actually shares the functionality it with FN key however there is a very big conveniently located key on your keyboard which you almost never use while typing and that key is caps lock personally I almost never have to type anything in all caps and even when I do I am quite happy to hold shift while doing that so caps lock could be easily repurposed as an input language switcher and in fact it has been done in Mac OS for several years now and in Linux forever but not in Windows there is no native way to use caps lock as input language selector or keyboard layout selector in Windows even in the most recent at the time of this video Windows 11. however it can be done and I’ve been using caps lock as a language switcher for more than half a year now in all operating systems I use and I find it really comfortable to use and it took me less than a week to change my typing habits from Ctrl shift to caps lock when switching languages as for the method to make caps lock language input switcher there are several of them I tried all of them and can share the best way to do that with you the first and most obvious way is to use the macro utility that came with your for example gaming keyboard to repurpose the caps lock key however this method is not really Universal because not everyone have a gaming keyboard not every gaming keyboard has a macro functionality and most software bundled with even the most expensive keyboards is utter cabbage the next way to do that is to use an auto hotkey script these are really simple to make and you can even download pre-compiled ones but in my test thing I find that using Auto hotkey scripts introduces some kind of lag which is not noticeable on the desktop or while we work but is really annoying while you’re gaming also there are quite a few so-called keyboard switchers for Windows most of them are free some of them are open source like mahu others are just free like karamba and the most well-known is Punta switcher but the problem with that is this software is kinda Overkill since the main purpose the software exists is to capture your input on the flight and automatically convert that to the language you are supposed to be typing in this is somewhat useful for users that cannot touch type so they don’t look at the screen when they type they look at the keyboard and even though the software allows you to map any key on your keyboard to to switch the languages is a little bit Overkill and the software is borderline virus since this can be used as a input capture by a theoretical attacker and in any case this software is too bulky and some really tough anti-cheats can detect that and ban you from games that happened at least with rust which banned users for using gaming mice with macro capabilities so antiches definitely will detect this software and some of them may block you or ban you from the game the solution I’ve been using for half a year is this little open source utility and since the source is open you can download it make sure there is nothing wrong with it compile it yourself and use the bonus of this software is that you can still use caps lock and to activate caps lock you have to hold shift and press caps lock so you use just caps lock to switch input languages and if you need to type in all caps you still have the ability to do that the utility kinda worked but not everywhere I was not able to use it via RDP and other remote connections I was not able to use it when entering formulas in Microsoft Word documents I was not able to use it while running commands in Windows and it didn’t work in some other cases so you still need something native to Windows to switch input languages with caps lock without any problems the closest to Native in Windows you can have is a Microsoft power toys one of the toys is able to reprogram your keyboard mapping one key to become another key and mapping one hotkey combination to become another hotkey combination I have not used it myself but from the screenshots I think it cannot map a single key to a hotkey combination and that’s what we need anyway you need those power toys to be constantly running in background and I seriously doubt they will work system-wide in all applications so the method I finally started to use is the closest to be native in Windows as you can get at the time of making this video and it is actually very simple the first thing you need to do is to change your language switch key to grave accent then you use a Windows register trick to replace the scan codes of this key to caps lock it works but you completely lose the ability to use the key which is to the left of the one key on your keyboard and this is a very important key tilde it is extensively you used when you write code and different commands and it is also widely used in games to open the in-game console so to still be able to use this key we have to save it somehow you can actually do that by using a Microsoft utility which is conveniently called keyboard layout Creator and basically you use this utility to remap grave accent to some unused key on your keyboard there are quite a few keys that are not present on Modern keyboards anymore so we can remap the key to that and then you just export the keyboard and install it in Windows as a new keyboard layout if you don’t trust anyone you can do that yourself but if you don’t want to bother I already made all the necessary files and put a link to download them on my website which you can find in the description below so basically I made two layout notes one for English and one for Russian in this case and the registry file which you have to import to your Windows registry to make everything work so first of all you install two of the keyboards that are provided this is a simple installers and you install them like most software in Windows after you do that two more keyboard layouts will appear in Windows in this case we have two Russian layouts and two US English layouts we don’t need the old ones so go to Windows language settings and delete the standard layouts so you will only have the layouts we have just installed after that the only thing left to do is to import that registry file to Windows registry and maybe reboot your computer when you’re back to Windows you can now use caps lock to change input languages and most importantly the tilde key still works the only drawback is that unlike those utilities for Windows I have been talking about unlike Linux and unlike Mac OS where you can press shift and caps lock to still use caps lock you cannot do it with this method when I say that caps lock is not working I mean the button itself is not working as caps lock the registry file that I showed you actually moves caps lock to scroll lock so you can still activate the caps lock feature to type in all caps by pressing scroll lock if you have installed the keyboards and the rack file rebooted your PC but caps lock key still does not change the input language please make sure that you selected the grave accent as the keyboard selection key it won’t work without that if you ever want to roll everything back the only thing you have to do is add back the default keyboard layouts delete those new installed keyboards from program files and run this remove registry file to clear up everything we did in the registry after that just to reboot your PC and the keyboard will work as before you may also be presented with additional security confirmations while opening the files that’s normal click yes however this method Works absolutely everywhere and is virtually not detectable by anything


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,29,00,3a,00,3a,00,46,00,56,00,29,00,00,00,00,00

Download – click here

How registry editing of keyboard works in reg files for Windows:


Windows Registry Editor Version 5.00

; The hex data is in five groups of four bytes:
; 00,00,00,00,\ header version (always 00000000)
; 00,00,00,00,\ header flags (always 00000000)
; 04,00,00,00,\ # of entries (3 in this case) plus a NULL terminator line.
; Entries are in 2-byte pairs: Key code to send & keyboard key to send it.
; Each entry is in "least significant byte, most significant byte" order,
; e.g. 0x1234 becomes `34,12`
; 1d,00,3a,00,\ Send LEFT CTRL (0x001d) code when user presses the CAPS LOCK key (0x003a)
; 38,00,1d,00,\ Send LEFT ALT (0x0038) code when user presses the LEFT CTRL key (0x001d)
; 3a,00,38,00,\ Send CAPS LOCK (0x003a) code when user presses the LEFT ALT key (0x0038)
; 00,00,00,00 NULL terminator

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,\
00,00,00,00,\
04,00,00,00,\
1d,00,3a,00,\
38,00,1d,00,\
3a,00,38,00,\
00,00,00,00

Leave a Comment