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',