feat(shortcuts): allow shortcuts to be unassigned (#2510)

Allow users to clear and restore shortcut bindings, persist the explicit unassigned state, and keep shortcut displays and actions aligned with the binding that fires. Includes focused unit coverage and desktop renderer Playwright coverage.
This commit is contained in:
Christoph Leiter
2026-08-09 01:31:40 +02:00
committed by GitHub
parent c28836b4e5
commit 90aa8bbefc
22 changed files with 1247 additions and 115 deletions
+5 -1
View File
@@ -1913,11 +1913,15 @@ export const ar: TranslationResources = {
searchPlaceholder: "البحث في الاختصارات",
unavailableOnMobile: "اختصارات لوحة المفاتيح متاحة فقط على سطح المكتب",
capturePrompt: "اضغط على الاختصار...",
unassigned: "غير معين",
actions: {
menu: "إجراءات {{name}}",
done: "منتهي",
cancel: "يلغي",
bind: "ربط",
rebind: "إعادة ربط",
reset: "إعادة ضبط",
clear: "مسح",
reset: "إعادة الضبط إلى الافتراضي",
resetAll: "إعادة ضبط الكل",
},
sections: {
+5 -1
View File
@@ -1923,11 +1923,15 @@ export const en = {
searchPlaceholder: "Search shortcuts",
unavailableOnMobile: "Keyboard shortcuts are only available on desktop",
capturePrompt: "Press shortcut...",
unassigned: "Not set",
actions: {
menu: "Actions for {{name}}",
done: "Done",
cancel: "Cancel",
bind: "Bind",
rebind: "Rebind",
reset: "Reset",
clear: "Clear",
reset: "Reset to default",
resetAll: "Reset all",
},
sections: {
+5 -1
View File
@@ -1961,11 +1961,15 @@ export const es: TranslationResources = {
searchPlaceholder: "Buscar atajos",
unavailableOnMobile: "Los atajos de teclado solo están disponibles en el escritorio",
capturePrompt: "Presione el acceso directo...",
unassigned: "Sin asignar",
actions: {
menu: "Acciones para {{name}}",
done: "Hecho",
cancel: "Cancelar",
bind: "Asignar",
rebind: "Reencuadernar",
reset: "Reiniciar",
clear: "Borrar",
reset: "Restablecer al valor predeterminado",
resetAll: "Restablecer todo",
},
sections: {
+5 -1
View File
@@ -1964,11 +1964,15 @@ export const fr: TranslationResources = {
searchPlaceholder: "Rechercher des raccourcis",
unavailableOnMobile: "Les raccourcis clavier ne sont disponibles que sur le bureau",
capturePrompt: "Appuyez sur le raccourci...",
unassigned: "Non défini",
actions: {
menu: "Actions pour {{name}}",
done: "Fait",
cancel: "Annuler",
bind: "Attribuer",
rebind: "Relier",
reset: "Réinitialiser",
clear: "Effacer",
reset: "Rétablir la valeur par défaut",
resetAll: "Tout réinitialiser",
},
sections: {
+5 -1
View File
@@ -1929,11 +1929,15 @@ export const ja: TranslationResources = {
searchPlaceholder: "ショートカットを検索",
unavailableOnMobile: "キーボードショートカットはデスクトップでのみ利用できます",
capturePrompt: "ショートカットを押してください...",
unassigned: "未設定",
actions: {
menu: "{{name}} のアクション",
done: "完了",
cancel: "キャンセル",
bind: "割り当て",
rebind: "再割り当て",
reset: "リセット",
clear: "クリア",
reset: "デフォルトに戻す",
resetAll: "すべてリセット",
},
sections: {
+5 -1
View File
@@ -1924,11 +1924,15 @@ export const ko: TranslationResources = {
searchPlaceholder: "검색 단축키",
unavailableOnMobile: "키보드 단축키는 데스크톱에서만 사용할 수 있습니다",
capturePrompt: "단축키를 누르세요...",
unassigned: "설정되지 않음",
actions: {
menu: "{{name}} 작업",
done: "완료",
cancel: "취소",
bind: "지정",
rebind: "다시 지정",
reset: "재설정",
clear: "지우기",
reset: "기본값으로 재설정",
resetAll: "모두 재설정",
},
sections: {
+5 -1
View File
@@ -1944,11 +1944,15 @@ export const ptBR: TranslationResources = {
searchPlaceholder: "Pesquisar atalhos",
unavailableOnMobile: "Atalhos de teclado estão disponíveis apenas no desktop",
capturePrompt: "Pressione o atalho...",
unassigned: "Não definido",
actions: {
menu: "Ações para {{name}}",
done: "Concluído",
cancel: "Cancelar",
bind: "Atribuir",
rebind: "Reatribuir",
reset: "Redefinir",
clear: "Limpar",
reset: "Redefinir para o padrão",
resetAll: "Redefinir tudo",
},
sections: {
+5 -1
View File
@@ -1951,11 +1951,15 @@ export const ru: TranslationResources = {
searchPlaceholder: "Поиск сочетаний клавиш",
unavailableOnMobile: "Сочетания клавиш доступны только на рабочем столе.",
capturePrompt: "Нажмите ярлык...",
unassigned: "Не задано",
actions: {
menu: "Действия для {{name}}",
done: "Сделанный",
cancel: "Отмена",
bind: "Привязать",
rebind: "Перепривязка",
reset: "Перезагрузить",
clear: "Очистить",
reset: "Сбросить к значению по умолчанию",
resetAll: "Сбросить все",
},
sections: {
+5 -1
View File
@@ -1891,11 +1891,15 @@ export const zhCN: TranslationResources = {
searchPlaceholder: "搜索快捷键",
unavailableOnMobile: "键盘快捷键仅在桌面端可用",
capturePrompt: "按下快捷键...",
unassigned: "未设置",
actions: {
menu: "{{name}} 的操作",
done: "完成",
cancel: "取消",
bind: "绑定",
rebind: "重新绑定",
reset: "重置",
clear: "清除",
reset: "重置为默认",
resetAll: "全部重置",
},
sections: {