在过去,所有X11
应用程序都会采用标准命令行参数来指定诸如前景色/背景色。今天有没有办法为GTK
应用程序做到这一点?我特别对控制对话框的颜色感兴趣zenity
。
我使用Xfce
with Fedora 20
,如果这很重要的话。
如果无法在命令行上完成,我愿意听取替代方案。我根本不知道如何做到这一点(尽管命令行会更好)。
答案1
这是 WRT Gtk 2.0,尽管我认为 3.0 是相似的(我认为 Xfce 无论如何都使用 2.0)。
主题等是使用配置文件定义的。默认值是~/.gtkrc-2.0
,但可以使用环境变量覆盖它:
GTK2_RC_FILES=~/.gtk2-altrc xfce4-terminal
将使用 启动 Xfce 终端~/.gtk2-altrc
。生成这些文件的最简单方法可能是首先备份现有.gtkrc-2.0
文件,然后运行gtk-chtheme
(您可能需要yum install gtk-chtheme
)。选择您的样式、字体等,单击“应用”并退出。这会发生变化~/.gtkrc-2.0
,因此您现在可以将其复制到.gtk2-altrc
,并将其替换为原始文件的备份。
我自己并不经常这样做,也不能保证它适用于所有情况(我也不使用 zenity),但它很简单,值得尝试。
答案2
zenity
是 GNOME 的一部分,默认包肯定使用 GTK+3。
xfce4-terminal
另一方面仍然使用 GTK+2 并且 @goldilocks 发布的内容应该可以工作(您需要退出所有实例以xfce4-terminal
确保新的 RC 被拾取)。
要更改 GTK+3 主题,您应该编辑或创建$XDG_CONFIG_HOME/gtk-3.0/gtk.css
(通常$HOME/.config/gtk-3.0/gtk.css
)。这里有一个基本介绍GTK+ 团队的 CSS 主题,以下假内容gtk.css
将帮助您入门:
.notebook {
-GtkNotebook-initial-gap: 20;
-GtkNotebook-arrow-spacing: 20;
}
.notebook.arrow {
color: black;
}
.notebook.arrow:prelight {
color: white
}
.notebook.arrow:insensitive {
color: gray
}
GtkLabel {
text-shadow: none;
}
GtkEntry {
padding-left: 10px
}
GtkSearchEntry, GtkSearchBar GtkEntry {
padding-left: 0px
}