web-dev-qa-db-fra.com

Puis-je appliquer un thème GTK3 différent du thème principal à une application individuelle?

Par exemple, puis-je conserver Ambiance comme thème principal mais affecter un thème élémentaire à l'application de l'élémentaire?

45
Rossi

Vous pouvez utiliser la variable d'environnement GTK GTK_THEME=elementary pour lancer une application avec le thème élémentaire. Par exemple, l'exécution de GTK_THEME=elementary pantheon-files lancera l'application élémentaire Fichiers en utilisant le thème élémentaire GTK.

Pour que cela s'applique à chaque fois que vous lancez une application spécifique, votre meilleure option est de créer un fichier .desktop personnalisé (lanceur).

Créer un fichier .desktop personnalisé

  1. Ouvrez votre navigateur de fichiers
  2. Accédez à /usr/share/applications/
  3. Copiez le lanceur (surbrillance et Ctrl + C) pour l'application que vous souhaitez lancer avec le thème élémentaire
  4. Accédez à ~/.local/share/applications/ et collez le programme de lancement (Ctrl + V).
  5. Faites un clic droit et ouvrez le lanceur avec un éditeur de texte
  6. Modifiez la ligne commençant par Exec= pour inclure Exec=env GTK_THEME=elementary, puis le contenu précédent de la ligne. (Donc Exec=pantheon-files deviendrait Exec=env GTK_THEME=elementary pantheon-files)
  7. Enregistrez et fermez le fichier

La prochaine fois que vous lancerez l’application à partir de Unity (ou le lanceur de votre choix), elle utilisera le thème élémentaire.

Bonus: le faire fonctionner en ligne de commande

Vous pouvez également souhaiter que l'application se lance avec le thème élémentaire lors de son lancement à partir de la ligne de commande. Faire cela:

  1. Ouvrez votre application Terminal
  2. Tapez alias pantheon-files="GTK_THEME=elementary pantheon-files" (en remplaçant pantheon-files par l'application souhaitée)
  3. Appuyez sur Entrée

Mises en garde:

  1. Cela ne changera pas le thème de votre gestionnaire de fenêtres au thème élémentaire.
  2. Ceci (par conception) ne s'appliquera qu'à votre compte, pas à root ni à quiconque sur la machine.
  3. Les noms de thème sont cAsE-sEnsItiVe et doivent correspondre au nom de dossier du thème.

Sources:

  1. Je suis un contributeur élémentaire;)
  2. Manuel de référence de GTK + 3: Exécution des applications GTK +
  3. Définir la variable dans le fichier .desktop
29
Cassidy James

La question est toujours valable et j'ai trouvé un moyen:

  • créer n'importe quel dossier path/to/MY_FOLDER
  • créer un dossier /share/themes/ à l'intérieur (c'est-à-dire path/to/MY_FOLDER/share/themes).
  • mettre n'importe quel thème GTK3 dans ce dernier
  • renommer le thème du nom du THÈME ACTUELLEMENT ACTIF.

    Enfin, cette commande obligera une application à utiliser le thème renommé au lieu du thème actif:

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(Le chemin après GTK_DATA_PREFIX= doit être que (et seulement cela) dans le dossier qui contient/share/themes/RENAMED_THEME. C'est pourquoi c'est PASpath/to/MY_FOLDER/share/themes/RENAMED_THEME, mais juste path/to/MY_FOLDER.)

Pour avoir cela dans un lanceur, remplacez en conséquence:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'
9
Tsu Jan

C'est certainement possible, je n'ai pas beaucoup d'expérience en matière de thème, mais lorsque vous accédez au répertoire /usr/share/themes/*Theme Name*/gtk-3.0/apps/, vous trouverez des fichiers .css, nommés avec les applications ciblées par thème, afin de vous permettre de créer des thèmes spécifiques.

Notez que la manière dont vous avez évoqué le thème de vos applications peut nécessiter du travail (comme avoir simultanément Ambiance et Elémentaire, car chaque thème a un fichier de base sur lequel un style spécifique est appliqué, (un fichier gtkrcin Gtk 2.0 alors qu'un fichier gtk.css dans le cas de Gtk3.0 ).

Et ce fichier de thème de base contient des règles de style qui ciblent spécifiquement le thème donné. Par conséquent, vous ne pouvez pas créer un élément similaire à Elementary à partir du fichier de thème de base d'Ambiance sans apporter de modifications lourdes. Même si vous le faites, vous perdrez le look Ambiance lui-même.

En outre, dans GNOME, il est possible de n’appliquer qu’un seul thème à la fois. Par exemple, si vous avez utilisé la fenêtre Apparence dans Ubuntu 12.04, vous pouvez sélectionner un seul thème dans le menu déroulant, si vous avez utilisé gnome-Tweak-tool, que vous pouvez définir différents thèmes, pour Gtk, les cadres de fenêtre et les icônes, mais cela ne permet toujours pas de cibler des applications spécifiques sur un thème. Par conséquent, comme je l’ai dit plus tôt, vous pouvez définir des thèmes totalement différents pour différentes applications si vous travaillez intelligemment. avec le fichier de thème de base, aucune application tierce ne peut le faire seule.

Une façon de le faire vous-même est que, le fichier de thème de base (gtk.css) n'ait que des règles essentielles neutres vis-à-vis de tout thème, qu'il soit sombre ou clair. Et faites en sorte que la conception du thème soit écrite dans des fichiers spécifiques à l’application qui résident dans le répertoire mentionné ci-dessus, c’est-à-dire pour le style de Nautilus, vous pouvez écrire toutes les propriétés requises dans le fichier nautilus.css. Même avec chaque application que vous souhaitez cibler. De toute évidence, cela nécessite une expérience de thématisation décente de Gtk.

Vous pouvez vous référer à this pour créer votre propre thème à l'aide d'un modèle. En outre, il existe une version décente documentation sur Gtk + themeing.

7
Kushal

Oui, le moyen le plus simple est de pointer l'application sur le chemin requis où réside votre fichier rc, dans la commande qui exécute votre application:

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape

Ceci sur 12.04 pour inkscape (qui est toujours Gnome2 btw) produit ceci:

inkscape window with windows theme

Voir plus d'informations sur le thème Gtk2 en cours d'exécution ici .

Oui vous pouvez, en fait j'ai googlé et obtenu quelques réponses:

  1. Recherchez l'exécutable exact du programme dont vous souhaitez modifier le thème. Par exemple, si vous le souhaitez pour le bureau, tapez which ooffice dans le terminal.
  2. Recherchez le dossier bin où toutes les applications placent leurs exécutables binaires. Tapez echo $PATH dans le terminal et vous verrez le chemin. Je vous recommande de créer un dossier bin dans votre répertoire personnel en tapant mkdir ~/bin
  3. Tapez gedit ~/.bashrc pour ouvrir votre fichier rc bash.
  4. Allez au bas de ce fichier et ajoutez cette ligne export PATH=~/bin:${PATH}

Nous allons maintenant créer un script qui exécutera votre programme avec un thème personnalisé:

  1. Créez le fichier de script de l'application en tapant: gedit ~/bin/ooffice
  2. Tapez ces lignes dans le fichier ouvert:

    #!/bin/bash
    env GTK2_RC_FILES=/usr/share/themes/SlicknessX/gtk-2.0/gtkrc /usr/bin/ooffice "$@"
    
  3. Changez le mode du fichier en exécutable en tapant: chmod +x ~/bin/ooffice.

J'espère que cela vous aidera, vous ne devez vous rappeler qu'une chose, le format du script, comme indiqué ci-dessous:

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "$@"
0
Ravi Raj