GTK - Uygulamaya göre koyu temayı etkinleştir / ayarla


54

Bir uygulama için gtk-application-prefer-dark-temasını ayarlamanın bir yolu var mı?

Bu normalde uygulama tarafından kodda ayarlanır. Gnome'nin Gözü ve Totem gibi uygulamalar onu açar. Bir kullanıcı olarak, uygulama bazında açmak istiyorum.

GNOME terminalinde normalde siyah arka plan renk şemasında beyaz bir metin kullanıyorum ve koyu pencere kenarına sahip olmak genel görünüşü iyileştirecektir.

Ayrıca vlc için açmak istiyorum.

Yanıtlar:


61

İle gtk+ ≥ 3.12size belirli bir tema ve her uygulama üzerindeki varyant (koyu, ışık) yükleyebilirsiniz 1 ortam değişkeni üzerinden temelinde GTK_THEME=theme:variant. Gereğince gtk+başvuru kitabı :

GTK_THEME.  If set, makes GTK+ use the named theme instead of the theme that is
specified by the gtk-theme-name setting [...] It is also possible to specify a
theme variant to load, by appending the variant name with a colon, like this:
GTK_THEME=Adwaita:dark.

Yani, yük 2 koyu Eğer aday olacağını varyantı:

GTK_THEME=Adwaita:dark gedit

Aynı şekilde, tam tersini elde etmek için (varsayılan tema karanlık olduğunda), ışık değişkenini yüklersiniz:

GTK_THEME=Adwaita:light gedit

Özel bir başlatıcı ( .desktopdosya) aracılığıyla kullanmak istiyorsanız env, Execsatırdaki komuta hazırlanmanız gerekeceğini unutmayın :

Exec=env GTK_THEME=Adwaita:dark eog %U

1: Devs kararına göre, daha yeni olanın gnome-terminalmenü> tercihler yoluyla kendi yapılandırmasına sahip olduğunu ve temayı göz ardı ettiğini unutmayın. Ayrıca, bu oldukça yeni şeyler olduğu için, bazı gtk + 3 uygulamaları GTK_THEMEortam değişkenine uymayabilir (henüz) .
2: Zaten bu uygulamanın çalışan bir örneğine sahipseniz bu işe yaramaz gibi görünüyor, örneğin nautiluszaten karanlık modda çalışıyorsa GTK_THEME=Adwaita:light nautilus, çalışma yeni bir nautiluspencere açar, ancak yine de karanlık modda. Bunun bir özellik mi, böcek mi olduğunu bilmiyorum.


Yani belirli bir temayı adlandırabilirsin, ancak "hangi temanın ayarlandığı konusunda karanlık bir varyasyon" diyemez misin?
XTL

2
@ XTL - Kesinlikle. Yine GTK_THEME=:light eogde çalışıyor gibi görünüyor ...
don_crissti

5
Bu çoğu uygulama için işe yaramaz gibi görünüyor.
Thayne

1
Karanlık bir tema olduğunda, bunun için çalıştığı bir uygulama bulamadım.
Thayne

2
Yukarıdakileri denedim ( desktopdosyalar için), ancak çalışmaz, hatta çalışmaz env. Terminalden başlatıldığında mükemmel bir şekilde çalışır. Sonra gtk 3.14.5-1 + deb8u1 kullanın ve 8. "Jessie / kararlı" Debian üzerinde çalışan, gedit 3.14.0-3 ile çalıştı
aBarocio80

21

GTK + -3 uygulamaları için, GtkSettings'in settings.ini dosyasını kullanarak koyu tema değişkenini zorlayabilirsiniz.

$ mkdir -p $HOME/.config/gnome-terminal/gtk-3.0 # the path before gtk-3.0 is arbitrary
$ cat >> $HOME/.config/gnome-terminal/gtk-3.0/settings.ini << EOF
[Settings]
gtk-application-prefer-dark-theme=true
EOF
$ echo 'alias gnome-terminal="XDG_CONFIG_HOME=$HOME/.config/gnome-terminal gnome-terminal" >> $HOME/.bashrc

Gibi olmayan GTK + uygulamalar için vnc, hala ayarlayarak karanlık pencere süslemeleri zorlayabilir _GTK_THEME_VARIANTtip X özelliğini UTF8_STRINGetmek dark. Bunu yapmak için xprop, aşağıdaki komutu yazın ve ardından pencereyi tıklayın:

$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark"

xproppencereleri WM_NAMEözelliğe (başlık çubuğu etiketi) veya pencere kimliğine göre de seçebilirsiniz :

$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -name "Spotify Premium - Linux Preview"
$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -id 0x380002b

Pencere kimliklerini ve adlarını almak için kullanın xlsclients -l.


Bazı nedenlerden dolayı gnome-terminal, Dark temasının kodunu saklamak için çok fazla çaba harcadığına karar verdi, bu yüzden dağıtımınız bunu bu işe yaramaz hale gnome-terminal
getirmediyse

6

İşte farklı bir temaya sahip bir uygulamayı başlatmak için kullandığım bir bash betiği. Yine de yıllardır kullanmadım, bu yüzden mevcut GTK ile çalışıp çalışmayacağını bilmiyorum.

#!/bin/bash
# lauch a gtk application with a different theme
# set GTKRCFILE variable to your favourite theme
GTKRCFILE=Clearlooks
GTK2_RC_FILES=/usr/share/themes/"$GTKRCFILE"/gtk-2.0/gtkrc "$@"

İşte ben ubuntu fourms arşivlerinden aldığım biraz bilgi. Bir problem olup olmadığından emin değilim. ( burada ) Bu yöntemi biraz daha ayrıntılı olarak gösteren bir blog yazısı da var. ( burada ) ve ( burada ). Bu sitede daha önce cevaplanmış olan benzer bir soru var. ( burada )

GNOME altında uygulamalar temalarını GNOME ayarları-daemon'dan alır. Bu, her bir tema değişikliğini tüm aktif uygulamalara uygulayarak uygulama başına tema değişimini imkansız hale getirir.


5
Yazım hatası mı, hata mı? ('gnome-settings-demon ") ... Kelimenin adı Daemon (şeytan değil) .. Çok farklı bir kök anlamı var: …(in ancient Greek belief) Daemons are good or benevolent supernatural beings between mortals and gods... daemon = iyi / şeytan = kötü ... en.wikipedia.org/wiki / Daemon_% 28classical_mythology% 29 .. (telaffuz edilen gün-mon )
Peter.O

Yazım hatası, hecelemeyince her şeyi kontrol edin:
giodamelio

2
@ Peter.O: Günümüzde İngilizcede farklı anlamlar var, fakat aslında aynı kökeni. etymonline.com/index.php?term=demon
Joce

1
ile çalıştı GTK2_RC_FILES=/usr/share/themes/Adwaita/gtk-2.0/gtkrc /opt/ide/eclipseve işe yaramadı
Robbi Nespu

1

Özellikle gnome-terminal, belirli bir uygulamayı karanlık yapmak için aşağıdakileri kullanabilirsiniz:

gsettings set org.gnome.Terminal.Legacy.Settings theme-variant 'dark'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.