7

Possible Duplicate:
Why does Windows change the input language randomly?

I'm using two, sometimes more input methods in Windows.

language change menu

I typically use Alt + left Shift to switch between languages. Sometimes, every once in a while, another action(s) triggers the language switch.

It happens in the same application context, i.e. the input language can change for a certain app context, without my request.

Edit I realized that some of these actions could be the use of the scroll wheel button. — (Middle-clicks were being caused by a particular esoteric program called "hafuch," so I closed it. The general problem remains.)

It happened in the past on these and more occasions:

  • middle mouse click
  • pressing Windows key
  • pressing Alt + Tab, maybe?
  • (unknown)

Edit - Unidirectional language switching is a big hassle, and I'd rather avoid it.

The Question:

  • How do I disable any language switching except for Alt + Shift?
  • What can cause input language to change sometimes, other than Alt + Shift?
1
  • maybe it's the same question, but the answers there are irrelevant to my problem, and the accepted answer doesn't address my case. Feb 25, 2011 at 17:49

4 Answers 4

4

This is probably expected Windows behavior, but there are possible work-arounds.

Explanation: The input language (keyboard layout) is not global; it is set on a per-application basis. When an application loses input focus, Windows stores the current input language. When that application regains input focus, Windows tries to switch back to the input language it previously stored for that application. I am not sure about middle click, but the Windows key and Alt-Tab definitely induce the input focus to be switched to a different application, and thus potentially switch the input language.


Here are possible work-arounds:

If you use only two layouts and one of them includes a key for switching to/from QWERTY (like Korean and Hebrew), uninstall all other layouts. Just use the single layout's ability to switch to/from QWERTY. Note the layout's QWERTY input state is still stored and automatically switched between different applications. I've used this method to switch between QWERTY and Korean input in a sane, predictable way.

3rd party software solution (free):

Portable Keyboard Layout (PKL) is used for supporting alternate input languages on (other) computers without admin access. It maintains the same input language state across all applications. A keyboard shortcut for switching between layouts can be configured. Works from a USB drive. Free and open-source.

Some light setup is required:

  1. Copy desired layouts to layouts sub-folder
  2. Add layouts and keyboard shortcuts to the pkl.ini file. I found the Hebrew layout for you here. (Be sure to remove the Colemak layout if you are not interested in it.)

Here is a good start on how the pkl.ini file should be modified:

; The layout ini file is "layouts/[key value]/layout.ini"
; You can use multiple layouts, if you write:
;   layout = layout1:Displayed name,layout2
layout = hebrew:Hebrew

; With this hotkey you can switch between layouts
changeLayoutHotkey = LAlt & LShift

The above settings add the Hebrew layout and the Alt + Left Shift keyboard short-cut you are used to (I would uninstall all other layouts and keyboard shortcuts on Windows so they don't interfere, or use different keyboard shortcuts)


As a side note, I modified the PKL script to support the odd combination of Korean Hangul input and Colemak layout. With the default PKL install, Korean input is horribly broken because it expects a QWERTY layout...

3
  • i know it's app-based. you wrote "tries to switch back". so windows can fail in that? what could be the reason? Feb 16, 2011 at 19:43
  • PKL looks interesting. but there's no ready hebrew layout, and it takes me time to figure it out. if it works for me, i'll post back Feb 16, 2011 at 19:44
  • PKL is nice, but i've already noticed inconsistent behavior in 2 apps (editplus & notepad), and besides it forces me to get accustomed to non-standard habits. you still get 1up for PKL :) Feb 16, 2011 at 20:43
1

If you do use Alt+Shift, you may not like the suggestion, but I think that the best thing you can do is simply disable all shortcuts.

enter image description here

If this doesn't stop it, then put it back - and test disabling various applications as it probably means a third party application is interfering with the language settings.

1
  • i tried your solution for a short while, but it's a nightmere to work like that :( and i didn't tackle the problem (yet) Feb 16, 2011 at 19:29
1

ok, here's my two cents.

Alt + Left arrow = Back in browsing, if you have a 4/5 button mouse or if you have a multimedia keyboard with a back button on it, it's possible your accidentally contact the back button which send the same key code through as pressing Alt & Left Arrow.

Worth checking, if you have such a mouse or keyboard the driver should have the ability to change the key like a macro to something else or even disable the button.

0

Although you didn't ask for it, you might want to set hotkeys to switch to a specific language instead.

You won't get the annoying behavior anymore, but it is still at an application context level...

enter image description here

Not the answer you're looking for? Browse other questions tagged .