It seems that "Latin-9" refers to the ISO 8859-15 character set. That is, "Latin-9 only" is supposed to exclude symbols which require full Unicode support.
For example, the regular Bépo variant has ə
(schwa) on AltGrZ. This symbol does not exist in ISO 8859-15, and is therefore not included in the "Latin-9" variant.
You can open /usr/share/X11/xkb/symbols/fr
to see the definitions.
Or at least that's supposed to be the case. In practice it doesn't seem to work as intended.
Since bepo_latin9
is based on bepo
and simply removes characters instead of adding, it seems the overrides do not fully take effect and the extra symbols are not excluded – Z still has schwa on level 3 and level 4, and so on.
I used GNOME's "Show Keyboard Layout" button in the taskbar's keyboard menu – it displays the layouts as they're ultimately interpreted by libxkbcommon, and as you can see the differences are very minor.
gkbd-keyboard-display -l $'fr\tbepo'

gkbd-keyboard-display -l $'fr\tbepo_latin9'

Disregard the weird Caps Lock position – that's my local configuration.
So which one to use? Well, practically all systems can cope with Unicode nowadays, so just go with the regular bepo
layout. Don't bother with bepo_latin9
.