Skip to content

Draft: Change the default French layout

This message can also be read directly in French here.

Proposal:

I would like to propose a replacement for the default French keyboard layout.

If this is feasible for you, here are some considerations:

Why:

The current layout is a legacy from xfree86. In documentation and forums, the default layout is either never mentioned or deemed unviable.
Therefore, the issue likely stems from the default layout not being suitable for anyone.

I notice that generally, fr(oss) is the most commonly mentioned, followed by fr(azerty) and fr(latin9).

[root@localhost ~]# localectl status
   System Locale: LANG=fr_FR.UTF-8
       VC Keymap: fr-oss
      X11 Layout: fr
     X11 Variant: oss
[root@localhost ~]# localectl set-x11-keymap fr asus_laptop
[root@localhost ~]# localectl
   System Locale: LANG=fr_FR.UTF-8
       VC Keymap: fr
      X11 Layout: fr
       X11 Model: asus_laptop

Maybe he meant to say localectl set-x11-keymap fr asus_laptop oss ?

Analysis of the Candidates:

The four variants I have identified as potential candidates are:

  • fr(azerty) : A very good option as it matches the physical key labels exactly.
  • fr(latin9) : Tagged as legacy, so I dismiss this one.
  • fr(oss) : A supercharged fr(azerty) with levels 3 and 4 (level 4 is absent in fr(azerty)).
  • fr(oss_latin9): A toned-down version of fr(oss); I am not sure in which cases it would be useful.

I don’t know if this should influence the choice, but the French Wikipedia pages label fr(oss) as the "Linux layout":

Based on this, I tend to think that fr(oss) is the perfect candidate:

  • The basic key labels are respected.
  • It uses combinations left free by fr(azerty).
  • Adds useful characters at generally well-thought-out positions.
  • Often recommended.
  • Tagged as the Linux layout on Wikipedia.
  • Multi-platform (Windows port - FR-OSS : Faites-en plus avec votre clavier AZERTY).

What do you think?

How:

The default layout is a conventionally named variant called basic and tagged as default.

To maintain consistency, I thought of this:

  • To not lose the current basic, it needs to be renamed because conventionally, default = basic.
  • The include "fr(basic)" of the sub-variants need to be modified to avoid breaking them.

In the future, we could have the convention that:

  • fr(basic) is just an alias.
  • The sub-variants never point to fr(basic).

Exemple:

default partial alphanumeric_keys
xkb_symbols "basic" {
    include "fr(<VARIANT_ELEVATED_TO_DEFAULT_RANK>)"
    name[Group1]="French";
};

This modification would only affect users who have deliberately configured the default layout on their system. But as mentioned earlier, this is rare and easily reversible by explicitly choosing the variant corresponding to the old default layout.

Visuals of the layouts:

French - basic *Current keyboard layout

Actual
French (AZERTY) - azerty KB_France
French (alt.) - oss KB_France_Linux
French (alt., Latin-9 only) - oss_latin9 KB_France_Linux_latin9
French (legacy, alt.) - latin9 latin9

Merge request reports