diff --git a/locales/en-US/browser/browser/preferences/zen-preferences.ftl b/locales/en-US/browser/browser/preferences/zen-preferences.ftl index 2941a51573..02d692fbce 100644 --- a/locales/en-US/browser/browser/preferences/zen-preferences.ftl +++ b/locales/en-US/browser/browser/preferences/zen-preferences.ftl @@ -350,3 +350,7 @@ zen-devtools-toggle-storage-shortcut = Toggle Storage zen-devtools-toggle-dom-shortcut = Toggle DOM zen-devtools-toggle-accessibility-shortcut = Toggle Accessibility zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs +zen-tab-next-shortcut = Next Tab +zen-tab-previous-shortcut = Previous Tab +zen-move-tab-forward-shortcut = Move Tab Forward +zen-move-tab-backward-shortcut = Move Tab Backward diff --git a/src/browser/base/content/zen-commands.inc.xhtml b/src/browser/base/content/zen-commands.inc.xhtml index 66cfe1c5bc..3a1211e53d 100644 --- a/src/browser/base/content/zen-commands.inc.xhtml +++ b/src/browser/base/content/zen-commands.inc.xhtml @@ -61,4 +61,9 @@ - + + + + + + \ No newline at end of file diff --git a/src/zen/common/zen-sets.js b/src/zen/common/zen-sets.js index b7b6c00ad6..23600926c8 100644 --- a/src/zen/common/zen-sets.js +++ b/src/zen/common/zen-sets.js @@ -129,6 +129,18 @@ document.addEventListener( gZenWorkspaces.unloadWorkspace(); break; } + case 'cmd_zenTabNext': + gBrowser.tabContainer.advanceSelectedTab(1, true); + break; + case 'cmd_zenTabPrevious': + gBrowser.tabContainer.advanceSelectedTab(-1, true); + break; + case 'cmd_zenMoveTabForward': + gBrowser.moveTabForward(); + break; + case 'cmd_zenMoveTabBackward': + gBrowser.moveTabBackward(); + break; default: gZenGlanceManager.handleMainCommandSet(event); if (event.target.id.startsWith('cmd_zenWorkspaceSwitch')) { diff --git a/src/zen/kbs/ZenKeyboardShortcuts.mjs b/src/zen/kbs/ZenKeyboardShortcuts.mjs index 777d1fbfe5..5526a84668 100644 --- a/src/zen/kbs/ZenKeyboardShortcuts.mjs +++ b/src/zen/kbs/ZenKeyboardShortcuts.mjs @@ -52,6 +52,10 @@ const defaultKeyboardGroups = { 'zen-close-all-unpinned-tabs-shortcut', 'zen-close-tab-shortcut', 'zen-close-shortcut', + 'zen-tab-next-shortcut', + 'zen-tab-previous-shortcut', + 'zen-move-tab-forward-shortcut', + 'zen-move-tab-backward-shortcut', 'id:key_selectTab1', 'id:key_selectTab2', 'id:key_selectTab3', @@ -800,7 +804,7 @@ class nsZenKeyboardShortcutsLoader { } class nsZenKeyboardShortcutsVersioner { - static LATEST_KBS_VERSION = 13; + static LATEST_KBS_VERSION = 14; constructor() {} @@ -1096,6 +1100,55 @@ class nsZenKeyboardShortcutsVersioner { ); } + if (version < 14) { + // Migrate from version 13 to 14 + // Add customizable tab navigation and move tab shortcuts + data.push( + new KeyShortcut( + 'zen-tab-next', + '', + 'VK_TAB', + 'windowAndTabManagement', + nsKeyShortcutModifiers.fromObject({ accel: true }), + 'cmd_zenTabNext', + 'zen-tab-next-shortcut' + ) + ); + data.push( + new KeyShortcut( + 'zen-tab-previous', + '', + 'VK_TAB', + 'windowAndTabManagement', + nsKeyShortcutModifiers.fromObject({ accel: true, shift: true }), + 'cmd_zenTabPrevious', + 'zen-tab-previous-shortcut' + ) + ); + data.push( + new KeyShortcut( + 'zen-move-tab-forward', + '', + '', + 'windowAndTabManagement', + nsKeyShortcutModifiers.fromObject({}), + 'cmd_zenMoveTabForward', + 'zen-move-tab-forward-shortcut' + ) + ); + data.push( + new KeyShortcut( + 'zen-move-tab-backward', + '', + '', + 'windowAndTabManagement', + nsKeyShortcutModifiers.fromObject({}), + 'cmd_zenMoveTabBackward', + 'zen-move-tab-backward-shortcut' + ) + ); + } + return data; } }