browser-sugar-alfredworkflow
browser-sugar-alfredworkflow copied to clipboard
Alfred workflow to switch current active tab between Safari and Chrome.
Browser Sugar Workflow for Alfred 2
Helper scripts playing with browser tabs, and more... Require OS X Yosemite+
Base Syntax
Actions: baction ; [option : value]; [notes|extras...]
Settings: bset action ; set_flag: flag set_value: value
-
action - keyword to trigger action, e.g.
switch,unstash -
flags - on/off value, e.g.
clone- You can prepend prefix to flags to override default settings
@- force flag being on state!- force flag being off state- priority:
@>!> no prefix
- You can prepend prefix to flags to override default settings
-
option: value - key-value pairs of options, e.g.
from: Google Chrome -
notes | extras - additional text data, e.g.
Stash Group Name on Feb 29
switch tabs between supported browsers
Syntax:
Action: bswitch [clone|dedupe|reverse]; [from:|to:|index:]
Set Default Flags: bset switch
Flags:
- clone - Keep original tab(s) after switching
- dedupe - Deduplicate URL in target browser before opening a new tab
- reverse - Reverse lookups of source and target browsers
Options:
- from - Source browser to switch tab(s) from, full application name or browser types
- to - Target browser to switch tabs(s) to, full application name or browser types
- index - Tab index number in the browser window to execute the workflow
- Set index to
allto switch all tabs, or use action modifieralt
- Set index to
copy specified data from Application/Browser/Tab(s)
Syntax:
Action: bcopy [url|title|selection|markdown|tabs] ; [from:|index:|format:]
Set Default Flags: bset copy
Flags:
- url - Copy URL of target window/tab if available
- title - Copy browser tab title or application window name
- selection - Copy selected text in window/tab if available
- markdown - Copy URL and title as a link in markdown syntax
- tabs - Copy information of tabs in JSON string format
Options:
- from - Source browser to switch tab(s) from, full application name or browser types
- index - Tab index number in the browser window to execute the workflow
- Set index to
allto copy data from all tabs, or use action modifieralt
- Set index to
- format - text formatting preset name used to generate copied text content, see User Files section below to see more details of the presets file.
open URL(s) from selection/clipboard
Syntax:
Action: bopen [dedupe] ; [in:]
Set Default Flags: bset open
Flags:
- dedupe - Deduplicate URL in target browser before opening a new tab
- Use action modifier
altcan open all extracted URLs
- Use action modifier
- search - Fallback to search when no URL was detected.
Options:
- in - Target browser to open URL(s)
stash all tabs in browser window
Syntax:
Action: bstash [clone] ; [from:]; <stash group name>
Set Default Flags: bset stash
Flags:
- clone - Do not close tabs after stashed them to group
Options:
- from - Source browser to get the list of tabs to stash
Others:
- stash group name - Group name saved in the stash file
unstash saved stashed tabs
Syntax:
Action: bunstash [clone] ; [to:]; <search>
Set Default Flags: bset unstash
Flags:
- clone - Do not remove stash record after unstashed tabs
Options:
- to - Target browser to restore tabs to
Others:
- search - Search string to filter list of stashed groups
Customizations
User files
-
stash list -
$USER_HOME/.config/bs-alfredworkflow/stash.jsonAuto-generated by workflow when necessary. -
user config -
$USER_HOME/.config/bs-alfredworkflow/config.jsonAuto-generated by workflow when necessary.-
Can define lists of user browsers, and the first one of each group is considered as default, e.g.
{ "browsers": { "safari": ["Safari Technology Preview", "Safari"], "chrome": ["Google Chrome", "Google Chrome Canary", "Chromium"] } ... }
-
-
text formatting presets -
$USER_HOME/.config/bs-alfredworkflow/formats.jsonManually create if you want to utilize this feature.-
basic scheme: { "preset_name": "format_string"}
-
wrapping flag with
##to represent the content in format string -
flags not enabled in
copycommand but appearing in format_string will be skipped -
example:
{ "markdown": "[##title##](##url##)", "custom1" : "##title## ##url##", "custom2" : "##title##\n##url##", "custom3" : "(##url## \"##title##\")" }
-
JXA script syntax
./<action>.js <preview|run|defaults|set> [flags] ; [options] ; [notes|extras] ; [overrides]
- preview - Returns XML content of the query previews in Alfred
- run - Execute the query of action
- defaults - Returns XML content of the settings previews in Alfred
- set - Set default on/off states of flags per action
Add Hotkey trigger
- Create new action from Actions - Run Script, choose language /bin/bash
- Write your own command with the call type of run, e.g.
./copy.js run "selection markdown; from: Safari" - Assign a preferred trigger like a Hot Key, drag and connect trigger and action and output
Tips
- For the result items of browser tabs shown in Alfred, press
⌘Cto copy URL and title in markdown link format ⌘Lto see parsed query string, or error message, for debug use- ...
Todos
- ~~
stashaction to save/open multiple tabs at one time~~ - ~~Allow to specify source and target browser~~
- ~~Add delay and result validation between actions in command flow~~ (Removed the feature of actions flow)
- Firefox support
- Configurations of default options/~~flags~~
- Configurable notifications
Licences
MIT
Icons from iconfinder.com