
J’utilise KeepassXC pour gérer mes mots de passe, couplé avec KeepassDX sur le smartphone. Les deux applications ouvrent le même fichier, sur mon serveur Nextcloud. Tout va pour le mieux dans le meilleur du monde (libre).
Sauf que cela fait deux fois que je tombe sur des problèmes cosmétiques avec cette application, et toujours liés à Gnome et Wayland. La bonne nouvelle, c’est que la prochaine version de KeepassXC (2.8+) va enfin régler tout ça.
PrécisionArticle mis à jour suite à un nouveau problème impliquant KeepassXC, Gnome et Wayland. Le premier était un problème de fenêtrage sous Debian (en juin 2024), et dernièrement c’est un problème d’icône sous EndeavourOS. J’ajoute donc ce nouveau problème et remets l’article en forme, avec plus d’explications sur l’origine des soucis.
Le problème global
Voilà un résumé de ce que j’ai compris :
- KeepassXC a été développé en Qt5, une API C++ qui offre des composants d’interface graphique. Sauf que cette version date de 2012, et à cette époque les bureaux utilisaient X11 comme serveur graphique. De nos jours, Wayland a remplacé X11, et Qt6 a remplacé Qt5 en 2020.
- Qt5 fonctionne donc par défaut sur X11 et ignore Wayland sous Gnome à moins qu’on ne le spécifie via une variable.
- La prochaine version de KeepassXC 2.8 sera écrite en Qt6, et le problème disparaître de lui-même. C’est certainement la meilleure façon de traiter le problème.
Le problème d’icône
Donc sous EndeavourOS/Gnome/Wayland, l’installation du paquet KeepassXC se passe sans problème et tout s’affiche correctement, icônes comprises, jusqu’au prochain redémarrage. À ce moment là, l’icône dans le lanceur de Gnome :

Mais elle a par contre disparue du Dock ainsi que lors de l’utilisation d’Alt-Tab pour basculer d’une fenêtre à l’autre :

La solution
Me rappelant du problème de fenêtre décrit plus bas, j’ai cherché du côté des packages sous ArchLinux s’il n’y avait pas un équivalent qui assure une compatibilité entre les applis Qt5 et Wayland. Il y a bien un paquet qt5-wayland, mais il était bien installé comme me le montre l’outil pacseek, et ne règle pas le problème :

J’ai fini par trouver une autre solution, qui d’ailleurs (mais je ne l’ai vu qu’après) était indiquée quand on lance KeppassXC avec l’option “debug-info” :
$ keepassxc --debug-info
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
KeePassXC - Version 2.7.12
Revision: 860e51d
Qt 5.15.19
Debugging mode is disabled.
Pour déclarer cette variable, le plus simple est alors de modifier le fichier org.keepassxc.KeePassXC.desktop utilisé par KeepassXC, en modifiant la ligne Exec :
Exec=keepassxc %f
devient :
Exec=env QT_QPA_PLATFORM=wayland keepassxc %f
ImportantAttention à modifier le bon fichier. Lors de l’installation, le fichier est créé dans
/usr/share/applications/, mais ce fichier sera écrasé lors d’une mise à jour de l’application. Il faut donc copier/modifier le fichier dans~/.local/share/applications/, ou même dans~/.config/autostart/si vous avez choisi le démarrage automatique pour KeepassXC.
Et les icônes reviennent comme par miracle.
Le problème de fenêtre
Revenons en juin 2024, où j’utilisais encore Debian (13), toujours sous Gnome Wayland. Cette fois, c’est la fenêtre de l’application qui ne s’affiche pas correctement : il n’y a aucune bordure, et la barre de titre ne respecte pas le style de Gnome.
Cela faisait un bout de temps que je traînais ce problème, je croyais que c’était un bug de KeepassXC avec ma version récente de Gnome (Debian SID, environnement Qt, GTK, Adwaita, que sais-je…). J’avais accepté de vivre avec ce problème ! 😢
NoteJ’avais même testé le nouveau Proton Pass pour voir ce que cela donnait, afin d’éventuellement changer d’application et retrouver un fenêtrage homagène. Mais bon, je l’ai vite désinstallé quand j’ai vu que pour créer plusieurs coffre-forts, il fallait passer à la version payante. Beau produit d’appel, certes, mais en général je n’aime pas trop ces applications soi-disant gratuites, mais aux fonctionnalités volontairement limitées pour vous faire passer à la version payante quand vous voulez utiliser autre chose que les fonctionnalités de base.
Je me suis alors penché pour de bon sur ce problème : en fait, KeepassXC est une application Qt, et les fenêtres de ce type d’application n’ont par défaut pas de bordure sous Gnome Wayland (au moins sous Debian). Il y a plusieurs façons de corriger ce problème.
Voilà à quoi ressemblait la fenêtre une fois KeepassXC d’installé, et ce qu’elle aurait du être :

