有没有办法为应用程序设置 gtk-application-prefer-dark-theme ?
这通常由应用程序在代码中设置。侏儒之眼和图腾等应用程序将其打开。我想作为用户打开它,基于每个应用程序。
对于 gnome-terminal,我通常在黑色背景配色方案上使用白色文本,并且具有深色窗口边框会改善整体外观。
我也想为 vlc 打开它。
don*_*sti 95
与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.
Run Code Online (Sandbox Code Playgroud)
因此,装载2的黑暗,你会运行变种:
GTK_THEME=Adwaita:dark gedit
Run Code Online (Sandbox Code Playgroud)
同样,要实现相反的效果(当默认主题为深色时),您可以加载浅色变体:
GTK_THEME=Adwaita:light gedit
Run Code Online (Sandbox Code Playgroud)
请注意,如果您想通过自定义启动器(.desktop
文件)使用它,则必须在行中env
的命令前加上Exec
:
Exec=env GTK_THEME=Adwaita:dark eog %U
Run Code Online (Sandbox Code Playgroud)
1:值得注意的是 - 根据开发人员的决定 - 更新gnome-terminal
通过菜单>首选项有自己的配置,它忽略了主题。此外,由于这是相当新的东西,一些 gtk+ 3 应用程序可能(还)不支持GTK_THEME
环境变量。
2:如果您已经有该应用程序的运行实例,则这似乎不起作用,例如,如果nautilus
已经在暗模式下运行,则运行GTK_THEME=Adwaita:light nautilus
将打开一个新nautilus
窗口,但仍处于暗模式。我不知道这是功能还是错误...
小智 23
对于 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
Run Code Online (Sandbox Code Playgroud)
对于像非GTK +应用程序vnc
,您还可以通过设置执行黑暗的窗饰_GTK_THEME_VARIANT
类的x属性UTF8_STRING
来dark
。要使用 执行此操作xprop
,请键入以下命令,然后单击该窗口:
$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark"
Run Code Online (Sandbox Code Playgroud)
xprop
还可以通过WM_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
Run Code Online (Sandbox Code Playgroud)
要获取窗口 ID 和名称,请使用xlsclients -l
.
这是我用来启动具有不同主题的应用程序的 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 "$@"
Run Code Online (Sandbox Code Playgroud)
这是我从 ubuntu Fourms 档案中获得的一些信息。不知道会不会有问题。(这里)还有一篇博客文章详细介绍了这种方法。(这里)和(这里)。这个网站上也有一个类似的问题,已经回答了。(这里)
在 gnome 下,应用程序从 gnome-settings-daemon 获取它们的主题。这会立即将任何主题更改应用于所有活动的应用程序,从而使每个应用程序的主题更改成为不可能。