因此,Gnome 应用程序目前使用独有的Client Side Decorations
,并GTK Header Bar
包含buttons
、menus
、title
。
- 实施客户端装饰背后的故事是什么?
- 这只是 Gnome 开发者的想法吗?
- 为什么变化如此剧烈,在适应之前甚至没有办法恢复?当 Gnome3 使用现代 UI 时,仍然存在 gnome2 回退会话,对吗?
- Gnome 应用程序是否只能在 Gnome 桌面环境上使用?让它们在其他桌面环境上看起来很尴尬,用户要么切换到 Gnome DE,要么完全停止使用 Gnome 应用程序?
Ubuntu 使用单独的桌面环境(Unity),这与客户端装饰冲突,因为我认为统一合并标题栏和应用程序菜单以节省空间的整个概念变得无关紧要。因此,他们从 Gnome 应用程序中删除了Client Side Decorations
和Header Bar
代码,以使它们看起来像以前使用窗口管理器一样。所有基于 ubuntu 的二进制兼容发行版都受益于此。
但是像 debian 这样的发行版(及其二进制兼容发行版)不会对上游代码进行重大更改,并且会受到严重影响。
答案1
首先,在脱离经典的 GNOME 2 后,GNOME 并没有立即实现标题栏(客户端装饰的一个突出功能)。
刚开始的时候
从表面上看,客户端装饰(CSD)首次在 GTK+ 3.10 和 3.12 中引入,可以追溯到 2013 年。GTK+ 3.10 是第六个版本。GNOME 3 的稳定版本。换句话说,CSD 在 2011 年 GNOME 3 首次发布两年后才出现。
话又说回来,GTK+ 的 CSD实际上是早在2009年就已开发出来。当时,CSD 还处于实验阶段默认禁用。只有一些对最终用户来说陌生的代码补丁,但可以找到早期用户界面的线框图(点击链接“CSD for GTK+”)。
第 1 部分:回答问题
- 实施客户端装饰背后的故事是什么?
从2014年初的一篇博文作者:Mclasen 在 GNOME 博客上:
在 GNOME3 时代的早期,我们试图通过在标题栏包含重要信息时隐藏标题栏来节省一些垂直空间。这对于小屏幕上的最大化窗口尤其重要,因为垂直空间稀缺 [...]
最近,我们改用了一种不同的方法:回收传统上由应用程序标题栏占用的区域。为此,我们引入了 GtkHeaderBar 小部件,它允许应用程序将此空间用于其自己的目的 [...]
这几乎是 GNOME 贡献者自己解释的。
- 这只是 Gnome 开发者的想法吗?
如果您指的是标题栏,那么可能是的。所有链接来源中都提到了当时的 GNOME 贡献者 Cody Russell,他很可能是第一个参与该功能的人。当时,它被简单地命名为“客户端”之类的东西。
- 为什么变化如此剧烈,在适应之前甚至没有办法恢复?当 Gnome3 使用现代 UI 时,仍然存在 gnome2 回退会话,对吗?
正如本答案开头所解释的,变化并不剧烈。 GTK+ 的 CSD 何时首次开发? 2009 年。何时首次向最终用户介绍? 2013年,中间有四年的差距,这期间很多帖子写在 GNOME 博客上甚至在其他地方提到过。
回退模式更像是虚拟机不支持的硬件加速的解决方法。根据 GNOME 2 的说法,后备模式被误解了,与 GNOME 2 无关。GNOME 3.7 的功能描述。
- Gnome 应用程序是否只能在 Gnome 桌面环境上使用?让它们在其他桌面环境上看起来很尴尬,用户要么切换到 Gnome DE,要么完全停止使用 Gnome 应用程序?
GNOME 应用程序是 GNOME 桌面环境的一部分,由 GNOME 开发团队管理。因此,GNOME 应用程序将被设计为在 GNOME 桌面环境中良好显示。这个决定是自然的。不喜欢 GNOME 应用程序?尽可能使用任何替代方案。
2014 年至 2015 年间,人们曾尝试阻止 CSD,其中包括禁用 GTK+ 3 客户端装饰的 hack和Lubuntu 开发团队修复。
第 2 部分:回答非问题文本
Ubuntu 使用单独的桌面环境 (Unity),这与客户端装饰相冲突,因为统一合并标题栏和应用程序菜单的整个概念 [...]
Unity 桌面环境已从乌班图17.10。此后,Ubuntu 又回到了 GNOME 桌面环境,并拥有类似 Unity 的界面。在 CSD 方面不再有冲突,因为 Ubuntu 从 Ubuntu 18.04 开始删除了应用程序菜单和其他一些创新。
但是像 debian 这样的发行版(及其二进制兼容发行版)不会对上游代码进行重大更改,并且会受到严重影响。
到底什么是“受到严重影响”?这只能由与 GTK+ 依赖项目密切合作的开发人员来回答。
据我观察,受影响的社区决策主要分为两类。
一个团队决定支持 CSD,而现代 GTK+ 桌面环境是未来的趋势,因此他们正在适应变化。elementary OS 开发团队是这一决定的先驱,其 0.3“Freya”使用了 GTK+ 3.14 和2014 年 YouTube 上的标题栏。 Ubuntu MATE 开发团队后续 MATE 1.12 将于 2015 年发布 16.04。
一组人决定反对 CSD,并且保留传统的 GTK+ 桌面环境,因此他们正在创建替代方案。 Linux Mint 开发团队是这一决定的先驱,2016年推出“X-Apps”项目。
一般来说,运行任何基于 GTK+ 的发行版的最新版本的最终用户可能会有不好的体验,因为建议每隔几周或几个月进行升级,这与仅建议几年后升级的长期版本不同。
长话短说标题栏(GTK+ 的客户端装饰)是在 2013 年从 GTK+ 3.10 中才引入的。受影响的社区做出了自己的决定并继续前进。故事结局。
回答者备注: OP 提出的大部分问题都已经涵盖了——我算了至少 7 个——但中间可能缺少一些信息。因此,这个答案现在是一个社区维基,因此任何具有最低声誉的人都可以改进这篇文章以解决剩余的问题。