Bugzilla – Bug 5272
Impossible to use non-Roman keyboard layout on macOS
Last modified: 2019-04-04 11:37:10
You need to
before you can comment on or make changes to this bug.
On Mac OS X, the Russian keyboard layout is apparently implemented as, or
requires, input methods. Since our current approach is to let input method
handling be done on the server side, we are disabling input methods in
vncviewer. When this happens, the keyboard layout changes to someelse else(!)
The same effect can also be seen in Firefox or Safari, when switching to a
password input field. This is somewhat surprising.
I've verified this on both 10.4 and 10.9, so this is not something new. Note
however that 10.4 has a more advanced control panel UI, which describes layout
type. The Swedish layout is described as "Keyboard/Roman", while the Russian
layout is "Keyboard/Cyrillic". Katakana is a subtype of "Kotoeri", of type
My conclusion is that the problem is not that the Russian layout requires
"Input methods", but rather that it is of a non-Roman type.
Apparently, non-latin passwords are not allowed on Mac OS X. Other person with
It turns out that this is a problem for other layouts as well, for example
Greek. The Greek alphabet is a parent for the Latin/Roman alphabet, so it is
perhaps not a surprise that a Greek layout is not accepted on OS X, since we
are apparently restricting ourselves to Roman layouts.
Apple has apparently decided to hide the internal details of keyboard handling.
Fortunately the internet never forgets:
Created an attachment (id=906) [details]
patch for FLTK
I was looking at the macOS keyboard input for an upstream issue, and I think I
stumbled upon a way to solve this.
The attached patch seems to disable the stuff we don't want, and keep the
things we do.
Instead of filtering out only "ASCII" input sources, we instead we focus on
those that claim to be of the basic "Layout" type. This should exclude various
forms of input methods.
Needs more testing, but it seems promising.
(this method also seems to match the system settings, which refuses to let you
remove the last "normal" input source)