[deepin exploration] [GXDE25] GXDE显示管理器正式版来了
Tofloor
poster avatar
CharOfString
deepin
6 hours ago
Author

GXDM on GitHub | GXDM on Gitee

最近趁着Deepin这边在开发Treeland+DDM的时候,GXDE也在忙着开发自己的GXWM和GXDM。经过两个月的开发,GXDM终于出第一个正式版了——

正式版实际上跟DDM一样,也是基于SDDM进行二次魔改,主要是把DDE 15时代的Session UI迁移至Qt6并将其作为SDDM的默认UI(Session UI的源码已经集成进了GXDM,方便跨发行版移植),在此基础上做一些动画效果(感谢@神末shenmo完成了动画模块)。GXDM默认使用Wayland greeter来显示前端,下面是一些截图:

image.png

登录界面
image.png

会话选择,新增了GXDE自己的会话图标
image.png

软键盘

以下是一些详细的亮点:

GXDM锁屏

是的,GXDM甚至为Wayland会话提供锁屏。实际上,在GXDE OS25.4.1内部测试中,GXDM Lock已经取代了DDE Lock作为默认的锁屏。只需要一条DBus就能开启GXDM锁屏:

# 在GXDE上默认为TRUE
$ busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  TryEnrollLkScr b true

开启后,如果 Super + L 快捷键未被注册,则按下此组合键即可锁屏。


image.png

image.png

更好的个性化设置

GXDM支持个性化Greeter(登录前的用户/会话选择界面)的壁纸与光标,也支持更换锁屏壁纸。实际上,上面的锁屏照片就是自行更换的,所有设置都可以通过D-Bus调用轻松完成:

# 设置全局Greeter光标主题
busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  SetCursor s name  # name需要换为光标主题名

# 设置全局Greeter壁纸——注意所有用户都看得到也都能改得了
busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  SetWallpaper s 壁纸绝对路径

# 恢复Greeter壁纸为默认壁纸——注意所有用户都能改得了
busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  SetWallpaperGXDEDefault

# 设置自己的锁屏壁纸
# 不设置的时候优先从Deepin Daemon的Apperance模块获取(如果成功)
# 光标不提供设置,会使用当前会话的光标
busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  SetLockWallpaperOverride s 壁纸绝对路径

# 清除自己的锁屏壁纸
# 不设置的时候优先从Deepin Daemon的Apperance模块获取(如果成功)
busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  ClearLockWallpaperOverride

Wayland Greeter前端

我们Patch了DDE 15 Session UI,除了迁移至Qt6以外,登录/锁屏页面均支持通过Wayland合成器显示。实际上,上面的三张截图就是使用GXWM显示出来的。Wayland Greeter是默认的前端,当然如果你真的想要也可以换回X11,不过我们对X11 Greeter的兼容性问题不再维护:

# 切换后必须重启GXDM,重启GXDM前请确保没有任何会话登录
# 切换至X11
$ busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  SetGreeterDisplayServer s x11

# 切换至Wayland
$ busctl --user call top.gxde.DisplayManager \
  /top/gxde/DisplayManager top.gxde.DisplayManager \
  SetGreeterDisplayServer s wayland

目前,GXDM的WM选择逻辑是有GXWM的情况下优先使用GXWM,然后依次尝试Weston、Sway和LabWC。

构建系统

GXWM同时支持两种构建系统:CMake与Bazel。在GXWM开发中,我几乎全程在用Bazel,但我们也同时支持CMake,用于DEB打包。

Bazel

$ bazel build --spawn_strategy=local //:gxdm-dist

CMake

$ cmake -S . -B build-cmake -DBUILD_WITH_QT6=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
$ cmake --build build-cmake --parallel

Debian包自动生成脚本

$ chmod a+x ./build-deb  # 同时自动安装依赖
$ ./build-deb -d
Reply Favorite View the author
All Replies
avatar
CharOfString
deepin
6 hours ago
#1

对于GXDE OS 25内测源用户,GXDM已经可以使用APT安装了:

$ sudo apt install gxdm

安装好需要重启一下电脑

由于GXDE 15已经停止支持,所以没有支持GXDE 15的计划

Reply View the author
avatar
半日闲云
deepin
6 hours ago
#2

yeah

Reply View the author
avatar
gfdgd_xi
deepin
Ecological co-builder
4 hours ago
#3

好耶
blush

Reply View the author
avatar
WangZhongyun
deepin
4 hours ago
#4

截图_20260816205733.png
选择welcom进入桌面没有任务栏。选择GXDM进入桌面提示如图:

Reply View the author
avatar
CharOfString
deepin
4 hours ago
#5
WangZhongyun

截图_20260816205733.png
选择welcom进入桌面没有任务栏。选择GXDM进入桌面提示如图:

嗯 没任务栏是因为GXDE组件过旧导致的(你的dock之类的应该都是GXDE还在用Qt5那会的版本)

Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
4 hours ago
#6
WangZhongyun

截图_20260816205733.png
选择welcom进入桌面没有任务栏。选择GXDM进入桌面提示如图:

进入内测,安装 gxde-wayland-session 然后更新系统到最新

Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
4 hours ago
#7

cc @momen

Reply View the author