Featured image of post COSMIC Greeter : forcer le clavier AZERTY sur l'écran de login

COSMIC Greeter : forcer le clavier AZERTY sur l'écran de login

Résoudre le problème du clavier QWERTY sur l'écran de connexion de COSMIC DE avec cosmic-greeter.

Contexte

COSMIC DE est l’environnement de bureau développé par System76. Une fois la session ouverte, le clavier se configure normalement en AZERTY pour un utilisateur français. Tout semble cohérent.

Mais au moment de saisir le mot de passe sur l’écran de connexion, la surprise arrive : le clavier passe en QWERTY. Les a et q sont inversés, le m devient un ;, et les chiffres changent de rangée. Résultat : impossible de se connecter sans faire très attention à ce qu’on tape.

Ce comportement a été constaté en particulier sous Pop!_OS 24.04 et Fedora, mais il concerne tout système utilisant COSMIC DE avec cosmic-greeter.

Pourquoi ça arrive

Le gestionnaire d’affichage cosmic-greeter s’exécute sous son propre utilisateur système (cosmic-greeter, uid 987). Contrairement à GDM ou SDDM dans certaines configurations, il n’hérite ni de la configuration clavier de l’utilisateur, ni de la locale console définie par localectl.

Sans fichier de configuration xkb_config, cosmic-greeter retombe sur le layout par défaut : us.

C’est un bug / limitation documenté de manière informelle : cosmic-greeter ne lit pas /etc/default/keyboard et ne suit pas non plus localectl.

La solution

La méthode la plus simple consiste à copier la configuration clavier déjà présente dans la session utilisateur vers le profil du greeter.

1. Copier la configuration existante

sudo mkdir -p /var/lib/cosmic-greeter/.config/cosmic/com.system76.CosmicComp/v1

sudo cp ~/.config/cosmic/com.system76.CosmicComp/v1/xkb_config \
        /var/lib/cosmic-greeter/.config/cosmic/com.system76.CosmicComp/v1/

2. Vérifier le contenu

Après la copie, le fichier doit ressembler à ceci :

(
    rules: "",
    model: "",
    layout: "fr",
    variant: "",
    options: Some("lv3:ralt_switch,compose:rctrl"),
    repeat_delay: 600,
    repeat_rate: 25,
)

Les valeurs importantes sont layout et variant. Un clavier français standard AZERTY correspond à layout: "fr" et variant: "".

3. Appliquer sans redémarrer

Il suffit de se déconnecter pour revenir sur l’écran de login. cosmic-greeter relit sa configuration et le clavier est alors en AZERTY.

Pas besoin de redémarrer la machine.

Alternative : créer le fichier manuellement

Si le fichier utilisateur n’existe pas encore, on peut le créer directement pour le greeter :

sudo mkdir -p /var/lib/cosmic-greeter/.config/cosmic/com.system76.CosmicComp/v1

sudo tee /var/lib/cosmic-greeter/.config/cosmic/com.system76.CosmicComp/v1/xkb_config << 'EOF'
(
    layout: "fr",
    variant: "",
)
EOF

Cette version minimale suffit à forcer le layout français.

Points de vigilance

  • La configuration n’est pas synchronisée automatiquement. Si vous changez le layout clavier plus tard dans les paramètres COSMIC, il faudra recopier le fichier vers le profil cosmic-greeter.
  • Cette manipulation concerne uniquement l’écran de connexion. Une fois dans la session, c’est la configuration utilisateur habituelle qui s’applique.
  • Le chemin cible utilise /var/lib/cosmic-greeter, pas /home. C’est un compte de service, son home n’est pas dans /home.

En résumé

ÉlémentValeur
EnvironnementCOSMIC DE (constaté sous Pop!_OS 24.04 et Fedora)
Fichier cible/var/lib/cosmic-greeter/.config/cosmic/com.system76.CosmicComp/v1/xkb_config
Layout AZERTYlayout: "fr", variant: ""
Action requiseCopier le fichier depuis la session utilisateur, puis se déconnecter

C’est une petite astuce, mais elle évite de perdre du temps à chercher pourquoi le mot de passe est refusé alors qu’il semble correct.

Remerciements

Merci à mon ami penthium2 d’avoir remonté ce problème et validé la correction, notamment sur Fedora.