it-swarm.com.de

Kann ich ein anderes GTK3-Thema als das Hauptthema auf eine einzelne Anwendung anwenden?

Kann ich beispielsweise Ambiance als Hauptthema beibehalten, aber der App von elementary ein elementares Thema zuweisen?

45
Rossi

Sie können die GTK-Umgebungsvariable GTK_THEME=elementary verwenden, um eine App mit dem elementaren Thema zu starten. Wenn Sie beispielsweise GTK_THEME=elementary pantheon-files ausführen, wird die elementare Datei-App unter Verwendung des elementaren GTK-Themas gestartet.

Damit dies bei jedem Start einer bestimmten App angewendet wird, erstellen Sie am besten eine benutzerdefinierte .desktop-Datei (Launcher).

Erstellen Sie eine benutzerdefinierte .desktop-Datei

  1. Öffnen Sie Ihren Dateibrowser
  2. Navigiere zu /usr/share/applications/
  3. Kopieren Sie den Launcher (Hervorheben und Strg + C) für die App, die Sie mit dem elementaren Thema starten möchten
  4. Navigiere zu ~/.local/share/applications/ und füge den Launcher ein (Strg + V)
  5. Klicken Sie mit der rechten Maustaste und öffnen Sie den Launcher mit einem Texteditor
  6. Ändern Sie die Zeile, die mit Exec= beginnt, um Exec=env GTK_THEME=elementary und dann den vorherigen vorhandenen Inhalt der Zeile einzuschließen. (Also würde Exec=pantheon-filesExec=env GTK_THEME=elementary pantheon-files werden)
  7. Speichern und schließen Sie die Datei

Wenn Sie die App das nächste Mal über Unity (oder einen App-Starter Ihrer Wahl) starten, wird das elementare Thema verwendet.

Bonus: Lass es funktionieren, wenn du die Kommandozeile benutzt

Möglicherweise möchten Sie die App auch mit dem elementaren Thema starten, wenn Sie sie über die Befehlszeile starten. Um dies zu tun:

  1. Öffnen Sie Ihre Terminal-App
  2. Gib alias pantheon-files="GTK_THEME=elementary pantheon-files" ein (ersetze pantheon-files durch die gewünschte App)
  3. Drücken Sie Enter

Vorsichtsmaßnahmen:

  1. Dadurch wird das Thema Ihres Fenstermanagers nicht in das elementare Thema geändert.
  2. Dies gilt (beabsichtigt) nur für Ihr Konto, nicht für root oder andere Personen auf dem Computer.
  3. Die Themennamen sind cAsE-sEnsItiVe und sollten mit dem Namen des Themenordners übereinstimmen.

Quellen:

  1. Ich bin ein elementarer Mitwirkender;)
  2. GTK + 3-Referenzhandbuch: Ausführen von GTK + -Anwendungen
  3. Variable in .desktop-Datei setzen
29
Cassidy James

Die Frage ist noch gültig und ich habe einen Weg gefunden:

  • erstelle einen beliebigen Ordner path/to/MY_FOLDER
  • erstellen Sie einen /share/themes/ -Ordner (das ist path/to/MY_FOLDER/share/themes).
  • setze ein beliebiges GTK3-Thema in das letztere
  • mbenennen das Thema zum Namen des AKTUELL AKTIVEN THEMAS.

    Mit diesem Befehl kann eine App das umbenannte Design anstelle des derzeit aktiven Designs verwenden:

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(Der Pfad nach GTK_DATA_PREFIX= muss der (nd nur der) zu dem Ordner sein, der enthält/share/themes/RENAMED_THEME. Deshalb ist es NICHTpath/to/MY_FOLDER/share/themes/RENAMED_THEME, sondern nur path/to/MY_FOLDER.)

Um das in einem Launcher zu haben, ersetzen Sie entsprechend:

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

Es ist sicherlich möglich, ich habe nicht viel Erfahrung mit Themen, aber wenn Sie zum Verzeichnis _/usr/share/themes/*Theme Name*/gtk-3.0/apps/_ navigieren, finden Sie _.css_ -Dateien, die mit Apps benannt sind, die auf Themen abzielen, sodass Sie sie erstellen können App-spezifische Themen.

Beachten Sie, dass für die Art und Weise, wie Sie das Thema Ihrer Apps erwähnt haben, möglicherweise einige Arbeiten erforderlich sind (z. B. die gleichzeitige Ausführung von Ambiance und Elementary), da für jedes Thema eine Basisdatei vorhanden ist, über der ein app-spezifisches Design erstellt wird (eine Datei gtkrc in Gtk 2.0 während eine Datei _gtk.css_ im Fall von Gtk3.0 ).

