GTK-アプリケーションごとにダークテーマを有効化/設定します


54

アプリケーションにgtk-application-prefer-dark-themeを設定する方法はありますか?

これは通常、アプリケーションによってコードに設定されます。Eye of GnomeやTotemなどのアプリで有効にします。ユーザーごとにアプリケーションごとに有効にしたい。

gnome-terminalの場合、通常、黒の背景色スキームに白のテキストを使用し、ウィンドウの境界線が暗いと全体的な外観が改善されます。

また、vlcで有効にします。

回答:


61

ではgtk+ ≥ 3.12、あなたアプリケーションごとに固有のテーマとその変種(暗い、光)を読み込むことができます1つの環境変数を経由して基礎GTK_THEME=theme:variant。あたりとしてgtk+リファレンスマニュアル

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.

したがって、暗いバリアントを2にロードするには、次を実行します。

GTK_THEME=Adwaita:dark gedit

同様に、デフォルトのテーマが暗い場合に反対を達成するには、ライトバリアントをロードします。

GTK_THEME=Adwaita:light gedit

カスタムランチャー(.desktopファイル)経由で使用する場合はenv、次のExec行のコマンドの前に追加する必要があることに注意してください。

Exec=env GTK_THEME=Adwaita:dark eog %U

1:gnome-terminal開発者の決定によると、新しい方はメニュー>環境設定で独自の設定があり、テーマは無視されます。また、これはかなり新しいものであるため、一部のgtk + 3アプリケーションは(まだ)GTK_THEME環境変数を尊重しない可能性があります。
2:これは、そのアプリケーションの実行中のインスタンスが既にある場合は機能しないようです。たとえば、nautilus既にダークモードで実行されている場合、実行GTK_THEME=Adwaita:light nautilusすると新しいnautilusウィンドウが開きますが、ダークモードのままです。これが機能なのかバグなのかわかりません...


特定のテーマに名前を付けることはできますが、「設定されているテーマのダークバリアント」とは言えませんか?
XTL

2
@XTL-まさに。GTK_THEME=:light eogあまりにも働いているようですが
...-don_crissti

5
これは、ほとんどのアプリケーションでは機能しないようです。
-Thayne

1
暗いテーマがあるとき、私はまだこれが機能するアプリケーションを見つけることができませんでした。
-Thayne

2
上記(。desktopファイル用)を試しましたが、機能しませんenv。ターミナルから起動すると、正常に動作します。私はgtk 3.14.5-1 + deb8u1を使用し、gedit 3.14.0-3で試してみました。Debianの「jessie / stable」8で実行しています
。– aBarocio80

21

GTK + -3アプリケーションの場合、GtkSettingsのsettings.iniを使用してダークテーマバリアントを適用できます。

$ 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

以下のような非GTK +アプリケーションではvnc、あなたはまだ設定することで、暗いウィンドウの装飾を強制することができます_GTK_THEME_VARIANTタイプのXプロパティをUTF8_STRINGしますdark。これを行うにはxprop、次のコマンドを入力し、その後ウィンドウをクリックします。

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

xpropWM_NAMEプロパティ(タイトルバーラベル)またはウィンドウIDでウィンドウを選択することもできます。

$ 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

ウィンドウのIDと名前を取得するには、を使用しますxlsclients -l


何らかの理由gnome-terminalで、Darkテーマのコードを維持するのはあまりにも手間がかかると判断したので、あなたのディストリビューションがパッチを適用しない限り、この作業は行われgnome-terminal
ません-MattSturgeon

6

これは、異なるテーマのアプリケーションを起動するために使用したbashスクリプトです。何年も使っていないので、現在のGTKで動作するかどうかはわかりません。

#!/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 "$@"

ここでは、ubuntu fourmsアーカイブから得た情報を少し紹介します。それが問題になるかどうかはわかりません。(こちら)この方法についてもう少し詳しく説明したブログ投稿もあります。(ここ)および(ここ)。このサイトには、既に回答済みの同様の質問もあります。(こちら

gnomeでは、アプリはgnome-settings-daemonからテーマを取得します。これにより、すべてのアクティブなアプリケーションにテーマの変更が即座に適用され、アプリケーションごとのテーマの変更が不可能になります。


5
タイプミスか間違いか?( 'のgnome-設定-鬼」)...言葉があるデーモン(悪魔ではない)...これは非常に異なるルートの意味があります …(in ancient Greek belief) Daemons are good or benevolent supernatural beings between mortals and gods...デーモン=良い/悪魔=悪い... en.wikipedia.org/wikiを/ Daemon_%28classical_mythology%29 ..(day-monと発音)
-Peter.O

Typo、それはすべてをスペルチェックしないと起こることです:|
-giodamelio

2
@ Peter.O:現在の英語では異なる意味ですが、実際には同じ起源です。etymonline.com/index.php?term=demon
Joce

1
試みたGTK2_RC_FILES=/usr/share/themes/Adwaita/gtk-2.0/gtkrc /opt/ide/eclipseとdoes'tは働いていた
Robbi Nespuを

1

具体的にはgnome-terminal、次を使用して特定のアプリケーションを暗くすることができます。

gsettings set org.gnome.Terminal.Legacy.Settings theme-variant 'dark'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.