GTK:在命令行上指定应用程序前景色和背景色

GTK:在命令行上指定应用程序前景色和背景色

在过去,所有X11应用程序都会采用标准命令行参数来指定诸如前景色/背景色。今天有没有办法为GTK应用程序做到这一点?我特别对控制对话框的颜色感兴趣zenity

我使用Xfcewith 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
}

相关内容