[Community Announcements] 关于新版快捷键服务导致自定义快捷键丢失的说明与迁移方案
Tofloor
poster avatar
deepin小助手
Super Moderator
OM
8 hours ago
Author

以用为本.png

亲爱的 deepin 社区伙伴们:

为了让系统快捷键在 Treeland (Wayland) 和 X11 显示环境下使用同一套方案,我们把先前在 Treeland 下重构的快捷键服务同步应用到了 X11:配置存储从 dde-daemon 的 keybinding 模块迁移到了 dde-services的 shortcut 模块。相比旧方案,数据格式与执行方式都有一些变化,细节可参见文末的开发者文档。

由于新服务不再读取旧的配置文件,升级后此前配置的自定义快捷键不会自动出现,会导致部分用户在更新后发现自定义快捷键丢失需要重新添加,给大家造成的不便,深表歉意。

影响范围说明如下:

  • 系统预置快捷键无需迁移,其中部分快捷键的默认按键组合和名称文案有所调整;
  • UOS AI 的快捷键现在由应用自己提供配置,并归入独立的“小 U 同学”分组,不会在出现在“自定义“分组快捷键中。迁移脚本会自动跳过这几项,不会重复添加;
  • 需要迁移的只有用户自己添加的“自定义快捷键”, 如果你在更新后重新自定义过快捷键,无需执行下述脚本。

迁移方法

我们提供了一个迁移脚本,它读取旧配置,并通过新服务的接口重新注册,无需 root:

脚本下载migrate-custom-shortcuts.zip

将该压缩包下载至任意目录下解压得到 migrate-custom-shortcuts.py的脚本文件,在该脚本文件的目录下右键打开终端,依次执行以下命令(粘贴至终端后回车):

# 1. 先看迁移计划,不会改动任何配置
python3 migrate-custom-shortcuts.py --dry-run

# 2. 确认无误后执行迁移
python3 migrate-custom-shortcuts.py

# 3. 如果结果不理想,可一键回滚本次创建的快捷键
python3 migrate-custom-shortcuts.py --undo

几点说明:

  • 请在该终端会话中以当前用户身份运行,不要用 sudo;
  • 旧配置文件全程只读不修改,随时可以重来;
  • 脚本可重复执行,不会产生重复的快捷键;
  • 由应用自身提供配置的快捷键(如 UOS AI)会自动跳过,避免与应用重复;
  • 依赖旧写法的复杂命令(含管道、&&、变量等)会自动改写,脚本会逐条列出改动内容;
  • 无法自动判断的条目会标记为 MANUAL / CONFLICT 并给出原因,需要手动确认。

遇到问题

如果迁移后仍有快捷键不生效,或者脚本报错,欢迎在本帖下方评论,并附上述第一条命令 --dry-run 的输出结果即可,其中不含隐私信息。我们会及时跟进处理,研发人员会协助完成迁移。

注意事项(脚本执行结束时也会输出)

-- 说明 --------------------------------------------------------------
新版快捷键服务通过 dde-am 执行快捷键动作,形式为
    dde-am -c <程序> -- <参数...>
整个过程不经过 shell,程序必须是真实可执行文件(绝对路径,或能在 PATH 中找到)。
若某条快捷键迁移后不生效,可在终端执行 `dde-am -h` 查看用法,
或按上面 "dde-am :" 那一行手动执行,直接观察命令能否被拉起。
  dde-am 源码            : https://github.com/linuxdeepin/dde-application-manager
  快捷键服务(shortcut 模块): https://github.com/linuxdeepin/dde-services
  新版快捷键服务开发者文档 : https://github.com/linuxdeepin/dde-services/blob/master/src/plugin-qt/shortcut/DEVELOPER_GUIDE.md

-- Notes -------------------------------------------------------------
The new shortcut service runs shortcut actions through dde-am, as
    dde-am -c  -- 
No shell is involved, and the program must be a real executable (absolute
path, or resolvable in PATH). If a migrated shortcut does not work, run
`dde-am -h` in a terminal for its usage, or replay the "dde-am :" line
printed above by hand to see whether the command starts at all.
  dde-am source          : https://github.com/linuxdeepin/dde-application-manager
  Shortcut service       : https://github.com/linuxdeepin/dde-services
  Developer guide        : https://github.com/linuxdeepin/dde-services/blob/master/src/plugin-qt/shortcut/DEVELOPER_GUIDE.md

相关链接

Reply Favorite View the author
All Replies
avatar
观摩
deepin
8 hours ago
#1

joy

每日一新

Reply View the author