Subject: bug#40273: installer: No way to input Latin characters with non-Latin keyboard layouts

From: Ludovic Courtès <[email-masked]>
Date: Tue, 31 Mar 2020 17:35:41 +0200

Hi,

"pelzflorian (Florian Pelz)" <[email-masked]> skribis:

> On Mon, Mar 30, 2020 at 01:35:29PM +0200, Mathieu Othacehe wrote:
>> In the installer, the keyboard layout is handled by KMSCON. It means
>> that running setxkbmap or loadkeys commands won't help. As KMSCON only
>> supports static keyboard layout setting at start time, I had to patch it
>> dirty (see kmscon-runtime-keymap-switch.patch). With this patch, it is
>> possible to write keyboard model, layout and variant to the file pointed
>> by KEYMAP_UPDATE environment variable, and have the keyboard layout
>> updated (see kmscon-update-keymap).
>> 
>> Mathieu
>
> Thank you for the information.  The attached patch to Guix enables
> Alt+Shift toggling of the layout (it is too hacky, and it is always
> QWERTY layout!).  But it is possible.

I think we can have both Alt-Shift and what Mathieu implemented, no?

However, note that the installed system won’t have Alt-Shift support,
and perhaps that is a bigger concern.

OTOH, we’re just using the standard XKB layouts, so if they don’t
provide Alt-Shift, well, perhaps that’s because this is the way it’s got
to be?

> ++        int end_of_layout;
> ++        for (end_of_layout=0; layout[end_of_layout]; end_of_layout++);
> ++        memcpy (layout+end_of_layout, (void *)",us", 4);

I think that could be: layout = strcat (layout, ",us");
Provided ‘layout’ points to a large-enough array.

> ++	uxkb_desc_init(dev->input, model, layout, variant, "grp:alt_shift_toggle", NULL);

Is “grp:alt_shift_toggle” guaranteed to be available, no what what
‘layout’ is?

Also, that means Alt-Shift is enabled for all layouts, not just the
non-Latin layouts, right?

Ludo’.