CTRL-Space always toggles Chinese IME (Windows 7)
I've been aware of this Windows bug for years. After tons of unsatisfying workarounds and fruitless searching the one or two times a year I attempt to find a solution, I finally have it!
Procedure
- Go to
Start
> Type inregedit
and start it - Navigate to
HKEY_CURRENT_USER/Control Panel/Input Method/Hot Keys
- Select the key named:
00000070
for theChinese (Traditional) IME - Ime/NonIme Toggle
hotkey00000010
for theChinese (Simplified) IME - Ime/NonIme Toggle
hotkey
- In the right sub-window, there are three subkeys.
- Key Modifiers designate Alt/Ctrl/Shift/etc and is set to Ctrl (
02c00000
). - Virtual Key designates the finishing key and is set to Space (
20000000
).
- Key Modifiers designate Alt/Ctrl/Shift/etc and is set to Ctrl (
- Change the first byte in
Key Modifiers
from02
to00
- Change the first byte in
Virtual Key
from20
toFF
- Log off and log back on. I don't think it's necessary to restart.
- Do not change the
Hot keys for input languages
in Control Panel, unless you want to do this all over again.
Notes: Symptoms
Each registry key (thing that looks like a folder) is for each specific hotkey setting that you would normally find in Control Panel > Region and Language > Keyboards and Languages > Change keyboards... > Advanced Key Settings > Hot keys for input languages
. The recurring bug is the hotkey being automatically reset to Ctrl+space even if changed via the GUI.
I can personally confirm this for Windows 7 64-bit and Windows 8.1, though from my research, it looks like it may work for XP and Vista as well.
Sources:
Traditional Chinese Pocket IME Hot Key Registry Settings
Simplified Chinese MSPY 3.0 IME Hot Key Registry Settings
Thanks, it worked. For reference, I exported the modified registry keys:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010]
"Key Modifiers"=hex:00,c0,00,00
"Virtual Key"=hex:ff,00,00,00
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000070]
"Key Modifiers"=hex:00,c0,00,00
"Virtual Key"=hex:ff,00,00,00
I've just got help with an associated issue, and I guess it may be useful for many of you as well: https://www.neowin.net/forum/topic/1261058-windows-81-is-forgetting-ctrl12345-shortcuts-designated-for-keyboard-layout-switching-after-wa/
Windows seems to overwrite personal layout controls configuration with defaults on some occasions. Hence, the way to have a "permanent" solution basically appears to be rewriting your
HKEY_USERS\.DEFAULT\Control Panel\Input Method\Hot Keys
with what you have in your
HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys
once you've configured your IME shortcuts (or in this matter their absenсe) correctly.