====== Applications Gtk sous KDE ======
On traite ici du problème des personnes utilisant KDE comme environnement de bureau.
L'interface graphique de certaines applications (tq. iceweasel/firefox) utilise la boîte à outils graphique Gtk (2 ou 3). KDE s'appuie sur Qt, d'où certains problèmes d'uniformité de l'interface. Les deux principaux aspects concernés sont l'//apparence// et l'//interaction// (le "look and feel").
En termes d'**apparence**, on veut que les applications aient à peu près la même allure : habillage, polices, icônes, fenêtres de dialogue, etc.
En terme d'**interaction**, on veut que les applications réagissent de la même manière : réaction aux actions de la souris, simple ou double clic, ordre de classement dans les liste. Un exemple critique est celui des fenêtres de sélection de fichier (file chooser, file picker).
Il existe [[https://wiki.archlinux.org/index.php/Uniform_Look_for_Qt_and_GTK_Applications|plusieurs stratégies]] pour uniformiser l'interface des applications. Il est conseillé de **choisir une stratégie** et de s'y tenir, sinon on risque de ne plus savoir où est géré tel ou tel paramètre de configuration. On évitera notamment de picorer ça et là, sur le web, des recettes partielles qui ont toutes les chances de s'inscrire dans des stratégies différentes (même si les contributeurs n'en savent rien).
===== Apparence =====
==== QtCurve ====
Un moyen rapide d'uniformiser la présentation est d'utiliser QtCurve. Ce jeu de composants graphiques existe aussi bien pour Qt que pour Gtk. Chaque application utilise la variante qui lui convient (Qt ou Gtk) pour produire, au final, un rendu similaire.
Sous Debian Whezzy, on installe le paquetage-chapeau qtcurve.
$ sudo apt-get install qtcurve
On indique ensuite à KDE d'utiliser QtCurve : Configuration du système > Apparence des applications. Ainsi, les applications basées sur Qt utiliseront QtCurve.
Pour les applications basées sur Gtk, aucune configuration n'est nécessaire si QtCurve a été installé sur une système vierge((L'installation du paquetage suffit.)). Si les applications Gtk s'obstinent à ne pas utiliser Qt Curve, il faut définir explicitement. On installe alors le paquetage //gtk-chtheme// qui permet de choisir le "thème" appliqué à Gtk (ici, QtCurve).
$ sudo apt-get install gtk-chtheme
Il est également possible de choisir le thème appliqué à Gtk à travers le panneau de configuration de KDE, moyennant l'installation d'un paquetage supplémentaire : //kde-config-gtk-style//. On accède au réglage par "Configuration du système > Apparence des applications > Configuration de Gtk". Des problèmes de fonctionnement (non vérifiés) de ce paquetage sont signalés sur des versions récentes de KDE.
==== gtk-qt-engine ====
Une autre solution consiste à utiliser un "convertisseur" de thèmes qui va traduire à la volée l'interface Gtk en Qt. On installe alors les paquetage nécessaires :
$ sudo apt-get install gtk-qt-engine kde-config-gtk-style
La configuration du comportement des applications Gtk se fait alors à travers le volet additionnel du panneau de configuration système de KDE : Configuration du système > Apparence des applications > Configuration de Gtk.
===== Firefox : imposer Dolphin comme navigateur de fichier =====
Au fil des ans, les réglages pour obliger //Firefox// à utiliser //Dolphin// se sont succédés. Attention aux solutions trouvées sur le web puisqu'une recherche renvoie logiquement toute cette histoire.
Source : [[https://www.reddit.com/r/kde/comments/sd1v2a/comment/huc6jf4/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button|Fil de discussion sur reddig]] (reddit.com) (en)
==== Procédure ====
* lancer Firefox
* le faire pointer sur //about:config//
* accepter de prendre le risque (question posée)
* dans la barre de rechercher taper : "widget.use-xdg-desktop-portal.file-picker"
* changer la valeur 2 (par défaut) qui s'affaiche par la valeur 1
* valider le réglage (il s'applique immédiatement)
Si on une utilise plusieurs profiles Firefox, il faut répéter l'opération sur chaque profil.
==== Configuration ====
* date : 23 juillet 2024
* système : debian 12
* KDE Plasma : 5.27.5
Les paquetages suivants sont installés et possiblement indispensables mais je n'ai pas pas fait le test :
* xdg-desktop-portal-kde 5.27.5-2
* xdg-desktop-portal 1.16.0-2
===== Interaction =====
Au delà de l'apparence et de certains comportement (ombrage dynamique, réaction au survol de la souris…) on souhaite conserver nos habitudes d'interaction. Ceci est d'autant plus important que Qt comme Gtk intègrent des composants de haut-niveau tels qu'un navigateur de fichier.
==== Navigateur de fichier ====
Une application utilise le navigateur de fichier intégré dans sa boîte à outils graphique. Par exemple, iceweasel/firefox aura l'allure d'une application Qt/KDE jusqu'au moment où l'on voudra enregistrer un fichier.
Une première option consisterait à obliger Gtk à utiliser le navigateur de fichiers de KDE. Il n'y a malheureusement pas solution générique. On peut, par exemple, imposer ce comportement à iceweasel((about:config puis inverser "ui.allow_platform_file_picker")), mais le résultat n'est ni graphiquement satisfaisant, ni fonctionnellement complet.
On doit donc se contenter de "rustines" pour se débarasser des comportements les plus perturbants de Gtk. Typiquement on voudrait que, dans le navigateur de fichiers :
- les fichiers soient affichés dans le même ordre,
- les fichiers et répertoires masqués soient visibles ou non,
- les fichiers soient accompagnés des même informations (droits, dates…),
- les dossiers s'ouvrent de la même manière (double ou simple clic).
=== Ordre des fichiers ===
Je n'ai pas trouvé de solution à ce problème. Tout au plus peut-on configurer l'ordre de classement qui sera sytématiquement appliqué, par défaut, à tous les dossiers affichés dans le navigateur de fichiers de Gtk. Autrement dit, sans tenir compte des préférences propres à chaque dossier, telles que définies dans KDE/Dolphin.
$ nano ~/.config/gtk-2.0/gtkfilechooser.ini
puis modifier les paramètres (il faut tatonner, faute de documentation). Voici un exemple de ce fichier :
[Filechooser Settings]
LocationMode=filename-entry
ShowHidden=false
ExpandFolders=true
ShowSizeColumn=false
GeometryX=200
GeometryY=195
GeometryWidth=1082
GeometryHeight=643
SortColumn=modified
SortOrder=descending
=== Éléments masqués ===
Dans le navigateur de fichiers :
Ctrl + H
affiche ou masque les fichiers et répertoires masqués.
=== Chemin absolu ===
Dans le navigateur de fichiers :
Ctrl + L
active la saisie du chemin absolu