Les réponses actuelles à propos de Gtk2, je demande à propos de Gtk3.
neonboy
J'ai modifié la question pour mieux refléter ce que vous recherchez. Désolé, mais la réponse courte de mes recherches est pas , vous ne pouvez pas sans avoir à dépenser un peu d' effort de créer un nouveau thème « hybride » comme @Kush expliqué :( Il est pas aussi simple que GTK2 plus.
ish
Réponses:
32
Vous pouvez utiliser la variable d'environnement GTK GTK_THEME=elementarypour lancer une application avec le thème élémentaire. Par exemple, l'exécution GTK_THEME=elementary pantheon-fileslancera 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 probablement de créer un fichier .desktop personnalisé (lanceur).
Créer un fichier .desktop personnalisé
Ouvrez votre navigateur de fichiers
Aller vers /usr/share/applications/
Copiez le lanceur (surbrillance et Ctrl + C) pour l'application que vous souhaitez lancer avec le thème élémentaire
Accédez au ~/.local/share/applications/lanceur et collez-le (Ctrl + V)
Faites un clic droit et ouvrez le lanceur avec un éditeur de texte
Modifiez la ligne en commençant par Exec=inclure Exec=env GTK_THEME=elementarypuis le contenu précédent de la ligne. (Ainsi Exec=pantheon-filesdeviendrait Exec=env GTK_THEME=elementary pantheon-files)
Enregistrez et fermez le fichier
La prochaine fois que vous lancerez l'application depuis 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 du lancement à partir de la ligne de commande. Faire cela:
Ouvrez votre application Terminal
Type alias pantheon-files="GTK_THEME=elementary pantheon-files"(en remplaçant pantheon-filespar l'application souhaitée)
appuyez sur Entrée
Mises en garde:
Cela ne changera pas le thème de votre gestionnaire de fenêtres au thème élémentaire.
Ceci (par conception) ne s'appliquera qu'à votre compte, pas à root ni à quiconque sur la machine.
Les noms de thème sont cAsE-sEnsItiVe et doivent correspondre au nom de dossier du thème.
Bonne réponse, mais je ne peux pas que cela fonctionne pour aucun thème. Pouvez-vous donner un exemple en utilisant un terminal find /usr/share/themes -type d -name 'gtk-3.0' | awk -F'/' '{print $5}'et gedità des fins de démonstration? Par exemple GTK_THEME="HighContrast" geditou env GTK_THEME="HighContrast" geditou GTK_THEME=Adwaita:dark gedit... rien.
Redsandro
Je viens de le changer /usr/share/applications/<appname>.desktopet cela a fonctionné pour moi.
Drew Chapin
Avez-vous un moyen de le faire à partir du code contenu dans l'application?
Anony-Mousse
1
Il est à noter que les noms de thèmes sont sensibles à la casse.
Cedric Reichenbach
Cela fonctionne pour certaines applications mais pas pour tous.
10
La question est toujours valable et j'ai trouvé un moyen:
créer n'importe quel dossier path/to/MY_FOLDER
créer un /share/themes/dossier à l'intérieur (c'est-à-dire path/to/MY_FOLDER/share/themes).
mettre n'importe quel thème GTK3 dans ce dernier
renommez le thème avec le nom du THEME 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 ce n'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:
Maintenant, cela fonctionne même avec Eclipse, contrairement aux autres réponses que j'ai essayées.
Ruslan
2
quel fichier / dossier voulons-nous utiliser exactementGTK_DATA_PREFIX ?
runDOSrun
1
C'était assez déroutant, mais je l'ai compris et modifié la réponse.
Une autre façon est de mettre le thème renommé spécifique à l'application dans ~/.themes(l'a actuellement actif à être /usr/share/themes) et ensuite utiliser un certain chemin GTK_DATA_PREFIX=path/to/nowhere pour lancer cette application, qui réinitialisera le thème de l' application à l'actuel, seulement il regardera d' abord dans ~/.themeset prendre celui avec le même nom là-bas.
1
@runDOSrun - le chemin après GTK_DATA_PREFIX=doit être celui ( et seulement celui-là ) du dossier qui contient/share/themes/RENAMED_THEME . C'est pourquoi ce n'est pasFOLDER/share/themes/RENAMED_THEME , mais juste FOLDER.
8
C'est certainement possible, je n'ai pas beaucoup d'expérience en matière de thème, mais lorsque vous accédez à un /usr/share/themes/*Theme Name*/gtk-3.0/apps/répertoire, vous trouvez des .cssfichiers, nommés avec les applications qu'ils ciblent, ainsi vous pouvez créer des thèmes spécifiques à chaque application.
Notez que la façon dont vous avez mentionné 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 gtkrcdans Gtk 2.0). tandis que, un fichier gtk.cssdans 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 l'apparence d'Ambiance.
En outre, dans GNOME, il est possible d'avoir qu'un seul thème appliqué à la fois, par exemple, si vous avez utilisé la fenêtre Apparence dans Ubuntu 12.04, vous savez peut peut sélectionner un thème unique dans le menu déroulant, au cas où vous avez utilisé gnome-tweak-tool, que vous pouvez définir différents thèmes, pour Gtk, des cadres de fenêtre et des 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 précédemment, vous pouvez définir des thèmes totalement différents pour différentes applications si vous travaillez intelligemment. fichier de thème de base, à partir de maintenant, aucune application tierce ne peut le faire par elle-même.
Une façon de le faire vous-même est de laisser le fichier de thème de base ( gtk.css) n'avoir que des règles essentielles neutres par rapport à 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 se trouvent dans le répertoire mentionné ci-dessus, c’est-à-dire que, pour le style de Nautilus, vous pouvez écrire toutes les propriétés requises dans un nautilus.cssfichier. 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 consulter ce pour créer votre propre thème en utilisant le modèle, il y a aussi une bonne documentation sur Gtk + themeing.
Je ne veux pas créer un nouveau thème, je veux assigner un thème existant.
Neonboy
@neonboy: Comme je l'ai dit avec GTK3, ce n'est pas si simple, un thème est distribué sur plusieurs fichiers, et si les dépendances ne sont pas satisfaites, un thème brisé est tout ce que vous aurez. C'est pourquoi j'ai posté la réponse qui montre une solution possible avec GTK3, et non pas GTK2 (dans laquelle c'est assez facile).
Kushal le
6
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:
Vous ne l'avez pas précisé dans votre question initiale. S'il vous plaît ne contrariez pas les questionneurs.
Martin Owens -doctormo-
5
À l'origine, il s'agissait de "Puis-je utiliser différents thèmes GTK3 pour des applications individuelles?" Gtk3 avait encore un sujet dans la question, puis foss freedom me demande de commenter les réponses non valides et de modifier la question si elle était nécessaire, je ne contrarie personne.
Neonboy
1
Oui vous pouvez, en fait j'ai googlé et obtenu quelques réponses:
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 oofficele terminal.
Recherchez le dossier bin où toutes les applications placent leurs exécutables binaires. Tapez echo $PATHle terminal et vous verrez le chemin. Je vous recommande de créer un dossier bin dans votre répertoire personnel en tapantmkdir ~/bin
C'est certainement possible pour les applications GTK2 utilisant GTK2_RC_FILES env. variable. Aussi, quels thèmes parlez-vous de la compilation? La question concerne les thèmes GTK disponibles dans Ubuntu à l’échelle du système.
Ish
1
Je crois que la méthode que vous avez mentionnée cible Gtk2.0 alors que Ubuntu 12.04 utilise Gtk3.0 pour les thèmes, donc if pourrait ne pas fonctionner.
Kushal
6
Je suis désolé, c'est une solution pour Gtk2, la question concerne Gtk3.
Réponses:
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écutionGTK_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 probablement de créer un fichier .desktop personnalisé (lanceur).
Créer un fichier .desktop personnalisé
/usr/share/applications/
~/.local/share/applications/
lanceur et collez-le (Ctrl + V)Exec=
inclureExec=env GTK_THEME=elementary
puis le contenu précédent de la ligne. (AinsiExec=pantheon-files
deviendraitExec=env GTK_THEME=elementary pantheon-files
)La prochaine fois que vous lancerez l'application depuis 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 du lancement à partir de la ligne de commande. Faire cela:
alias pantheon-files="GTK_THEME=elementary pantheon-files"
(en remplaçantpantheon-files
par l'application souhaitée)Mises en garde:
Sources:
la source
find /usr/share/themes -type d -name 'gtk-3.0' | awk -F'/' '{print $5}'
etgedit
à des fins de démonstration? Par exempleGTK_THEME="HighContrast" gedit
ouenv GTK_THEME="HighContrast" gedit
ouGTK_THEME=Adwaita:dark gedit
... rien./usr/share/applications/<appname>.desktop
et cela a fonctionné pour moi.La question est toujours valable et j'ai trouvé un moyen:
path/to/MY_FOLDER
/share/themes/
dossier à l'intérieur (c'est-à-direpath/to/MY_FOLDER/share/themes
).renommez le thème avec le nom du THEME 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 ce n'est PASpath/to/MY_FOLDER/share/themes/RENAMED_THEME
, mais justepath/to/MY_FOLDER
.)Pour avoir cela dans un lanceur, remplacez en conséquence:
la source
GTK_DATA_PREFIX
?~/.themes
(l'a actuellement actif à être/usr/share/themes
) et ensuite utiliser un certain cheminGTK_DATA_PREFIX=path/to/nowhere
pour lancer cette application, qui réinitialisera le thème de l' application à l'actuel, seulement il regardera d' abord dans~/.themes
et prendre celui avec le même nom là-bas.GTK_DATA_PREFIX=
doit être celui ( et seulement celui-là ) du dossier qui contient/share/themes/RENAMED_THEME
. C'est pourquoi ce n'est pasFOLDER/share/themes/RENAMED_THEME
, mais justeFOLDER
.C'est certainement possible, je n'ai pas beaucoup d'expérience en matière de thème, mais lorsque vous accédez à un
/usr/share/themes/*Theme Name*/gtk-3.0/apps/
répertoire, vous trouvez des.css
fichiers, nommés avec les applications qu'ils ciblent, ainsi vous pouvez créer des thèmes spécifiques à chaque application.Notez que la façon dont vous avez mentionné 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
gtkrc
dans Gtk 2.0). tandis que, un fichiergtk.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 l'apparence d'Ambiance.
En outre, dans GNOME, il est possible d'avoir qu'un seul thème appliqué à la fois, par exemple, si vous avez utilisé la fenêtre Apparence dans Ubuntu 12.04, vous savez peut peut sélectionner un thème unique dans le menu déroulant, au cas où vous avez utilisé
gnome-tweak-tool
, que vous pouvez définir différents thèmes, pour Gtk, des cadres de fenêtre et des 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 précédemment, vous pouvez définir des thèmes totalement différents pour différentes applications si vous travaillez intelligemment. fichier de thème de base, à partir de maintenant, aucune application tierce ne peut le faire par elle-même.Une façon de le faire vous-même est de laisser le fichier de thème de base (
gtk.css
) n'avoir que des règles essentielles neutres par rapport à 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 se trouvent dans le répertoire mentionné ci-dessus, c’est-à-dire que, pour le style de Nautilus, vous pouvez écrire toutes les propriétés requises dans unnautilus.css
fichier. 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 consulter ce pour créer votre propre thème en utilisant le modèle, il y a aussi une bonne documentation sur Gtk + themeing.
la source
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:
Ceci sur 12.04 pour inkscape (qui est toujours Gnome2 btw) produit ceci:
Voir plus d'informations sur le thème Gtk2 en cours d'exécution ici .
la source
Oui vous pouvez, en fait j'ai googlé et obtenu quelques réponses:
which ooffice
le terminal.echo $PATH
le terminal et vous verrez le chemin. Je vous recommande de créer un dossier bin dans votre répertoire personnel en tapantmkdir ~/bin
gedit ~/.bashrc
pour ouvrir votre fichier rc bash.export PATH=~/bin:${PATH}
Nous allons maintenant créer un script qui exécutera votre programme avec un thème personnalisé:
gedit ~/bin/ooffice
Tapez ces lignes dans le fichier ouvert:
Changer le mode du fichier exécutable pour 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:
la source