Rien de crucial certes, mais les contours de la fenêtre sont mal définis (pas de bordure), la barre de titre n’est pas de la bonne couleur, et les boutons de contrôle sont différents : on est loin de la fenêtre de Gnome par défaut pour mon thème (Adwaita). Ça n’a l’air de rien, mais quand cette fenêtre était sur un fond blanc, je perdais mes repères pour déplacer la fenêtre avec la souris. Comme quoi un environnement de bureau homogène est important pour nos réflexes visuels.
AstuceAu passage, j’installe le paquet
keepassxc-full, car j’utilise l’extension dans Firefox. En effet, le package par défaut de keepassxc est désormais réduit au minimum (aucune fonctionnalité réseau) pour assurer une sécurité optimale et est donc fournit sans les options pour gérer une extension dans le navigateur. On peut soit installerkeepassxcpuis le paquetwebext-keepassxc-browser(dédié pour l’extension navigateur) , soit installerkeepassxc-fullpour retrouver le paquet habituel.
J’ai d’abord cherché du côté de KeepassXC dans les issues sur le dépôt Github de KeepassXC. Je tombais vite sur ces infos :
Title bar color and min max styling are not controlled by KeePassXC. Those are set by the window styling of the compositor.
ET
This isn’t a problem with KeePassXC, you’ll have to direct your concern with either Qt or Gnome.
J’ai alors lancé une VM Fedora pour vérifier que la fenêtre s’affichait correctement avec cet OS qui fournit un Gnome réputé d’origine (non modifié), et c’était bien le cas. J’ai ensuite lancé une VM Debian 12 (version stable) et constaté que le même problème était présent.
Première solution
Voici la première solution (contournement) trouvée, mais ce n’est pas celle que j’ai choisi finalement.
En regardant d’autres problèmes de fenêtrage sur le même dépôt Github de KeepassXC, de fil en aiguille et de click en click, j’arrivais sur ce problème de copier/coller. Et de fait, une solution de contournement était proposée : il s’agissait d’éditer le fichier /usr/share/applications/org.keepassxc.KeePassXC.desktop, et de modifier la ligne Exec :
Exec= keepassxc %f
TryExec=keepassxc
En ajoutant la définition d’une variable QT avant de lancer KeepassXC :
Exec=env QT_QPA_PLATFORM=xcb keepassxc %f
TryExec=keepassxc
C’est surprenant, mais il s’agit d’utiliser le plugin XCB permettant d’exécuter des applications Qt sous X11 et qui fonctionne également sous Wayland.
NOTE : Comme pour le problème d’icône ci-dessus, il vaut mieux modifier le bon fichier ~/.config/autostart/org.keepassxc.KeePassXC.desktop si KeepassXC est défini en démarrage automatique et que vous choisissez cette solution. Ou alors ~/.local/share/applications/org.keepassxc.KeePassXC.desktop.
Cela fonctionnait, mais ne règle finalement le problème que pour KeepassXC (d’autres applis en Qt5 pourraient avoir le même problème), et surtout ce n’est pas génial d’utiliser un plugin X11 même compatible Wayland… J’ai donc continué à chercher, cette fois avec le nom de cette variable Qt.
Solution pérenne
Et je suis tombé sur cette page : Fix no window border issuefor Qt Apps in GNOME Wayland. Il propose trois solutions, dont celle ci-dessus, mais je préfère celle-ci :
La solution consiste à installer un paquet QGnomePlatform, qui permet aux applications Qt d’utiliser le thème de Gnome :
QGnomePlatform is a Qt Platform Theme designed to use as many of the GNOME settings as possible in unmodified Qt applications. It allows Qt applications to fit into the environment as well as possible.
ImportantLe projet n’est toutefois plus maintenu ni développé, mais toujours disponible dans Debian 13 et donc opérationnel. C’est à mon avis la meilleure solution, car elle est plus globale et fonctionnera pour toute application Qt installée sur le PC qui aurait le même souci. Tant que je reste sous Debian 13 en tout cas !
Il suffit donc d’installer le paquet :
$ sudo apt install qgnomeplatform-qt5
Puis d’aller définir une variable dans le fichier qui s’exécute à l’ouverture de session. Il s’agit soit de .profile, de .bash_login ou de .bash_profile selon votre environnement (un seul existe) . Dans mon cas, c’est .profile, j’y ajoute donc la ligne suivante :
export QT_QPA_PLATFORMTHEME='gnome'
Et voilà, après un logout/login, je peux enfin lancer KeepassXC avec une fenêtre correspondant à mon thème Gnome : 😎

Une bonne chose de faite, pour un problème dont j’aurais du m’occuper il y a bien longtemps !