[deepin exploration] GXDE Wayland合成器V2.1.0发布,新增了一些实验性功能
Tofloor
poster avatar
CharOfString
deepin
7 hours ago
Author

前些日子大伙开玩笑说GXDE要给Treeland「上点压力」,这些日子我们一直在想办法改善我们的合成器 gxde-wlcom让其更加适配老Deepin的环境以及GXDE的需要。就在今天,gxde-wlcom的第二个主要版本 2.1.0-gxde1发布了,我们往里面塞了更多好玩的功能——

(当然,GXDE-Wlcom是开源的,可以在这几个地方找到:)

更新速览

  1. 自动安装 gxde-wlcom会话与 startgxde_wlcom启动脚本至系统
  2. 修复了原版Wlcom(截至我们Fork时的版本)在GXDE OS上 layer-shell表面无法吸附至屏幕顶端的问题。
  3. 提供了新接口允许设置GXDE主题
  4. 提供了新接口允许控制GTK标题栏上最小化/最大化/关闭按钮的可见性(默认为全部可见)
  5. 提供了一个接口,允许用户强制裁剪所有CSD(客户端自行装饰的)窗口,使其拥有圆角。用户亦可允许合成器跳过对 layer-shell表面(这些表面通常包含GXDE顶栏、Dock、GXDE控制中心等)圆角的裁剪。强制裁剪圆角为不稳定功能。

一些有趣的实验性功能

设置GTK主题

在用户会话总线,我们提供了 top.gxde.Wlcom.Theme接口,可以通过其 SetGTK方法,设置已安装的主题。

GNOME与UKUI的主题设置会同步更改,更改应该立即可见。

FileMan-Neo Update Slides (1).png

GXDE Wlcom合成器会话,加载Deepin主题

以下是使用示例,您需要把 主题名称换为本机真实存在的主题。

busctl --user call \
  top.gxde.Wlcom.Theme \
  /top/gxde/Wlcom/Theme \
  top.gxde.Wlcom.Theme \
  SetGTK s "主题名称"

该方法接收一个字符串参数并返回boolean。返回 true代表所有可用设置项均已成功写入。

设置GTK窗口按钮的可见性

top.gxde.Wlcom.WindowBtn接口用于设置GTK窗口的最小化、最大化和关闭按钮是否显示。使用三个boolean参数对应这三个按钮是否显示。

FileMan-Neo Update Slides.png

以下是例子 --

设置最小化/最大化/关闭按钮都需要显示:

busctl --user call \
  top.gxde.Wlcom.WindowBtn \
  /top/gxde/Wlcom/WindowBtn \
  top.gxde.Wlcom.WindowBtn \
  SetGtkDecorationButtons bbb true true true

查询当前设置:

busctl --user call \
  top.gxde.Wlcom.WindowBtn \
  /top/gxde/Wlcom/WindowBtn \
  top.gxde.Wlcom.WindowBtn \
  GetGtkDecorationButtons

强制裁剪圆角 (不稳定)

强制裁剪圆角与Wlcom所支持的窗口圆角不同,在强制裁剪圆角下,所有CSD(客户端自行装饰的)窗口都会被强制裁剪圆角,圆角大小取决于Wlcom设置的窗口圆角大小(即数值与普通「启用窗口圆角」功能共享)

FileMan-Neo Update Slides (2).png

GXDE Wlcom强制裁剪窗体圆角功能

在用户会话总线,我们提供了 top.gxde.Wlcom.WindowCorner接口,用于管理两个持久化的DBus配置:

  • ForceRoundCorner:强制裁剪窗口圆角。
  • ForceRoundCornerExcludeLayerShell:启用强制裁剪时,不裁剪
    wlr-layer-shell表面(例如顶栏、Dock、GXDE控制中心等的窗体)。仅在 ForceRoundCorner启用时生效。

启用强制圆角裁切

busctl --user call \
  top.gxde.Wlcom.WindowCorner \
  /top/gxde/Wlcom/WindowCorner \
  top.gxde.Wlcom.WindowCorner \
  SetForceRoundCorner b true

将上述命令中的 true改为 false即可关闭相应配置。可通过以下方法查询
当前值:

busctl --user call \
  top.gxde.Wlcom.WindowCorner \
  /top/gxde/Wlcom/WindowCorner \
  top.gxde.Wlcom.WindowCorner \

启用强制裁剪,但排除 wlr-layer-shell表面:

busctl --user call \
  top.gxde.Wlcom.WindowCorner \
  /top/gxde/Wlcom/WindowCorner \
  top.gxde.Wlcom.WindowCorner \
  SetForceRoundCornerExcludeLayerShell b true
Reply Favorite View the author
All Replies
avatar
zijinyise
deepin
7 hours ago
#1

666

Reply View the author
avatar
一粒
deepin
7 hours ago
#2

可以在deepin25上使用吗?

Reply View the author
avatar
芭芭雅嘎
deepin
7 hours ago
#3

like 继续加油

Reply View the author
avatar
CharOfString
deepin
6 hours ago
#4
一粒

可以在deepin25上使用吗?

很遗憾 ,目前 gxde-wlcom不完整包含对Treeland/KDE协议的兼容性(计划V3做到对Treeland协议的完全兼容),而Deepin25很多程序依赖KWIN/Treeland协议(例如截图录屏)...

Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
39 minutes ago
#5
CharOfString

很遗憾 ,目前 gxde-wlcom不完整包含对Treeland/KDE协议的兼容性(计划V3做到对Treeland协议的完全兼容),而Deepin25很多程序依赖KWIN/Treeland协议(例如截图录屏)...

要是完全兼容treeland私有协议那treeland可以卷铺盖准备走人了joy

Reply View the author
avatar
芭芭雅嘎
deepin
23 minutes ago
#6
CharOfString

很遗憾 ,目前 gxde-wlcom不完整包含对Treeland/KDE协议的兼容性(计划V3做到对Treeland协议的完全兼容),而Deepin25很多程序依赖KWIN/Treeland协议(例如截图录屏)...

我有个疑问,既然如此,那25上的dde ,要是想跑在Fedora ubuntu等发行版上,会不会因为对treeland的依赖,需要做一些额外的兼容适配工作呢

Reply View the author