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ément | Valeur |
|---|---|
| Environnement | COSMIC DE (constaté sous Pop!_OS 24.04 et Fedora) |
| Fichier cible | /var/lib/cosmic-greeter/.config/cosmic/com.system76.CosmicComp/v1/xkb_config |
| Layout AZERTY | layout: "fr", variant: "" |
| Action requise | Copier 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.
