From 09172391a58344e310a2d5fd5accc07ed441fbbe Mon Sep 17 00:00:00 2001 From: Oliver Blanthorn Date: Wed, 22 Mar 2023 14:43:17 +0100 Subject: [PATCH] Add jsua for --mode=browser binds Works like jsb but preserves the 'user action' so it can be used to open/close the sidebar, open downloaded files etc. Example usage: `:bind --mode=browser jsua browser.sidebarAction.close()` --- src/background/commands.ts | 14 ++++++++------ src/background/user_actions.ts | 7 ++++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/background/commands.ts b/src/background/commands.ts index f9c3b466..b688d7be 100644 --- a/src/background/commands.ts +++ b/src/background/commands.ts @@ -6,12 +6,14 @@ import * as controller from "@src/lib/controller" function makelistener(commands: Array) { return (command_name: string) => { const command = commands.filter(c => c.name == command_name)[0] - const exstring = config.get( - "browsermaps", - keyseq.mozMapToMinimalKey(command.shortcut).toMapstr(), - ) - if (exstring in useractions) return useractions[exstring]() - return controller.acceptExCmd(exstring) + const [excmd, ...exargs] = config + .get( + "browsermaps", + keyseq.mozMapToMinimalKey(command.shortcut).toMapstr(), + ) + .split(" ") + if (excmd in useractions) return useractions[excmd](...exargs) + return controller.acceptExCmd([excmd, ...exargs].join(" ")) } } diff --git a/src/background/user_actions.ts b/src/background/user_actions.ts index c1bf6b56..fbd0c2f9 100644 --- a/src/background/user_actions.ts +++ b/src/background/user_actions.ts @@ -43,7 +43,12 @@ function sidebartoggle() { return browser.sidebarAction.toggle() } -export const useractions: Record void> = { +function jsua(...args: string[]) { + return eval(args.join(" ")) +} + +export const useractions: Record void> = { escapehatch, sidebartoggle, + jsua, }