Und diese Basis-Designdatei enthält Stilregeln, die speziell auf das jeweilige Thema zugeschnitten sind. Daher können Sie kein elementares Erscheinungsbild aus der Basis-Designdatei von Ambiance erstellen, ohne umfangreiche Änderungen vorzunehmen, und selbst wenn Sie dies tun, verlieren Sie das Erscheinungsbild von Ambiance.

In GNOME ist es auch möglich, nur ein einzelnes Thema gleichzeitig anzuwenden. Wenn Sie beispielsweise das Erscheinungsbild-Fenster in Ubuntu 12.04 verwendet haben, können Sie ein beliebiges einzelnes Thema aus der Dropdown-Liste auswählen, falls Sie _gnome-Tweak-tool_, dann können Sie verschiedene Themen für Gtk, Fensterrahmen und Symbole festlegen, aber es ist immer noch nicht möglich, bestimmte Anwendungen auf ein Thema auszurichten. Wie bereits erwähnt, können Sie für verschiedene Anwendungen völlig unterschiedliche Themen festlegen Wenn Sie geschickt mit der Basis-Designdatei arbeiten, können dies derzeit keine Anwendungen von Drittanbietern selbst tun.

Eine Möglichkeit, dies selbst zu tun, besteht darin, dass die Basis-Themendatei (_gtk.css_) nur wesentliche Regeln enthält, die für ein beliebiges Thema neutral sind, sei es dunkel oder hell. Und lassen Sie das eigentliche Design des Themas in app-spezifischen Dateien schreiben, die sich im oben genannten Verzeichnis befinden, d. H. Sie können zum Stylen von Nautilus alle erforderlichen Eigenschaften in die Datei _nautilus.css_ schreiben. Das Gleiche gilt für jede App, auf die Sie abzielen möchten. Offensichtlich erfordert dies einiges an Erfahrung mit Gtk-Themes.

Sie können sich auf this beziehen, um Ihr eigenes Thema mit Hilfe einer Vorlage zu erstellen. Außerdem gibt es ein anständiges documentation zu Gtk + themeing.

7
Kushal

Ja, die einfache Möglichkeit besteht darin, die Anwendung in dem Befehl, mit dem Ihre Anwendung ausgeführt wird, auf den erforderlichen Pfad zu verweisen, in dem sich Ihre RC-Datei befindet:

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

Dies am 12.04 für inkscape (das übrigens immer noch Gnome2 ist) erzeugt dies:

inkscape window with windows theme

Weitere Informationen zum Gtk2-Thema finden Sie unter hier .

Ja, das kannst du, eigentlich habe ich gegoogelt und ein paar Antworten bekommen:

  1. Suchen Sie nach der genauen ausführbaren Datei für das Programm, dessen Thema Sie ändern möchten. Wenn Sie es beispielsweise für ein Büro benötigen, geben Sie which ooffice in das Terminal ein.
  2. Suchen Sie nach dem Ordner bin, in dem alle Anwendungen ihre ausführbaren Binärdateien ablegen. Geben Sie echo $PATH in das Terminal ein und Sie werden den Pfad sehen. Ich empfehle Ihnen, einen bin-Ordner in Ihrem Home-Verzeichnis zu erstellen, indem Sie mkdir ~/bin eingeben.
  3. Geben Sie gedit ~/.bashrc ein, um Ihre Bash-RC-Datei zu öffnen.
  4. Gehen Sie zum Ende dieser Datei und fügen Sie diese Zeile hinzu export PATH=~/bin:${PATH}

Jetzt erstellen wir ein Skript, das Ihr Programm mit einem benutzerdefinierten Thema ausführt:

  1. Erstellen Sie die Skriptdatei der Anwendung, indem Sie Folgendes eingeben: gedit ~/bin/ooffice
  2. Geben Sie diese Zeilen in die geöffnete Datei ein:

    #!/bin/bash
    env GTK2_RC_FILES=/usr/share/themes/SlicknessX/gtk-2.0/gtkrc /usr/bin/ooffice "[email protected]"
    
  3. Ändern Sie den Modus der Datei in ausführbar, indem Sie Folgendes eingeben: chmod +x ~/bin/ooffice.

Hoffe das hilft, du musst dir nur eines merken, das Format des Skripts wie unten gezeigt:

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "[email protected]"
0
Ravi Raj