diff --git a/locales/en-US/browser/browser/preferences/zen-preferences.ftl b/locales/en-US/browser/browser/preferences/zen-preferences.ftl index e9da3700a..c08008d54 100644 --- a/locales/en-US/browser/browser/preferences/zen-preferences.ftl +++ b/locales/en-US/browser/browser/preferences/zen-preferences.ftl @@ -259,6 +259,7 @@ zen-key-exit-full-screen = Exit Full Screen zen-ai-chatbot-sidebar-shortcut = Toggle AI Chatbot Sidebar zen-key-inspector-mac = Toggle Inspector (Mac) zen-toggle-sidebar-shortcut = Toggle Firefox Sidebar +zen-toggle-pin-tab-shortcut = Toggle Pin Tab zen-reader-mode-toggle-shortcut-other = Toggle Reader Mode zen-picture-in-picture-toggle-shortcut = Toggle Picture-in-Picture zen-nav-reload-shortcut-2 = Reload Page diff --git a/src/browser/base/content/zen-commands.inc.xhtml b/src/browser/base/content/zen-commands.inc.xhtml index d21246892..68f96a127 100644 --- a/src/browser/base/content/zen-commands.inc.xhtml +++ b/src/browser/base/content/zen-commands.inc.xhtml @@ -59,4 +59,6 @@ + + diff --git a/src/zen/common/zen-sets.js b/src/zen/common/zen-sets.js index 0c95324c0..529a98f60 100644 --- a/src/zen/common/zen-sets.js +++ b/src/zen/common/zen-sets.js @@ -115,6 +115,16 @@ document.addEventListener( renameFolder: true, }); break; + case 'cmd_zenTogglePinTab': + const currentTab = gBrowser.selectedTab; + if (currentTab) { + if (currentTab.pinned) { + gBrowser.unpinTab(currentTab); + } else { + gBrowser.pinTab(currentTab); + } + } + 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 c52061e9d..c9e4cfbdb 100644 --- a/src/zen/kbs/ZenKeyboardShortcuts.mjs +++ b/src/zen/kbs/ZenKeyboardShortcuts.mjs @@ -843,7 +843,13 @@ class nsZenKeyboardShortcutsVersioner { // Hard-remove deprecated or conflicting defaults regardless of version // - Remove the built-in "Open File" keybinding; menu item remains available - out = out.filter((shortcut) => shortcut.getAction?.() !== 'Browser:OpenFile'); + // - Remove default "Bookmark All Tabs" keybinding (Ctrl+Shift+D) to avoid conflict + out = out.filter( + (shortcut) => + shortcut.getAction?.() !== 'Browser:OpenFile' && + shortcut.getAction?.() !== 'Browser:BookmarkAllTabs' && + shortcut.getAction?.() !== 'key_stop' + ); return out; } @@ -1002,7 +1008,20 @@ class nsZenKeyboardShortcutsVersioner { } if (version < 10) { // Migrate from version 9 to 10 - // 1) Add shortcut to expand Glance into a full tab: Default Accel+O + // 1) Add the new pin/unpin tab toggle shortcut with Ctrl+Shift+D + data.push( + new KeyShortcut( + 'zen-toggle-pin-tab', + 'D', + '', + ZEN_OTHER_SHORTCUTS_GROUP, + nsKeyShortcutModifiers.fromObject({ accel: true, shift: true }), + 'cmd_zenTogglePinTab', + 'zen-toggle-pin-tab-shortcut' + ) + ); + + // 2) Add shortcut to expand Glance into a full tab: Default Accel+O data.push( new KeyShortcut( 'zen-glance-expand',