Skip to content

fix: update default shortcut settings - #139

Merged
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
yixinshark:fix/update-default-shortcuts
Aug 11, 2026
Merged

fix: update default shortcut settings#139
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
yixinshark:fix/update-default-shortcuts

Conversation

@yixinshark

@yixinshark yixinshark commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • update workspace navigation and window-move default shortcuts with DConfig serial increments
  • regroup task switching and multitask-view shortcuts with the requested display order
  • rename the restore-window source label and refresh all dde-app TS catalogs

Translation note

  • this PR updates translation sources only
  • specific Chinese translations will be handled after this PR

Test plan

  • cmake --build build --parallel 4
  • ctest --test-dir build --output-on-failure -R shortcut-(physicalkeyalias|triggeractioncatalog|qkeysequenceconverter|x11shortcutpolicy|x11wmaccelconverter)
  • validate all changed JSON and TS files

Summary by Sourcery

Update default shortcut configurations and translation catalogs to reflect revised window management and workspace navigation actions.

New Features:

  • Introduce a new "Restore window" shortcut action in the dde-app shortcut catalogs and configs.

Enhancements:

  • Normalize Qt TS translation files to use UTF-8 XML headers and updated message metadata for window management actions.
  • Regroup task switching and multitask view shortcut definitions to match the desired display order in the default configs.
  • Adjust workspace navigation and window-move default shortcut configs to align with updated DConfig key sequences.

Chores:

  • Mark the legacy "Cancel Maximize Window" shortcut strings as vanished across translations to deprecate the old action.

@sourcery-ai

sourcery-ai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Reviewer's Guide

Updates default window/workspace shortcut configurations and refreshes translation source catalogs to replace the old 'Cancel Maximize Window' action with a new 'Restore window' action and to align TS metadata with Qt expectations.

Sequence diagram for updated Restore_window shortcut action

sequenceDiagram
    actor User
    participant ShortcutConfig as Shortcut_config_JSON
    participant DConfig as DConfig_service
    participant ShortcutEngine as Shortcut_engine
    participant WindowManager as Window_manager

    User->>ShortcutConfig: press Restore_window shortcut
    ShortcutConfig->>DConfig: lookup keybinding Restore_window
    DConfig-->>ShortcutEngine: return QKeySequence
    ShortcutEngine->>WindowManager: trigger Restore_window
    WindowManager-->>User: window restored from maximized state
Loading

File-Level Changes

Change Details Files
Normalize TS catalog XML headers and append new 'Restore window' source entry while marking 'Cancel Maximize Window' as vanished across multiple locales.
  • Update XML declaration to include utf-8 encoding and put DOCTYPE and TS elements on separate lines for each TS catalog.
  • Mark existing 'Cancel Maximize Window' messages as type='vanished' in localized TS files where they had concrete translations.
  • Remove 'Cancel Maximize Window' source entry from the base TS catalogs that only contain sources.
  • Add new 'Restore window' message entry with unfinished translations for all affected locales, including non-localized base catalogs.
  • Ensure unfinished translations use explicit empty elements () for consistency.
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ast.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_az.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_bg.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_bo.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ca.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_cs.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_da.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_de.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_el.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_en.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_es.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_et.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_eu.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_fa.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_fi.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_fr.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_gl.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_he.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_hi.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_hr.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_hu.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_hy.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_id.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_it.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ja.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ka.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_kk.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ko.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ky.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_lt.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_lv.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ms.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_nb.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ne.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_nl.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_pa.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_pl.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_pt.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_pt_BR.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ro.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ru.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_sk.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_sl.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_sq.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_sr.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_sv.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_th.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_tr.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_ug.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_uk.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_vi.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_zh_CN.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_zh_HK.ts
src/plugin-qt/shortcut/dde-app-shortcuts/translations/org.deepin.dde.shortcut.dde-app_zh_TW.ts
Update default shortcut configuration JSONs for workspace navigation, window movement, and task switching to reflect new DConfig serials and requested ordering.
  • Adjust or add DConfig serial numbers in workspace navigation and window movement shortcut configs to match new defaults.
  • Reorder task switching and multitask view shortcut entries in their JSON configs to align with the requested display order.
  • Ensure JSON files remain valid and consistent with corresponding TS source keys and actions.
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.cancel-maximize/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.move-left-workspace/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.move-right-workspace/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.next-workspace/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.prev-workspace/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.taskswitch-next/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.taskswitch-prev/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.taskswitch-sameapp-next/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.taskswitch-sameapp-prev/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.toggle-multitaskview/org.deepin.shortcut.json
src/plugin-qt/shortcut/dde-app-shortcuts/configs/org.deepin.dde.keybinding.shortcut.app.wm-switcher/org.deepin.shortcut.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@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.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Align the built-in shortcut defaults and presentation with the revised control center layout.
- Update workspace navigation and window-move key combinations with matching DConfig serial increments.
- Move task switching shortcuts to the Window category and multitask view to the top of Workspace.
- Rename the restore-window source label and refresh all dde-app translation catalogs without adding new localized text.

