mirror of
https://github.com/zen-browser/desktop.git
synced 2025-11-10 04:25:12 +00:00
* feat: close all unpinned tabs using keyboard shortcut * feat: use toast instead of prompt * feat: add toolbarbutton to close all unpinned tabs in a workspace * feat: Fix bootstraping and other small nitpicks, b=no-bug, c=common, tabs, workspaces * feat: improve the site popup ui, p=#10765 * style: improve site popup top buttons * feat: add filled icons for permissions * style: align and resize items in the site popup * feat: site popup ui improvements and more permission icons * chore: Better organize preferences files, b=no-bug, c=compact-mode, folders, glance, kbs, media, mods, split-view, welcome, workspaces * feat: improve the site popup ui (part 2), p=#10768 * feat: Add a bounce to the glance element float and format, b=no-bug, c=common, glance * chore: Update workflows to use macos 26 SDK, b=no-bug, c=workflows * New Crowdin updates, p=#10769 * New translations zen-preferences.ftl (French) * New translations zen-preferences.ftl (Lithuanian) * New translations zen-workspaces.ftl (Lithuanian) * New translations zen-general.ftl (Lithuanian) * list shortcut in settings page, refactor code based on PR review * feat: show restore tabs shortcut in toast message * feat: Add toggle compact mode to the default placements, b=no-bug, c=common, glance * chore: Only run autopep8 if python files changed, b=no-bug, c=workflows * chore: Revert to the new folder animation, p=#10783, c=folders * feat: Use close icon for pinned reset if the preference says so, p=#10786, c=no-component * feat: Improve glance animation, p=#10790, c=glance * update l10n string * feat: Finished UI, b=no-bug, c=workspaces, common, tabs * chore: Fix lint, b=no-bug, c=workspaces --------- Co-authored-by: mr. m <mr.m@tuta.com> Co-authored-by: reizumi <reizumichan@protonmail.com> Co-authored-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
144 lines
5.2 KiB
JavaScript
144 lines
5.2 KiB
JavaScript
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
document.addEventListener(
|
|
'MozBeforeInitialXULLayout',
|
|
() => {
|
|
// <commandset id="mainCommandSet"> defined in browser-sets.inc
|
|
document
|
|
.getElementById('zenCommandSet')
|
|
|
|
.addEventListener('command', (event) => {
|
|
switch (event.target.id) {
|
|
case 'cmd_zenCompactModeToggle':
|
|
gZenCompactModeManager.toggle();
|
|
break;
|
|
case 'cmd_zenCompactModeShowSidebar':
|
|
gZenCompactModeManager.toggleSidebar();
|
|
break;
|
|
case 'cmd_toggleCompactModeIgnoreHover':
|
|
gZenCompactModeManager.toggle(true);
|
|
break;
|
|
case 'cmd_zenWorkspaceForward':
|
|
gZenWorkspaces.changeWorkspaceShortcut();
|
|
break;
|
|
case 'cmd_zenWorkspaceBackward':
|
|
gZenWorkspaces.changeWorkspaceShortcut(-1);
|
|
break;
|
|
case 'cmd_zenSplitViewGrid':
|
|
gZenViewSplitter.toggleShortcut('grid');
|
|
break;
|
|
case 'cmd_zenSplitViewVertical':
|
|
gZenViewSplitter.toggleShortcut('vsep');
|
|
break;
|
|
case 'cmd_zenSplitViewHorizontal':
|
|
gZenViewSplitter.toggleShortcut('hsep');
|
|
break;
|
|
case 'cmd_zenSplitViewUnsplit':
|
|
gZenViewSplitter.toggleShortcut('unsplit');
|
|
break;
|
|
case 'cmd_zenSplitViewContextMenu':
|
|
gZenViewSplitter.contextSplitTabs();
|
|
break;
|
|
case 'cmd_zenCopyCurrentURLMarkdown':
|
|
gZenCommonActions.copyCurrentURLAsMarkdownToClipboard();
|
|
break;
|
|
case 'cmd_zenCopyCurrentURL':
|
|
gZenCommonActions.copyCurrentURLToClipboard();
|
|
break;
|
|
case 'cmd_zenPinnedTabReset':
|
|
gZenPinnedTabManager.resetPinnedTab(gBrowser.selectedTab);
|
|
break;
|
|
case 'cmd_zenPinnedTabResetNoTab':
|
|
gZenPinnedTabManager.resetPinnedTab();
|
|
break;
|
|
case 'cmd_zenToggleSidebar':
|
|
gZenVerticalTabsManager.toggleExpand();
|
|
break;
|
|
case 'cmd_zenOpenZenThemePicker':
|
|
gZenThemePicker.openThemePicker(event);
|
|
break;
|
|
case 'cmd_zenChangeWorkspaceTab':
|
|
gZenWorkspaces.changeTabWorkspace(
|
|
event.sourceEvent.target.getAttribute('zen-workspace-id')
|
|
);
|
|
break;
|
|
case 'cmd_zenToggleTabsOnRight':
|
|
gZenVerticalTabsManager.toggleTabsOnRight();
|
|
break;
|
|
case 'cmd_zenSplitViewLinkInNewTab':
|
|
gZenViewSplitter.splitLinkInNewTab();
|
|
break;
|
|
case 'cmd_zenNewEmptySplit':
|
|
setTimeout(() => {
|
|
gZenViewSplitter.createEmptySplit();
|
|
}, 0);
|
|
break;
|
|
case 'cmd_zenReplacePinnedUrlWithCurrent':
|
|
gZenPinnedTabManager.replacePinnedUrlWithCurrent();
|
|
break;
|
|
case 'cmd_contextZenAddToEssentials':
|
|
gZenPinnedTabManager.addToEssentials();
|
|
break;
|
|
case 'cmd_contextZenRemoveFromEssentials':
|
|
gZenPinnedTabManager.removeEssentials();
|
|
break;
|
|
case 'cmd_zenCtxDeleteWorkspace':
|
|
gZenWorkspaces.contextDeleteWorkspace(event);
|
|
break;
|
|
case 'cmd_zenChangeWorkspaceName':
|
|
gZenVerticalTabsManager.renameTabStart({
|
|
target: gZenWorkspaces.activeWorkspaceIndicator.querySelector(
|
|
'.zen-current-workspace-indicator-name'
|
|
),
|
|
});
|
|
break;
|
|
case 'cmd_zenChangeWorkspaceIcon':
|
|
gZenWorkspaces.changeWorkspaceIcon();
|
|
break;
|
|
case 'cmd_zenReorderWorkspaces':
|
|
gZenUIManager.showToast('zen-workspaces-how-to-reorder-title', {
|
|
timeout: 9000,
|
|
descriptionId: 'zen-workspaces-how-to-reorder-desc',
|
|
});
|
|
break;
|
|
case 'cmd_zenOpenWorkspaceCreation':
|
|
gZenWorkspaces.openWorkspaceCreation(event);
|
|
break;
|
|
case 'cmd_zenOpenFolderCreation':
|
|
gZenFolders.createFolder([], {
|
|
renameFolder: true,
|
|
});
|
|
break;
|
|
case 'cmd_zenTogglePinTab': {
|
|
const currentTab = gBrowser.selectedTab;
|
|
if (currentTab && !currentTab.hasAttribute('zen-empty-tab')) {
|
|
if (currentTab.pinned) {
|
|
gBrowser.unpinTab(currentTab);
|
|
} else {
|
|
gBrowser.pinTab(currentTab);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case 'cmd_zenCloseUnpinnedTabs':
|
|
gZenWorkspaces.closeAllUnpinnedTabs();
|
|
break;
|
|
case 'cmd_zenUnloadWorkspace': {
|
|
gZenWorkspaces.unloadWorkspace();
|
|
break;
|
|
}
|
|
default:
|
|
gZenGlanceManager.handleMainCommandSet(event);
|
|
if (event.target.id.startsWith('cmd_zenWorkspaceSwitch')) {
|
|
const index = parseInt(event.target.id.replace('cmd_zenWorkspaceSwitch', ''), 10) - 1;
|
|
gZenWorkspaces.shortcutSwitchTo(index);
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
},
|
|
{ once: true }
|
|
);
|