Bug 1129452

Summary: keyboard layout wrong with rusle
Product: [Fedora] Fedora Reporter: Stas Sergeev <stsp2>
Component: ibus-tableAssignee: Mike FABIAN <mfabian>
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: dchen, i18n-bugs, K9, kent.neo, mfabian, pwu, shawn.p.huang
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-13 12:25:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stas Sergeev 2014-08-12 19:34:48 UTC
Description of problem:
In layout switching applet it is possible to
graphically view the keyboard layout.
But when I view the layout of rusle, it shows
only the English letters.

Comment 1 Mike FABIAN 2014-08-13 12:25:02 UTC
That doesn’t show the “layout of rusle” but the “keyboard layout used to type using the rusle input method” Which is the US keyboard.

The rusle.txt table contains:

### The Keyboard Layout used by this table.
### Set to "default" to accept any kind of layout
KEYBOARD_LAYOUT = us

Which mean that the keyboard layout is switched automatically to "us"
as soon as you switch to rusle.

That is necessary, because the rusle depends on the us layout.

For example, it contains:

y	н	0
z	я	0

The intention is probably to get a н if you type the key to the right of the 't' key, i.e. the 6th key in the top row of a qwerty key-board.

If a German keyboard were used, that key would have a 'z' printed on it, i.e.
by typing the 6th key in the top row you would get a я, not a н.

rusle emulates a Russian legacy layout if the real layout is actually us.

The graphical display of the keyboard layout shows the real layout though, 
not the result of the input method.

Most input methods do are not just emulations of keyboard layouts.

Compare for example the Russian translit.txt:

https://github.com/moebiuscurve/ibus-table-others/blob/master/tables/translit.txt

It contains stuff like:

Shh Щ 1000

I.e. it converts Russian written in Latin transliteration
into Russian written in Cyrillic.

This can be done with any keyboard which can type all necessary
Latin characters.

Therefore, translit.txt does not enforce us layout:

### Layout
### This table can be used with any layout capable of typing ASCII.
### Therefore, we should not require a special layout like “us”.
LAYOUT = default

I.e. when switching to translit, the layout which is currently set is
just used and not changed. Most input methods are like that, only
keyboard emulations like rusle and some Chinese input methods like
cangjie or wubi require the us layout and switch to the us layout
automatically when they are selected.

The graphical keyboard display cannot know what kind of funny stuff
the input method does, in most cases it is more than just replacing
keys. So it can only display the underlying keyboard layout used to
type the *input* for the input method, it will not show the *output*
of the input method, this will be more than just another layout in
most cases.

By the way, you can toggle between table mode and direct input mode
when using rusle with the topmost menu of rusle in the Gnome3 panel.
Or with using the Left Shift key to toggle.

When you toggle to "Direct Input", the rusle translation is not done
and you get what the underlying us keyboard does.

Comment 2 Mike FABIAN 2014-08-13 12:25:44 UTC
I think there is no way this can be fixed, so I set it to CANTFIX.