按照调整后的控制中心布局更新内置快捷键默认值和展示信息。
- 更新工作区切换及窗口移动组合键,并同步递增对应的 DConfig serial。
- 将窗口切换快捷键移至窗口分类,并将多任务视图置于工作区分类首位。
- 更新恢复窗口的源文案并刷新全部 dde-app 翻译目录,暂不新增具体翻译文本。

Log: update default shortcut settings
Pms: TASK-393897
Change-Id: I23b0db51f7eb2ef0f7717c011217e1abd18894a3
@yixinshark
yixinshark force-pushed the fix/update-default-shortcuts branch from e91de12 to 062a5d5 Compare August 11, 2026 11:10
@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

★ 总体评分:100分

■ 【总体评价】

代码实现了快捷键配置规范化与国际化翻译同步更新,质量极高
逻辑正确且无任何安全风险,得满分

■ 【详细分析】

  • 1.语法逻辑(完全正确)✓

JSON配置文件修改结构严谨,键值对更新无误;翻译文件XML格式修正(如补全闭合标签、添加encoding声明、修复文件末尾换行符)完全符合XML规范,无任何语法错误
建议:保持现有的配置文件修改规范

  • 2.代码质量(优秀)✓

快捷键组合从三键统一规范为更符合现代Linux桌面习惯的Meta组合键,分类从System细化到Window/Workspace,显示顺序displayOrder调整合理,翻译条目处理规范(使用vanished标记废弃翻译,新增unfinished占位)
建议:后续可跟进补充新增翻译条目中type="unfinished"的具体语言翻译

  • 3.代码性能(无性能问题)✓

本次变更为纯静态配置文件与翻译资源文件更新,不涉及任何运行时代码、算法或系统调用,对系统性能无影响
建议:无需优化

  • 4.代码安全(存在0个安全漏洞)✓

漏洞对比统计:新增漏洞 0 个,减少漏洞 0 个,持平 0 个
变更内容仅为JSON键值和XML文本节点,不包含任何可执行逻辑、动态加载或外部输入处理,不存在命令注入、路径遍历等安全风险

  • 建议:继续保持静态资源文件的安全隔离管理

■ 【改进建议代码示例】

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
    <name>org.deepin.dde.shortcut.dde-app</name>
    <message>
        <source>Restore window</source>
-        <translation type="unfinished"></translation>
+        <translation>恢复窗口</translation>
    </message>
</context>
</TS>

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: robertkill, 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

@yixinshark

Copy link
Copy Markdown
Contributor Author

/forcemerge

@deepin-bot

deepin-bot Bot commented Aug 11, 2026

Copy link
Copy Markdown

This pr force merged! (status: blocked)

@deepin-bot
deepin-bot Bot merged commit ab75b19 into linuxdeepin:master Aug 11, 2026
9 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