In earlier versions of Windows (up to Windows 7) it was possible to set US
layout for Russian
input language. With that it was possible to setup to have Russian
input language with RU
and US
layouts, switchable by one key sequence, and Japanese
input language, that you can switch to and from with another key sequence.
Alas, US
layout for Russian
input language was removed in later Windows versions. However it's possible to add any layout to any input language via PowerShell:
$OldList = Get-WinUserLanguageList
$OldList.Add("en-US")
$OldList[-1].InputMethodTips.Add("0409:00000419")
Set-WinUserLanguageList -LanguageList $OldList
This will add an English (United States)
input language (0409
) with US
(00000409
) and RU
(00000419
) layouts. Existing English (United States)
input language will be overwritten.
Note: with this setup, Windows will sometimes start thinking that you have three input languages, despite listing only two, forcing you to cycle through all three languages instead of just Japanese and English/Russian. Add and remove an input language that should not be there to temporarily resolve this.
UPD: Keep in mind that spell check is dependent on current input language and not on keyboard layout, so you won't be able to have spell check in both languages. If you want to have spell check in Russian you will have to add a Russian
input language with RU
and US
layouts instead:
$OldList = Get-WinUserLanguageList
$OldList.Add("ru-RU")
$OldList[-1].InputMethodTips.Add("0419:00000409")
Set-WinUserLanguageList -LanguageList $OldList
Note 2: You can lookup language and keyboard identifiers here. For example, you can use 0809
for English (United Kingdom)
input language and 00000809
for en-GB
layout.
Another minor inconvenience with this method (for me at least) is that with smaller taskbar icons input indicator will show ENG
for both layouts. If you don't like big taskbar icons or have input indicator disabled, another option is using language bar with customized icons (by default it will show EN
and a grey keyboard icon for both layouts).
To do that use an app linked in the description of this video, or follow the tutorial in the video to set icons in Registry:
- Enable language bar in the desktop version of the Language settings;
- Choose/prepare an icon (or two) to use for one of the (or both) layouts.
- Open registry editor and navigate to HKEY_CURRENT_USER\SOFTWARE\Microsoft\CTF;
- Create a new key inside and name it
LayoutIcon
;
- Lookup desired language and keyboard identifiers;
- Inside the
LayoutIcon
key, create key for desired input language (0409
for English (United States)
);
- In it create two keys for desired keyboard layouts (
00000419
and 00000409
for US
and RU
layouts respectively);
- In each of them create String values named
IconFile
and REG_DWORD value IconIndex
;
- Set
IconFile
to the path of the chosen icon resource (.ico, .icl, .dll). Set IconIndex
to index of icon in the resource file or 0 for .ico;
- Restart shell or reboot for changes to take effect.
This might reset after some system updates, so it's best to keep the app/tutorial saved on your drive somewhere (together with icon(s), preferably).
All in all, it's not the perfect solution, but i think it's the closest one.
I'd probably use an auto-hotkey script which would handle the toggling and layouts for you. – nerdwaller – 2014-05-18T03:14:28.337
I apologize for the previous comment, as I didn't read the question all the way through. If you would be willing to compromise, my answer would still be valid, although you would have to use three different combinations to access those three layouts. – Doktoro Reichard – 2014-05-18T03:35:18.077