创立了 Xfce Classic,一个没有客户端窗口装饰的 Xfce 分支

肖恩·阿纳斯塔西(肖恩·阿纳斯塔西奥),一位自由软件爱好者,曾开发过自己的操作系统 肖恩操作系统 并参与将 Chromium 和 Qubes OS 移植到 ppc64le 架构, 他创立 项目 Xfce经典版,其中他打算开发 Xfce 用户环境组件的分支,这些组件无需使用客户端窗口装饰(CSD,客户端装饰)即可工作,其中窗口标题和框架不是由窗口管理器绘制,而是由应用程序本身。

让我们提醒您,为准备下一个版本的 Xfce 4.16,该版本的发布 预计 在 4 月或 XNUMX 月,界面被转移到 GtkHeaderBar 小部件并使用 CSD,这使得可以与 GNOME 类比,将菜单、按钮和其他界面元素放置在窗口标题中,并确保隐藏对话框中的框架。 新的界面渲染引擎集成到libxfceXNUMXui库中,这使得几乎所有对话框都可以自动应用CSD,而无需更改现有项目的代码。

过渡到 CSD 时 成立 对手,他们认为 CSD 支持应该是可选的,并且用户应该能够继续使用经典窗口标题。 使用 CSD 的缺点包括窗口标题区域太大、不需要将应用程序元素转移到窗口标题、Xfwm4 主题的不可操作性以及 Xfce/GNOME 应用程序和执行此操作的程序的窗口设计存在差异。提到不使用CSD。 值得注意的是,一些用户拒绝GNOME界面的原因之一是CSD的使用。

由于 5 个月内没有尝试为禁用 CSD 提供支持,Sean Anastasi 决定 我自己解决了这个问题并创建了库的分支 libxfce4ui,其中我清除了与 CSD 的绑定,并在服务器端(窗口管理器)返回了旧的装饰模式。 为了确保与使用新 libxfce4ui API 的应用程序兼容并保留 ABI,我们准备了特殊的绑定,将 XfceTitledDialog 类的特定 CSD 方法转换为 GtkDialog 类的调用。 因此,可以通过替换 libxfce4ui 库来消除 Xfce 应用程序的 CSD,而无需更改应用程序本身的代码。

此外,还形成了一个分叉 xfce4-面板,其中包括返回经典行为的更改。 为 Gentoo 用户准备的 覆盖 安装 libxfce4ui-nocsd。 为 Xubuntu/Ubuntu 用户准备 PPA 存储库 与现成的包。 Sean Anastasi 解释了创建 fork 的原因,他表示自己已经使用 Xfce 多年,并且喜欢这个环境的界面。 在决定对他不同意的界面进行更改,并且没有尝试提供恢复旧行为的选项后,他决定自己解决他的问题并与其他志同道合的人分享解决方案。

使用 Xfce Classic 时的问题之一是由于标题和应用程序窗口中显示重复信息而出现重复标题。 此功能与 Xfce 4.12 和 4.14 的行为一致,与 CSD 无关。 在某些应用程序中,这种重复看起来很正常(例如,在 xfce4-screenshooter 中),但在其他应用程序中,这显然是不合适的。 为了解决这个问题,可以添加一个环境变量来控制XfceHeading的渲染。

创立了 Xfce Classic,一个没有客户端窗口装饰的 Xfce 分支

CSD 支持者的立场归结为能够利用浪费的窗口标题空间来放置菜单、面板按钮和其他重要的界面元素。 CSD 的反对者认为,这种方法在统一窗口设计方面存在问题,特别是那些为不同用户环境编写的窗口,这些环境为标题区域的布局定义了不同的建议。 当在服务器端传统地渲染窗口的服务区域时,将所有应用程序的窗口设计统一为单一风格要容易得多。 在使用CSD的情况下,需要单独使应用程序界面适应每个图形环境,并且很难确保应用程序在不同的用户环境中看起来不陌生。

来源: opennet.ru

添加评论