web-dev-qa-db-fra.com

Pourquoi certains thèmes ont-ils des dossiers gtk-3.0 et gtk-3.20?

OS: Ubuntu 18.04

dkb@dkb-G:/usr/share/themes$ find -iname gtk-3* -type d
./Radiant-MATE/gtk-3.0
./Greybird/gtk-3.0
./Emacs/gtk-3.0
./Ambiance/gtk-3.0
./Ambiance/gtk-3.20
./Adwaita-dark/gtk-3.0
./Numix/gtk-3.0
./Numix/gtk-3.20
./Ambiant-MATE-Dark/gtk-3.0
./Radiance/gtk-3.0
./Radiance/gtk-3.20
./HighContrast/gtk-3.0
./Adwaita/gtk-3.0
./Ambiant-MATE/gtk-3.0
./Default/gtk-3.0
dkb@dkb-G:/usr/share/themes$ 

Pourquoi Ambiance, Radiance et Numix ont-ils des dossiers gtk-3.0 et gtk-3.20 alors que d'autres ont simplement gtk-3.0?

De brefs tests, il apparaît que les modifications apportées aux fichiers dans gtk-3.20 importent, alors que les mêmes modifications apportées au fichier correspondant dans gtk-3.0 n'ont aucun effet.

Par exemple, j'ai modifié gtk-main.css dans les deux dossiers du thème Ambiance pour changer

@define-color selected_bg_color #f07746;

à

@define-color selected_bg_color #ff00ff;

Et seul le changement de gtk-3.20 a eu un effet.

1
DK Bose

Les dossiers gtk-3.0 et gtk-3.20 contiennent des fichiers texte basés sur le standard Web CSS, mais avec quelques extensions et modifications. Chaque fichier contient de nombreuses règles décrivant la manière dont les informations doivent être affichées lorsque certaines conditions sont remplies - par exemple, quelles couleurs et quelles polices doivent être utilisées pour une étiquette de texte dans une zone de déroulement dans un carnet de notes. Comme il existe de nombreux types de widgets et de conteneurs, le nombre de règles se multiplie rapidement.

Les concepteurs de la GTK ont décidé que la forme initiale de CSS (3.0) n’était plus adaptée et qu’un certain nombre de modifications devaient être apportées. Cela signifie que les fichiers CSS précédents ne sont plus valides et que le nouvel ensemble de fichiers CSS doit être placé dans le dossier gkt-3.20. Cependant, étant donné que toutes les applications ne pourraient pas/ne pourraient pas être reconstruites dans la nouvelle version du framework, l'ancien dossier gtk-3.0 reste afin que les anciennes applications puissent continuer à fonctionner comme avant. En effet, le dossier gtk-2.0 est toujours requis pour la même raison.

Si vous modifiez un thème, les modifications que vous apportez au dossier 3.20 n'affecteront que les applications construites dans la version 3.20 (ou ultérieure). Pour changer l'apparence d'anciennes applications, vous devez apporter les modifications correspondantes au dossier gtk-3.0. Pour les très anciennes applications, vous devrez également changer le dossier gtk-2.0, mais c'est une toute autre histoire.

1
bobl01