aboutsummaryrefslogtreecommitdiff
path: root/modules/firefox.home/chrome/globalKeybindings.uc.js
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2024-08-25 17:06:50 +0530
committerAkshay Nair <phenax5@gmail.com>2024-08-25 17:16:25 +0530
commit0d0e62aedf8bfd8393f5ad17e369a95ddc12137f (patch)
tree92d56a5ab7825dd8f465f6b7e1ab10ba9c565f2c /modules/firefox.home/chrome/globalKeybindings.uc.js
parentd1c6524ad7f1a805b2a2b0394df2b8cbb286d3e8 (diff)
downloadnixos-config-0d0e62aedf8bfd8393f5ad17e369a95ddc12137f.tar.gz
nixos-config-0d0e62aedf8bfd8393f5ad17e369a95ddc12137f.zip
firefox: Add private browsing indicator + move passthru indicator
Diffstat (limited to 'modules/firefox.home/chrome/globalKeybindings.uc.js')
-rw-r--r--modules/firefox.home/chrome/globalKeybindings.uc.js26
1 files changed, 19 insertions, 7 deletions
diff --git a/modules/firefox.home/chrome/globalKeybindings.uc.js b/modules/firefox.home/chrome/globalKeybindings.uc.js
index 1ff868c..4ad35da 100644
--- a/modules/firefox.home/chrome/globalKeybindings.uc.js
+++ b/modules/firefox.home/chrome/globalKeybindings.uc.js
@@ -41,10 +41,21 @@
const togglePassthrough = () => () => UC.globalKeybindings.updateMode(m => m !== MODE_PASSTHRU ? MODE_PASSTHRU : MODE_NORMAL)
const sidetabs = {
- getExtensionId: () => [...SidebarController.sidebars].find(([_, p]) => p.label?.match(/sidetabs/i))?.[0],
- ensureOpen: () => !SidebarController.isOpen && SidebarController.show(sidetabs.getExtensionId() ?? undefined),
- toggle: () => () => {
- sidetabs.ensureOpen();
+ getExtensionId: () => {
+ return [...SidebarController.sidebars].find(([_, p]) => p.label?.match(/sidetabs/i))?.[0];
+ },
+ ensureReady: async () => {
+ for (let i = 0; i < 3; i++) {
+ if (sidetabs.getExtensionId()) {
+ return !SidebarController.isOpen && SidebarController.show(sidetabs.getExtensionId() ?? undefined)
+ } else {
+ console.log('sidebar retry...');
+ await new Promise(res => setTimeout(res), 100);
+ }
+ }
+ },
+ toggle: () => async () => {
+ await sidetabs.ensureReady();
const sidebar = document.getElementById('sidebar-box');
sidebar?.classList.toggle('open');
},
@@ -97,17 +108,18 @@
updateMode: f => {
module.mode = f(module.mode);
- gBrowser.tabContainer.dataset.keyMode = module.mode
+ if (gNavToolbox) gNavToolbox.dataset.keyMode = module.mode;
+ Services.obs.notifyObservers(null, 'uc:globalKeybindings:modeChanged', module.mode);
},
handleKeyUpEvent: e => module.evaluateKeybindings(module.keybindings.RELEASE, e),
handleKeyDownEvent: e => module.evaluateKeybindings(module.keybindings.PRESS, e),
- onWindowReady: (win) => {
+ onWindowReady: async (win) => {
win.addEventListener('keyup', module.handleKeyUpEvent, true);
win.addEventListener('keydown', module.handleKeyDownEvent, true);
- sidetabs.ensureOpen();
+ await sidetabs.ensureReady();
},
init(win) {