Posso applicare un tema GTK3 diverso da quello principale a una singola applicazione?

42

Ad esempio, posso mantenere Ambiance come tema principale ma assegnare un tema elementare all'app elementare?

    
posta Rossi 11.11.2011 - 00:45

5 risposte

22

Puoi utilizzare la variabile di ambiente GTK GTK_THEME=elementary per avviare un'app con il tema elementare. Ad esempio, l'esecuzione di GTK_THEME=elementary pantheon-files avvierà l'applicazione File elementare utilizzando il tema GTK elementare.

Per fare in modo che venga applicato ogni volta che si avvia un'applicazione specifica, è probabile che l'opzione migliore crei un file .desktop personalizzato (launcher).

Crea un file .desktop personalizzato

  1. Apri il tuo browser di file
  2. Vai a /usr/share/applications/
  3. Copia l'utilità di avvio (evidenziazione e Ctrl + C) per l'app che vuoi avviare con il tema elementare
  4. Vai a ~/.local/share/applications/ e incolla il launcher (Ctrl + V)
  5. Fai clic con il tasto destro e apri il programma di avvio con un editor di testo
  6. Modifica la riga che inizia con Exec= per includere Exec=env GTK_THEME=elementary e quindi i precedenti contenuti esistenti della linea. (Quindi Exec=pantheon-files diventerebbe Exec=env GTK_THEME=elementary pantheon-files )
  7. Salva e chiudi il file

La prossima volta che avvii l'app da Unity (o il tuo launcher dell'app scelto) userà il tema elementare.

Bonus: fallo funzionare quando usi la riga di comando

Potresti anche voler avviare l'app con il tema elementare quando la lanci dalla riga di comando. Per farlo:

  1. Apri la tua app Terminale
  2. Digita alias pantheon-files="GTK_THEME=elementary pantheon-files" (sostituendo pantheon-files con l'app desiderata)
  3. Premere Invio

Avvertenze:

  1. Questo non cambierà il tema del tuo gestore di finestre sul tema elementare.
  2. Questo (in base alla progettazione) si applica solo al tuo account, non a root o a nessun altro sulla macchina.
  3. I nomi dei temi sono cAsE-sEnsItiVe e devono essere abbinati al nome della cartella del tema.

Fonti:

  1. Sono un contributore elementare;)
  2. Manuale di riferimento di GTK + 3: esecuzione di applicazioni GTK +
  3. Imposta la variabile nel file .desktop
risposta data Cassidy James 19.06.2014 - 22:45
9

La domanda è ancora valida e ho trovato un modo:

  • crea una cartella path/to/MY_FOLDER
  • crea una cartella /share/themes/ al suo interno (ovvero path/to/MY_FOLDER/share/themes ).
  • inserisci qualsiasi tema GTK3 all'interno di quest'ultimo
  • rinomina il tema con il nome del TEMA ATTUALMENTE ATTIVO.

    Finalmente, questo comando farà sì che un'app utilizzi il tema rinominato anziché quello attualmente attivo:

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(Il percorso dopo GTK_DATA_PREFIX= deve essere quello ( e solo quello ) nella cartella che contiene /share/themes/RENAMED_THEME . Ecco perché è NOT path/to/MY_FOLDER/share/themes/RENAMED_THEME , ma solo path/to/MY_FOLDER .)

Per averlo all'interno di un launcher, sostituirlo di conseguenza:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'
    
risposta data Tsu Jan 28.02.2014 - 11:35
7

È certamente possibile, non ho molta esperienza di tema, ma quando navighi nella directory /usr/share/themes/*Theme Name*/gtk-3.0/apps/ , troverai .css file, chiamati con le app che hanno come target per il tema, quindi sì puoi creare l'app -Temi specifici.

Tieni presente che il modo in cui hai menzionato il tema delle tue app può richiedere un po 'di lavoro (come avere Ambiance ed Elementary contemporaneamente, dato che ogni tema ha un file di base in cima al quale viene fatto uno stile specifico per le app, (un file gtkrc in Gtk 2.0 while, un file gtk.css in caso di Gtk3.0 ).

E questo file del tema di base contiene regole di stile che mirano specificamente al tema dato, quindi non puoi creare elementi elementari come l'aspetto del file di base di Ambiance senza apportare grossi cambiamenti, e anche se lo fai, perderesti l'aspetto di Ambiance stesso.

Inoltre, in GNOME, è possibile applicare un solo tema alla volta, ad esempio, se hai utilizzato la finestra Aspetto in Ubuntu 12.04, sai puoi selezionare qualsiasi tema singolo dal menu a discesa, nel caso tu abbia usato gnome-tweak-tool , che puoi impostare temi diversi, per Gtk, finestre e icone, ma ancora, non consente di indirizzare specifiche applicazioni al tema, così come ho detto prima, puoi impostare temi completamente diversi per differenti applicazioni se lavori abilmente con il file del tema base, al momento nessuna applicazione di terze parti può farlo da sola.

Un modo in cui puoi farlo da solo è che, lascia che il file del tema di base ( gtk.css ) abbia solo regole essenziali che sono neutre rispetto a qualsiasi tema, essendo scure o chiare. E avere il disegno del tema reale scritto in file specifici dell'applicazione che risiedono nella directory sopra menzionata, vale a dire per lo styling Nautilus, è possibile scrivere tutte le proprietà richieste in nautilus.css file. Lo stesso vale per ogni app che desideri scegliere come target. Ovviamente, per fare ciò è necessaria una discreta esperienza sul tema di Gtk.

Puoi fare riferimento a questo per creare il tuo tema usando template, c'è anche una discreta documentazione sul tema di Gtk +.

    
risposta data Kushal 27.05.2012 - 12:10
4

Sì, il modo più semplice è puntare l'applicazione sul percorso richiesto in cui risiede il tuo file rc, nel comando che esegue la tua applicazione:

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

Questo in 12.04 per inkscape (che è ancora Gnome2 btw) produce questo:

Visualizza ulteriori informazioni sul tema Gtk2 in esecuzione qui .

    
risposta data Martin Owens -doctormo- 23.04.2012 - 16:21
0

Sì, è possibile, in realtà ho cercato su Google e ho ottenuto alcune risposte:

  1. Cerca l'eseguibile esatto per il programma che desideri modificare. Ad esempio, se lo vuoi per l'ufficio, digita which ooffice nel terminale.
  2. Cerca la cartella bin in cui tutte le applicazioni mettono i loro eseguibili binari. Digita echo $PATH nel terminale e troverai il percorso. Ti consiglio di creare una cartella bin nella tua directory home digitando mkdir ~/bin
  3. Digita gedit ~/.bashrc per aprire il file bash rc.
  4. Vai in fondo a questo file e aggiungi questa riga export PATH=~/bin:${PATH}

Ora creeremo uno script che eseguirà il tuo programma con un tema personalizzato:

  1. Crea il file di script dell'applicazione digitando: gedit ~/bin/ooffice
  2. Digita queste righe nel file aperto:

    #!/bin/bash
    env GTK2_RC_FILES=/usr/share/themes/SlicknessX/gtk-2.0/gtkrc /usr/bin/ooffice "[email protected]"
    
  3. Cambia la modalità del file in eseguibile digitando: chmod +x ~/bin/ooffice .

Spero che questo aiuti, devi ricordare solo una cosa, il formato dello script come mostrato di seguito:

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "[email protected]"
    
risposta data Ravi Raj 27.05.2012 - 11:37

Leggi altre domande sui tag