I am learning and using Emacs. What I found annoying is that Ctrl-Space input will be stolen by Windows XP to switch the language bar instead of setting the mark in Emacs. The "language bar" is the native input languages selection such as Chinese keyboard other than English keyboard. Is there a way to temporarily prevent XP from stealing it? I have disabled the language bar from "Regional and language options" from Control Panel but the problem still exists. It doesn't happen on my Windows 2000 desktop at office but it happens on my work Windows XP laptop. Thank you very much.
-
1What do you mean by language bar? The input locale thing in the task bar?– OregonGhostCommented Oct 7, 2008 at 15:45
-
I noticed that the bar is actually called language bar in Vista. In a German XP it was called Eingabegebietsschemaleiste, literally input locale bar :)– OregonGhostCommented Oct 7, 2008 at 15:48
11 Answers
Found the solution to this problem as I just experienced it. So here goes even if the question is old.
Applies to Windows 7 and maybe others. I had added Chinese, Japanese and Korean input languages as I needed these for some development. After that I removed them again via Control Panel "Change keyboards...". I removed them all in one go and closed the dialog. After this all the languages still showed in the Language bar and I had the Ctrl-Space problem.
To fix it I did the following for each language one at a time: 1. Open Control Panel applet "Change keyboards..." 2. Add the keyboard for the language (i.e. chinese) 3. Click OK and exit control panel 4. Open applet again and remove the keyboard.
The problem seems to be a bug that appears when removing multiple keyboards at the same time.
-
3
-
2one more tips, please do this setting before you switch to any language, if anyone of the windows already using the IME, the change would not work. So please do this when you just restart your windows.– ShiroCommented Dec 20, 2010 at 5:30
-
2Unfortunately, this doesn't really help people that want to keep the foreign languages AND want to free up the hotkey. I'd recommend a few answers down or superuser.com/a/480723/161249 as a permanent solution.– KacheCommented Sep 28, 2012 at 9:32
The comments under the blog Sorting it all Out (mentioned in sundar's answer) mentions this solution:
- Open RegEdit and naviagate to HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys
- Find the '00000070' (Chinese Traditional) or '00000010' (Chinese Simplified) key that has the values: Key Modifiers='02,c0' (Control) Virtual Key='20' (Space)
- Replace these values with, e.g. Key Modifiers='FF,c0,00,00' and Virtual Key='FF'.
- Log out/log back in (important).
This worked for me in Windows 7.
-
Related question on SuperUser, along with my answer that specifically addresses the Chinese IME toggle hotkey: superuser.com/a/480723/161249.– KacheCommented Sep 28, 2012 at 9:23
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.
This is for Windows 7 64-bit, though from my research, it looks like it may work for XP and Vista as well.
Sources:
The blog here seems to be discussing this exact issue. It appears that even disabling the hotkeys from the Control Panel doesn't work - they get automagically re-enabled due to some bug in the OS.
Two solutions offered there are:
-
1That bug doesn't happen to everybody. I've never seen it myself.– cjmCommented Oct 7, 2008 at 16:39
-
These are kind of weak workarounds. For an actual solution, check Richard C's answer or superuser.com/a/480723/161249– KacheCommented Sep 28, 2012 at 9:47
Go to the Regional and Language Options Control Panel. Click the Languages tab, then the Details... button. Click the Key Settings... button. Double-click each entry in the "Hot keys for input languages" list and make sure the checkboxes are not checked. (If they are, uncheck them and click Ok.)
You do not need to disable the language bar, just the hot keys.
-
@Thorbjørn, if I ever get Windows 7, sure. If you know the correct procedure for Windows 7, feel free to add it.– cjmCommented Dec 2, 2010 at 21:11
-
You can't, actually. It's a superbly annoying bug specifically for the Chinese IME toggle hotkey that's existed for generations of Windows OSes.– KacheCommented Sep 28, 2012 at 9:25
You can also change the hot key for the language bar.
-
You can't, actually. It's a superbly annoying bug specifically for the Chinese IME toggle hotkey that's existed for generations of Windows OSes.– KacheCommented Sep 28, 2012 at 9:25
The following works for me:
There is a windows freeware AutoHotkey which let you, for example, bind F12 to Alt-a.
Install AutoHotkey and bind C-Space to C-@.
Binding C-Space to C-Space doesn't work.
I found this post and it works for me on Vista.
- open "regedit.exe" in run dialog
- Browse the registry editor to the location: HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\
- Now delete registry entries that with the name: 0000007x (x indicates any number)
-
1I've found that this is a little heavy-handed. You only need to change two subkeys for the
00000070
key. See: superuser.com/a/480723/161249– KacheCommented Sep 28, 2012 at 9:29
The simple trick thats work for me:
Ctrl+Windows+Space
Buttons are both in one place, so they could be pressed togather at once. And they work as Ctrl+Space
After looking at and trying out Richard C's answer with the regedit...
I found that, after changing all my key sequences in the language settings window, that the registry values specified above were already changed.... So without editing the registry, I restarted and the Ctrl-Space sequence was disabled!!
Moral of the story: If something doesn't quite work in Windows, RESTART!
Stupid way, But had many applications open on my system, so just deleted Chinese language from the General tab - Installed services. It worked!