Skip to content

feat(shortcut): add 8 app shortcuts to dde-app-shortcuts#79

Merged
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
dengzhongyuan365-dev:master
Jun 4, 2026
Merged

feat(shortcut): add 8 app shortcuts to dde-app-shortcuts#79
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
dengzhongyuan365-dev:master

Conversation

@dengzhongyuan365-dev

Copy link
Copy Markdown
Member

Add 8 new system shortcuts via D-Bus or shell commands:

  • Screenshot: Ctrl+Alt+A
  • Delay Screenshot: Ctrl+Print (5s delay)
  • Fullscreen Screenshot: Print
  • Window Screenshot: Alt+Print
  • OCR Screenshot: Ctrl+Alt+C
  • Global Search: Shift+Space
  • File Manager: Meta+E
  • System Monitor: Ctrl+Alt+Esc

These align with the legacy dde-daemon X11 config and use the dsg.config.meta DConfig format with triggerType=1 (Command) or triggerType=2 (App). All shortcuts have enabled/hotkeys permissions set to readwrite for user customization.

Log: 添加8个应用快捷键配置
PMS: TASK-390669
Influence: 用户可通过快捷键快速调用截图、OCR、全局搜索、文件管理器、系统监视器等功能。

Add 8 new system shortcuts via D-Bus or shell commands:
- Screenshot: Ctrl+Alt+A
- Delay Screenshot: Ctrl+Print (5s delay)
- Fullscreen Screenshot: Print
- Window Screenshot: Alt+Print
- OCR Screenshot: Ctrl+Alt+C
- Global Search: Shift+Space
- File Manager: Meta+E
- System Monitor: Ctrl+Alt+Esc

These align with the legacy dde-daemon X11 config and use the
dsg.config.meta DConfig format with triggerType=1 (Command) or
triggerType=2 (App). All shortcuts have enabled/hotkeys permissions
set to readwrite for user customization.

Log: 添加8个应用快捷键配置
PMS: TASK-390669
Influence: 用户可通过快捷键快速调用截图、OCR、全局搜索、文件管理器、系统监视器等功能。

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @dengzhongyuan365-dev, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

你好!我是CodeGeeX。我已经仔细审查了你提供的Git Diff。本次提交主要为DDE(Deepin Desktop Environment)新增了8个应用快捷键的配置文件(JSON格式)、更新了总配置文件以及多语言翻译文件。

整体来看,代码结构清晰,遵循了既有的配置规范。但在代码逻辑、安全性、一致性和质量方面,我发现了一些需要改进的地方。以下是详细的审查意见:

1. 语法与逻辑

  • delay-screenshot 的延时时间硬编码问题
    org.deepin.dde.keybinding.shortcut.app.delay-screenshot/org.deepin.shortcut.json 中,triggerValue 包含 "int64:5",这意味着延时5秒被硬编码在了快捷键触发动作中。
    • 问题:如果未来需要修改延时时间,必须修改此配置文件并重新发布,缺乏灵活性。
    • 建议:如果DBus接口 com.deepin.Screenshot.DelayScreenshot 支持不带参数调用(内部默认延时),建议移除 int64:5;如果必须传参,建议在JSON中增加一个延时时间的参数配置项,而不是直接写死在命令数组中。

2. 代码安全

  • 可执行文件路径硬编码及潜在风险
    配置中大量使用了绝对路径,如 /usr/bin/dbus-send/usr/lib/deepin-daemon/default-file-manager/usr/libexec/dde-daemon/keybinding/shortcut-dde-grand-search.sh
    • 问题
      1. 依赖绝对路径使得系统升级或文件路径迁移时容易失效。
      2. 如果使用 triggerType: 1(二进制command类型)直接执行脚本(如 shortcut-dde-grand-search.sh),需确保该脚本具有防篡改权限(如属主为root,权限为755等),否则可能被恶意替换引发安全风险。
    • 建议:对于截图等功能,目前使用 dbus-send 触发DBus服务是安全的;但对于直接执行脚本的场景,确保系统层面对这些脚本有严格的文件权限控制。另外,如果框架支持,triggerType 使用DBus调用(如截图那样)比直接执行Shell脚本更安全。

3. 代码质量与一致性

  • triggerType 描述不一致
    在截图相关的配置(如 screenshotfullscreen-screenshot 等)中,triggerType 的值为 1,其 description 写的是 "二进制command类型"。但在 systemmonitor 中,triggerType 的值为 2description 写的是 "启动应用"

    • 问题:截图的DBus调用本质上也是执行二进制命令(/usr/bin/dbus-send),但系统监视器是直接启动应用。这里的语义划分略显模糊,且描述不够准确(dbus-send 并不是截图应用本身的二进制,而是通信工具)。
    • 建议:统一 triggerType 的语义。如果 1 代表执行命令行,2 代表通过应用ID启动,建议将截图配置中的 description"二进制command类型" 改为更准确的 "命令行调用""执行命令",以区分于直接启动应用二进制。
  • 翻译文件中英文术语的一致性
    在翻译文件中,新增了 OCR Screenshot,而其他的有 Fullscreen ScreenshotWindow ScreenshotDelay Screenshot

    • 建议:从用户体验角度,"OCR截图" 与其他截图的命名方式(全屏、窗口、延时)分类标准不同(按功能 vs 按范围)。建议确认产品层面是否接受这种命名差异;如果要求严格分类,可能需要调整为更统一的维度。

4. 代码性能

  • 截图快捷键触发方式的性能考量
    截图快捷键统一采用了 dbus-send 触发 com.deepin.Screenshot
    • 评价:这是一个非常好的设计!相比于直接 Exec=deepin-screenshot 启动进程,通过DBus激活服务可以利用DBus的系统总线单例特性,避免重复启动进程,响应速度更快,内存占用更优。
    • 建议:保持现有DBus触发方式,这是性能最优解。

5. 其他建议

  • INI文件长行问题
    org.deepin.dde.shortcut.dde-app.ini 中的 SubPaths 将所有的路径用逗号拼接在了一行中。随着快捷键越来越多,这一行会变得极长,不利于Git Diff阅读和后续维护。
    • 建议:如果INI解析器支持多行(如通过缩进或反斜杠 \ 换行),建议将 SubPaths 格式化为多行,每个路径占一行;如果不支持,则只能保持现状,但需注意行长度限制。

总结

本次提交整体质量良好,符合DDE的配置规范。核心需要修改的是 delay-screenshot 中硬编码的延时参数,以及关注直接执行脚本的安全权限问题。其余为代码规范和一致性的优化建议。

如果需要我协助修改JSON配置文件中的硬编码参数或生成格式化的INI文件,请随时告诉我!

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: dengzhongyuan365-dev, yixinshark

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@dengzhongyuan365-dev

Copy link
Copy Markdown
Member Author

/merge

@deepin-bot

deepin-bot Bot commented Jun 4, 2026

Copy link
Copy Markdown

This pr cannot be merged! (status: blocked)

@dengzhongyuan365-dev

Copy link
Copy Markdown
Member Author

/forcemerge

@deepin-bot

deepin-bot Bot commented Jun 4, 2026

Copy link
Copy Markdown

This pr force merged! (status: blocked)

@deepin-bot deepin-bot Bot merged commit dbacaff into linuxdeepin:master Jun 4, 2026
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants