[4.0.1.48] Hardware keyboards in 4.0 always use the default keyboard layout for the language

REPRODUCIBILITY (% or how often): always
BUILD ID = OS VERSION (Settings > About product): 4.0.1.48
HARDWARE (XA2, Xperia 10…): FxTec Pro1
UI LANGUAGE: -
REGRESSION: (compared to previous public release: Yes, No, ?): No, there was virtually no support for HW keyboard layouts in previous versions

DESCRIPTION:

Trying to add Bulgarian hardware layout, but despite that bg.qml contains Bulgarian phonetic keyboard (the file doesn’t contain layout name anyway), Sailfish loads Bulgarian BDS keyboard which is the first in the bg xkb symbols. Moving the defs around in the xkb symbols file doesn’t change the default though - I had to comment it out to get to load a different one. Saw that HW keyboards are loaded only in the lipstick binary, so our options are probably limited (unless the default is stated elsewhere). A good option would probably be if keyboard variant can be specified in the layouts_*.conf files along with the language?

Another reproduction of this issue is for instance the default US keyboard layout, that uses the default (and first in the us xkb symbols file) basic layout, that is missing level3 definitions, thus yellow arrow symbols don’t work.

Speaking of layouts_*.conf files - I could only get Cyrillic symbols out of the HW keyboard by specifying the Bulgarian layout in the layouts_ru.conf file? Can this be configured somewhere, or is it hardcoded?

STEPS TO REPRODUCE:

Try typing with Pro1 default US keyboard the yellow arrow symbols that are located on L and P letters (the rest are mapped to shift by default)

EXPECTED RESULT:

? and / to come out.

ACTUAL RESULT:

Lowercase l and p come out.

ADDITIONAL INFORMATION:

Let me know if you need a video of this. Screenshots won’t do. :slight_smile:

3 Likes

Had the same problem with my Logitech keyboard today. Have written the first letters with English keyboard layout :frowning:
Then I found under Settings->Text Input->Hardware keyboards the possibility to change the active keyboard layout with ctrl + space.
After that I could continue writing with German keyboard layout.
Maybe this works for you?

1 Like

Ctrl+Space works okay. However I was talking about the layouts for a single language - for English there are several, for Bulgarian - 2 completely different and lately - 3, with the new one derivative of one of the others. These are not changed with Ctrl+Space and in Sailfish you can only have a single layout for a language and that is the default one and you can’t change it, unless you delete it or comment it out.

If I should delve into this more - for instance, in Windows by default you can change the languages with Alt+Shift and their layouts (if you installed any) with Ctrl+Shift. I don’t really need to be able to change them - I just want Sailfish to not assume there is only one layout for a language.

@bundyo How did you get 4.0.1 on your Pro1? The latest port I can find is 3.4.x.

Fiddling around with ssu and version dup, hoping for the best?

I think most people upgraded from 3.4 (including me). There is a 4.0 build, but some people had problems installing it directly. You can find more info in the unofficial Pro1 Discord or the Telegram SFOS Pro1 channel.

1 Like