51 votes

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 attribuer le thème élémentaire à l'application élémentaire ?

40voto

Cosu Points 1636

Vous pouvez utiliser la variable d'environnement GTK GTK_THEME=elementary pour lancer une application sur le thème de l'élémentaire. Par exemple, en lançant GTK_THEME=elementary pantheon-files lancera l'application elementary Files en utilisant le thème GTK elementary.

Pour que cela s'applique à chaque fois que vous lancez une application spécifique, la meilleure solution consiste probablement à créer un fichier .desktop personnalisé (lanceur).

Créer un fichier .desktop personnalisé

  1. Ouvrez votre navigateur de fichiers
  2. Naviguez jusqu'à /usr/share/applications/
  3. Copier le lanceur (surligner et Ctrl+C) de l'application que vous voulez lancer avec le thème élémentaire.
  4. Naviguez jusqu'à ~/.local/share/applications/ et coller le lanceur (Ctrl+V)
  5. Cliquez avec le bouton droit de la souris et ouvrez le lanceur avec un éditeur de texte.
  6. Modifier la ligne commençant par Exec= pour inclure Exec=env GTK_THEME=elementary puis le contenu précédent de la ligne. (Ainsi Exec=pantheon-files deviendrait Exec=env GTK_THEME=elementary pantheon-files )
  7. Enregistrer et fermer le fichier

La prochaine fois que vous lancerez l'application depuis Unity (ou le lanceur d'applications 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 lorsqu'elle est lancée à partir de la ligne de commande. Pour ce faire, procédez comme suit

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

Mises en garde :

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

Sources :

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

12voto

Tsu Jan Points 129

La question est toujours d'actualité et j'ai trouvé une solution :

  • créer n'importe quel dossier path/to/MY_FOLDER

  • créer un /share/themes/ à l'intérieur de celui-ci (c'est-à-dire path/to/MY_FOLDER/share/themes ).

  • mettre n'importe quel thème GTK3 à l'intérieur de ce dernier

  • renommer le thème au nom du thème actuellement actif.

    Enfin, cette commande permet à une application d'utiliser le thème renommé à la place 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 que contient /share/themes/RENAMED_THEME . C'est pourquoi il est PAS path/to/MY_FOLDER/share/themes/RENAMED_THEME mais juste path/to/MY_FOLDER .)

Pour l'avoir dans un lanceur, il faut le remplacer en conséquence :

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

8voto

Nelson Reis Points 149

Oui, la méthode la plus simple consiste à indiquer à l'application le chemin requis où se trouve 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 l'exécution du thème Gtk2 ici .

8voto

longday Points 789

C'est certainement possible, je n'ai pas beaucoup d'expérience en matière de thématisation, mais lorsque vous naviguez vers /usr/share/themes/*Theme Name*/gtk-3.0/apps/ vous trouverez .css nommés en fonction des applications qu'ils visent à thématiser, de sorte que vous pouvez créer des thèmes spécifiques à une application.

Notez que la façon dont vous avez mentionné de thématiser vos applications peut nécessiter un certain travail (comme faire travailler Ambiance et Elementary simultanément), puisque chaque thème a un fichier de base sur lequel le style spécifique de l'application est fait, (un fichier gtkrc en Gtk 2.0 tandis qu'un fichier gtk.css en 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é, donc vous ne pouvez pas créer une apparence similaire à celle d'Elementary à partir du fichier de thème de base d'Ambiance sans faire de gros changements, et même si vous le faites, vous perdrez l'apparence d'Ambiance elle-même.

Par exemple, si vous avez utilisé la fenêtre Apparence dans Ubuntu 12.04, vous savez que vous pouvez sélectionner n'importe quel thème dans la liste déroulante. gnome-tweak-tool Comme je l'ai dit plus haut, 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, mais pour l'instant, aucune application tierce ne peut le faire elle-même.

Vous pouvez le faire vous-même en laissant le fichier du thème de base ( gtk.css ) ne comportent que des règles essentielles qui sont neutres pour tout thème, qu'il soit sombre ou clair. La conception du thème réel est écrite dans des fichiers spécifiques à l'application qui résident dans le répertoire mentionné ci-dessus, c'est-à-dire que pour styliser Nautilus, vous pouvez écrire toutes les propriétés requises dans le fichier nautilus.css fichier. Il en va de même pour toutes les applications que vous souhaitez cibler. Évidemment, cela nécessite une certaine expérience de la création de thèmes Gtk.

Vous pouvez vous référer cette pour créer votre propre thème à l'aide d'un modèle. la documentation sur le thème Gtk+.

2voto

Kogarashi Kaito Points 4562

Oui, c'est possible. En fait, j'ai fait une recherche sur Google et j'ai obtenu quelques réponses :

  1. Recherchez l'exécutable exact du programme dont vous souhaitez modifier le thème. Par exemple, si vous le voulez pour ooffice, tapez which ooffice dans le terminal.
  2. Recherchez le dossier bin dans lequel toutes les applications placent leurs exécutables binaires. Type d'application echo $PATH dans le terminal et vous obtiendrez le chemin. Je vous recommande de créer un dossier bin dans votre répertoire personnel en tapant mkdir ~/bin
  3. Type gedit ~/.bashrc pour ouvrir votre fichier bash rc.
  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 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 devez vous souvenir d'une seule chose, le format du script comme indiqué ci-dessous :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X