EndeavourOS - écran connexion SDDM cassé après passage Plasma 6.8

EndeavourOS - écran connexion SDDM cassé après passage Plasma 6.8

Notes

EndeavourOS - écran connexion SDDM cassé après passage Plasma 6.8

Symptôme

Après la mise à jour vers KDE Plasma 6.8 (Frameworks 6.31, Qt 6.12), la page de connexion affiche une erreur à la place du thème :

1
2
The current theme cannot be loaded due to the errors below, please select another theme.
file:///usr/share/sddm/themes/eos-breeze/Main.qml:30:59: VirtualKeyboardLoader is not a type

Diagnostic

Avant de modifier quoi que ce soit, voici comment comprendre ce qui se passe.

1. Écarter une mise à jour partielle

Sur Arch et dérivées, une erreur QML après une montée de version vient souvent de paquets restés à l’ancienne version. Une mise à jour complète règle ce cas (elle modifie le système, c’est donc la seule commande « action » de cette liste) :

1
sudo pacman -Syu

2. Vérifier la cohérence des versions

Qt, Plasma et SDDM doivent être alignés :

1
pacman -Q sddm qt6-virtualkeyboard qt6-declarative plasma-workspace eos-breeze-sddm

Dans mon cas, tout était cohérent (Qt 6.12.0, Plasma 6.8.0), ce n’était donc pas la cause.

3. Vérifier l’intégrité du thème

1
pacman -Qkk eos-breeze-sddm

Un résultat 0 fichier modifié signifie que le paquet est intact : le problème vient du thème lui-même et pas d’un fichier abîmé.

4. Inspecter le contenu du thème

1
ls /usr/share/sddm/themes/eos-breeze/

Ici, aucun fichier VirtualKeyboardLoader.qml alors que Main.qml en a besoin. Le thème n’était pas compatible avec Plasma 6.8.

5. Trouver quel fichier de configuration fixe réellement le thème

1
grep -rn "Current=\|InputMethod" /etc/sddm.conf /etc/sddm.conf.d/ /usr/lib/sddm/sddm.conf.d/ 2>/dev/null

Cette étape est la plus instructive, car SDDM lit les fichiers de /etc/sddm.conf.d/ par ordre alphabétique et le dernier lu l’emporte. Sur ma machine, trois fichiers définissaient le thème :

Fichier Valeur
10-endeavouros.conf Current=breeze
99-local.conf Current=breeze
kde_settings.conf Current=eos-breeze

C’est kde_settings.conf qui gagnait, parce que les chiffres passent avant les lettres dans l’ordre alphabétique : un préfixe 99- ne garantit donc pas de passer en dernier. Pour être sûr d’être lu après lui, il faut un nom qui commence par une lettre située après « k » (par exemple zz-local.conf), ou corriger directement la ligne dans kde_settings.conf.

Le même grep permet aussi de repérer une ligne InputMethod=qtvirtualkeyboard, responsable du clavier virtuel qui prend tout l’écran avec le thème Breeze.

Voici la section « Solution », dans le même style que le diagnostic, pour la coller à la suite.

Solution

1. Passer au thème Breeze officiel

Le thème eos-breeze ne se charge plus avec Plasma 6.8, alors que le thème breeze de KDE est maintenu avec Plasma. Il est fourni par plasma-workspace : vérifie qu’il est présent avec ls /usr/share/sddm/themes/, sinon sudo pacman -S plasma-workspace l’installe.

2. Choisir le thème dans un fichier lu en dernier

Comme kde_settings.conf impose Current=eos-breeze, il faut un fichier qui passe après lui dans l’ordre alphabétique :

1
2
printf '[Theme]\nCurrent=breeze\n' | sudo tee /etc/sddm.conf.d/zz-local.conf
sudo systemctl restart sddm

Autre possibilité : corriger directement la source.

1
2
sudo sed -i 's/^Current=eos-breeze/Current=breeze/' /etc/sddm.conf.d/kde_settings.conf
sudo systemctl restart sddm

Cette seconde méthode revient à ce que fait le module « Écran de connexion (SDDM) » des Paramètres système de KDE, qui écrit dans ce fichier.

3. Supprimer le clavier virtuel

Avec le thème Breeze, un clavier virtuel peut s’ouvrir en quasi plein écran et masquer le champ du mot de passe. La cause est une ligne InputMethod=qtvirtualkeyboard, ajoutée par eos-breeze-sddm depuis la version 25.11 :

1
2
sudo sed -i '/InputMethod=qtvirtualkeyboard/d' /etc/sddm.conf.d/10-endeavouros.conf
sudo systemctl restart sddm

Si la ligne se trouve dans un fichier sous /usr/lib/sddm/, ne le modifie pas (une mise à jour l’écraserait) : crée un fichier de surcharge dans /etc/sddm.conf.d/ avec

1
2
[General]
InputMethod=

4. Vérifier

Relance le grep du diagnostic : il ne doit plus rester de Current=eos-breeze ni d’InputMethod=qtvirtualkeyboard dans les fichiers lus en dernier.

Si l’écran de connexion ne s’affiche plus

Passe en TTY (Ctrl+Alt+F3) et applique les commandes ci-dessus.

À retenir

  • Un préfixe 99- ne garantit pas de passer en dernier : les chiffres sont triés avant les lettres, donc utilise zz-.
  • En cas de doute, grep -rn "Current=" /etc/sddm.conf /etc/sddm.conf.d/ montre quel fichier décide.
  • Le thème eos-breeze devrait refonctionner après une mise à jour du paquet. Tu pourras alors supprimer ton fichier zz-local.conf si tu veux revenir au thème EndeavourOS.

Tags tendance