GTK3:禁用额外的 window 按钮

GTK3: disable extra window buttons

有什么方法可以检测(以标准的 non-hackish 方式)我的带有 GtkHeaderBar 的 Gnome 应用程序是否 运行 在 window 管理器下,该管理器提供自己的 window 装饰(例如,XFWM),以便我可以在不需要时将 gtk_header_bar_set_show_close_button 设置为 FALSE?

UPD:更清楚地说,我想隐藏 GTK header 按钮,而不是 WM 按钮。

对客户端修饰的支持应该来自 window 管理器本身或来自环境的缺乏它的信息。 XFWM 在 4.12 版本中添加了对它们的支持。

Oh wow, many commits, such features ! You can read the 4.11.3 announcement here

  • Client Side Decoration (CSD) support ! (Compositor need to be enabled). A screenshot with and without on gedit (an application that need CSD) CSD on xfwm4

Source: https://blog.alteroot.org/articles/2015-02-19/new-from-xfce-part-3.html

此外,GTK Headerbar 应该尊重 $GTK_CSD 环境变量的内容,如果设置为 0,则不显示关闭按钮(请注意,如果支持 CSD,则可以不设置此变量)。在Ubuntu.

中可以看出

这意味着它应该为您涵盖,但您也可以尝试检查 $XDG_CURRENT_DESKTOP 的内容或阅读更多 hacky 方法以扩展对更多 WM 和旧系统的支持:more in this stack overflow question.