Bunch Release Notes
Recently Updated Documentation
-
bunch-files/apps +
-Δ -
bunch-files/commands/audio +
-Δ -
bunch-files/commands/awake +
-Δ -
bunch-files/commands/display +
-Δ - bunch-files/commands/do-not-disturb + Δ
- bunch-files/commands/index + Δ
-
bunch-files/commands/log +
-Δ - bunch-files/commands/quit-everything + Δ
- bunch-files/commands/shortcut + Δ
-
bunch-files/commands/sleep +
-Δ -
bunch-files/commands/wallpaper +
-Δ -
bunch-files/comments +
-Δ -
bunch-files/delay +
-Δ -
bunch-files/frontmatter +
-Δ -
bunch-files/interactivity/multiple-choice +
-Δ -
bunch-files/interactivity/populating-variables +
-Δ -
bunch-files/keystrokes +
-Δ -
bunch-files/logic +
-Δ -
bunch-files/opening-web-pages +
-Δ -
bunch-files/other-bunches +
-Δ -
bunch-files/quick-reference +
-Δ -
bunch-files/samplebunch +
-Δ -
bunch-files/scheduling-bunches +
-Δ -
bunch-files/scripts/applescript +
-Δ -
bunch-files/scripts/shell-scripts +
-Δ -
bunch-files/snippets +
-Δ -
bunch-files/spotlight-searches +
-Δ -
bunch-files/startup-scripts +
-Δ -
bunch-files/variables +
-Δ -
./changelog +++++
-Δ - ./index + Δ
-
./installation +
-Δ -
integration/advanced-scripting/bunch-status-board +
-Δ -
integration/advanced-scripting/custom-dialogs +
-Δ -
integration/advanced-scripting/debugging +
-Δ -
integration/advanced-scripting/dialogs-from-files +
-Δ -
integration/advanced-scripting/index +
-Δ -
integration/advanced-scripting/secure-input +
-Δ -
integration/advanced-scripting/sudo +
-Δ -
integration/applescript +
-Δ -
integration/cli +
-Δ - integration/focus-modes + Δ
-
integration/forklift +
-Δ -
integration/hazel +
-Δ - integration/ide-packages + Δ
-
integration/launchbar-and-alfred +
-Δ -
integration/mailmate +
-Δ -
integration/moom +
-Δ -
integration/more-tools +
-Δ -
integration/other-automation +
-Δ -
integration/stream-deck +
-Δ -
integration/url-handler +
-Δ -
./troubleshooting +
-Δ -
using-bunch/bunch-log +
-Δ -
using-bunch/getting-started +
-Δ -
using-bunch/menu +
-Δ -
using-bunch/organizing-bunches +
-Δ -
using-bunch/terminology +
-Δ -
./whats-new +++
-Δ
Beta Feature: this feature is currently in development and is only available to those using the preview build. If you want to help test new features, feel free to download and run the beta release.
- 1.4.18 (182)
-
Set
quit browsers: true
in frontmatter to always quit browsers opened withbrowser:url
syntax on close - Arc browser URLs failing
- 1.4.17 (180)
- BUNCH_DIR available as a variable for conditions and file paths
- Fix Xcode warnings
- Account for changes in the way Visual Studio Code identifies itself when quitting
- Clicking a bunch with modifier keys, e.g. Cmd-Click to edit, wasn’t working
-
Expand tilde in paths passed to url handler
snippet
and AppleScript “run snippet” - Outdated images in welcome screen
-
Sanity check for
open every:
key, disallow day/times - Add Arc browser prefix (arc:) for browser-specific url
-
Expand tilde in paths passed to url handler
snippet
and AppleScript “run snippet”
- 1.4.16 (177)
- Add Arc browser prefix (arc:) for browser-specific url launching
- Account for changes in the way Visual Studio Code identifies itself when quitting
- Clicking a bunch with modifier keys, e.g. Cmd-Click to edit, wasn’t working
- 1.4.13 (173)
- Failure to recognize a shell script as a binary and then removing the binary from the command
- 1.4.12 (172)
- Recognize multi-word shortcut names
- Refreshing bunches lost open state
- Failure to load Bunches on first launch
- Heredoc shell scripts crashing Bunch
- 1.4.12 (168)
- Bunch remembering to open Bunches that were actually closed before exit
- 1.4.12 (168)
- Bunch remembering to open Bunches that were actually closed before exit
- 1.4.12 (167)
- Crash with displaying a script command window when output is empty
- First Bunch open after launch has long delay when Parallel launching is disabled
- Interpret /usr/bin/env shebang even when external script is executable
- 1.4.11 (166)
-
(hide desktop) command not functioning
- Programatically opening System Preferences is broken on Ventura. Best I can currently do is open System Settings, but can’t focus a pane (e.g. Notifications). Keeping an eye on this.
- Bunch didn’t recognize symlinks for Bunch folders
- Switching between Bunch folders would cause all Bunches to show up in a “Bunches” submenu
- 1.4.10 (163)
- Bunch didn’t recognize symlinks for Bunch folders
- Switching between Bunch folders would cause all Bunches to show up in a “Bunches” submenu
- 1.4.10 (163)
- AppleScript commands to copy or save a new Bunch with running apps
- Added canary and firefoxdev as browser prefixes
-
Target specific Chrome profiles using
chrome[Profile Name]:http://...
- (shortcut NAME) command for running macOS Shortcuts
- Fixed variable assignment using shell script heredoc syntax
-
The
(shortcut)
command now accepts input and outputs any response for use in variables - Attempt to fix issue where spaces in Bunch directory path caused menu issues or were unable to be selected in the dropdown
- Newline character in (shortcut) input
- Replace global variables before processing frontmatter conditionals
- 1.4.9 (148)
- /opt/homebrew/bin is now included in the default path for M1 users using shell scripting
- Allow closing all Finder windows with XX (and on close with !!Finder)
- 1.4.8 (143)
- Variable keys passed from URL handler were running into case sensitivity issues
- When launching or quitting a tag, %\tag was not ignoring the action on close
- Don’t inherit tags when nesting Bunches
- Variables defined in a snippet call file line work with conditional logic within the snippet
- Allow retries when sending AppleScript commands for things like
- Ensure relaunch of Finder after hiding/showing desktop icons
- Modifier key mismatch in Select Editor tooltip
- 1.4.7 (139)
- Variable keys passed from URL handler were running into case sensitivity issues
- 1.4.7 (139)
- Variable keys passed from URL handler were running into case sensitivity issues
- 1.4.6
- (quit everything except …) command to quit all running Dock apps (with an optional exception list) (documentation)
- “file PATH contains” logic condition to check file contents for text string
- “file PATH exists” logic condition
- “title prefix” frontmatter applies a string before the Bunch, or all affected Bunches if used in @tag/folder.frontmatter
- “ignore if/unless” frontmatter can control whether a Bunch displays in the menu. Accepts UUID or any logic condition recognized by Bunch
-
“schedule if/unless” now accepts any logic condition. Instead of a trigger file like it had, use
file TRIGGER_FILE exists
. - Fix an error with opening files in apps called by bundle identifier
- Long directory names breaking preference window layout (#148)
- Calling “toggle” via URL handler not respecting single bunch mode (#149)
- Crash when completing script with error on Bunch close (#152)
- 1.4.5
-
Fancy new icon design by Felippe van Eekhout
- Add “Untagged” submenu to tags menu
- Refresh all browsers AppleScript command
- Add “Untagged” submenu to tags menu
- Heredoc support for shell commands
-
Snippet syntax support for script lines (
$ <file#fragment
) - Heredoc support for variable assignments
-
Snippet syntax support for variable assignment (
var = <file#fragment
) - Submenu with bunches listed by tag
- AppleScript “open/close/toggle/list bunches tagged”
- URL handler for open/close/toggle commands accepts “tag=X” as optional replacement for “bunch=X”
- Move tag menus into section of main menu instead of Tags submenu
- Allow (display) and ~delay syntax for heredoc scripts
- Move tag menus into section of main menu instead of Tags submenu
- Variable placeholders no longer require removing spaces from variable names
- Better truncation of long script paths/names in running scripts menu
-
Don’t register
var_name = ${old_var}
as a shell script assignment - Remove “tag:” key from folder frontmatter
- Action buttons on script error dialogs not opening Bunch Log
- Remove single and double quotes from ends of frontmatter values
- 1.4.4
- Create menus from YAML, JSON, text, or executable script files (Documentation)
- Better replacement of variable placeholders that are populated mid-stream
- Rewrite of Do Not Disturb handling on Big Sur and later
- Improved variable (re)assignment inside of conditional logic blocks
- Fix case sensitivity when replacing variable placeholders
- 1.4.3
- Reversible commands not reversing when closing a bunch
- Do Not Disturb not disabling
- If Bunches are open when changing the “Toggle Bunches” preference to OFF, register them as closed so they can be opened again
-
If a Bunch is open when it’s changed to
toggles: false
, reset its open state so it can be opened again - If a multiple choice dialog sets a variable in an opens-only Bunch, reset the variable after opening so the dialog appears again next time
- 1.4.1
- Allow variable placeholders in “run before/after” frontmatter scripts
- Allow Coherence X apps to function properly if referred to by bundle identifier (e.g. com.BZG.CoherenceMyApp)
- Remove superfluous log statements
- Empty comment lines stopping processing
- 1.4.0 (β110)
- Attempt to quit an app even if it’s not immediately located among running apps
- Don’t convert app name to value of localizedName property, fixes issues with iTerm. Trying too hard is detrimental, apparently.
- Don’t automatically quit Finder if included in a Bunch
- 1.4.0 (β109)
-
Allow
!!!Triple Negative
to quit an app when closing a Bunch without launching on open -
space:all
parameter for(display)
command to cause a display window to join all spaces - Special handling for “FileMaker Pro 18 Advanced”
- Switch to using mdfind as backup app locator
- Convert some Info-level log messages to Debug-level for cleaner log output
- 1.4.0 (β108)
-
Frontmatter keys for running scripts before/after opening a Bunch, and before/after closing
- Variables can hold values with newlines
- Perform pre-defined transformations on variable values (url encode, shell escape, raw newlines, newlines for typed strings)
- Percent encode newlines
- Do some translating on built-in frontmatter keys to allow for some variations in syntax
- URL encoding of variables now encodes question marks and other symbols not allowed in URL paths
- Limit length of info logging messages to 50 characters
- Process variable assignments in document order
- Process variable assignment dialogs inline with other variables, allowing dynamically-assigned variables to be used in dialogs
- Remove Bunch-specific frontmatter keys from variables passed to Waiting Snippets
- Prevent backslash escapes from disappearing from values during variable assignment
- Don’t change case when logging commands
- Make variables available prior to processing shell script variable assignments
- 1.4.0 (β107)
- Breaking change: fragment ID syntax no longer accepts a single dash before the square brackets, must have at least 2 or use a different symbol
- Everything after closing square bracket in fragment id lines is ignored
- Whitespace is allowed anywhere in a fragment id line, as long as the first character is one of the accepted divider symbols (#->=)
- Fragment id divider syntax now accepts
>
and=
as divider lines - Better searching for apps NSWorkspace doesn’t recognize as apps by name
- If Bunch Item type is Unknown, consider it an app name that wasn’t found and make an attempt to launch it anyway
-
if VarName
condition with no operator will return true ifVarName
is defined and contains ANY content other thanfalse
orno
. -
Make
if VarName
conditions case insensitive - Process snippets within conditions
- 1.4.0 (β105)
- Walk back change to force-hiding apps before @focus lines
- 1.4.0 (β104)
- Add AppName syntax to indicate an app should activate/foreground on launch. By default apps now won’t activate, unless they’re receiving keystrokes
- (hide/show menu bar) command
- Allow
#clear
as window background color - Use better async app launch method on 10.15+
- Slightly more reliable hiding and focusing of apps, including forcing any apps before an @focus line to launch hidden (previously just relied on activateHidingOthers)
- Better formatting of long scripts in Running Scripts menu
- Allow setting actual window background color for (display) windows
- A Bunch with no frontmatter or non-comment items in the Bunch folder was causing the entire menu to be empty
- Remove Bunch default keys from frontmatter when inherited by child Bunches (launched by another Bunch)
- (input source) command now performs all actions on main thread (crasher)
- 1.4.0 (β103)
- Allow
#clear
as a background color for Quick Look display windows - Allow migration of Bunch Beta prefs back to stable channel
- Add
(hide menu bar)
command
- 1.4.0 (β102)
- Variables set in parent Bunch are now available to Waiting Snippets
- Allow HTML display command to handle non-HTTP url schemes
- Fixes for Example Bunch
- 1.4.0 (β101)
- Special handling for Visual Studio Code when attempting to quit the app
-
(input source XXX)
command to switch keyboard input source - Change “Clear Checkmarks” shortcut to Control-Option-Command-R
-
Don’t trigger
screen
commands on wake from sleep if parent Bunch isn’t open - Create checkbox dialogs to handle optional launching of multiple apps/snippets in one dialog
- Present dialogs in the order they’re listed in the Bunch
- 1.4.0 (β99)
-
Running an AppleScript file with a
*
line wasn’t actually running anything
- 1.4.0 (β98)
- If/Else logic parsing
- Allow direct
key = value
variable assignment in snippets. - Direct variable assignments are parsed before snippets are loaded
- If/then blocks can set/change variables before next block is processed
- All Snippets (including Waiting Snippets) inherit their parent’s frontmatter so variables carry forward
- Allow global variable assignments that persist across launches and are available in all Bunches
- Don’t parse = in URLs as a variable assignment
- Notification issue when assigning a variable with an AppleScript and the script fails
-
from script
variable assignments becoming empty -
Allow spaces and underscores in
var = $ script
assignments - Variable placeholders don’t have to be lowercased to match
-
If processing a script as AppleScript fails, attempt to execute as shell script (JXA scripts executed with
* script
items return error) - Allow arguments to be passed when assigning variables with script results
-
Don’t strip underscores from variable keys in
key_name = $"Query"
assignments - Bug with running AppleScript commands in serial execution
- 1.4.0 (β93)
- Reduce error messages in log (move to debug level)
- Handle 2 and 3-character app names (sorry VLC)
- 1.4.0 (β92)
- Handle edge case where running applications includes an app that doesn’t return an app name
- Error checking for string manipulation functions
- 1.4.0 (β91)
- Url handler method for opening Preference pane in the GUI (
x-bunch://prefs
) - Add user agent setting to HTML display windows to allow forcing Desktop or Mobile views regardless of window size (
ua:desktop
) - Fully activate an app when @focusing it
- Update all internal links to point to bunchapp.co
- Replace deprecated preference storage methods
- Spelling error in preferences (Thanks Jay)
- Directly close preference view rather than relying on a notification
- 1.4.0 (β88)
- Only run interactive dialogs to assign a variable if the variable isn’t already defined (allow frontmatter to override dialogs)
- Remove “Working” highlight on menu item after 10 seconds as a fallback
- Crash caused by
(notify)
command
- 1.4.0 (β87)
- Double trimming brackets on on-quit commands
- Edge case where canceling a multiple choice dialog left Bunch with an empty string
- 1.4.0 (β86)
- Stop stripping underscores from variable names. Why did I think that was a good idea? I forget.
- Assigning variables from dialogs when no frontmatter has previously been defined
- Null logging when frontmatter wasn’t changed
- Don’t let a Bunch quit itself in Single Bunch Mode when forced open from the menu
- 1.4.0 (β85)
- Subfolder name appearing in menu item titles
- URL handler calling open or close wasn’t ignoring current state
- 1.4.0 (β84)
-
get preference [key]
AppleScript command for retrieving various preference settings -
list open bunches
AppleScript command to list only open Bunches -
list bunches
returns an AppleScript list instead of a string - Remove some frivolous debug logging statements. It’s the economy.
- 10 second timeout for actions in sequential execution mode. The economy again.
- When calling other Bunches via Bunches or handlers, allow matching subfolder and Bunch by display titles or any combination of title and display title
- Allow Bunches with the same name in different subfolders
- Include subfolder in log identifier
- All Bunch name matching is case insensitive
- Code refactoring to do a better job of catching bugs early
- 1.4.0 (β83)
- !X syntax for inserting pauses in key commands and typed strings
- (display) command accepts
chrome:none
for windows with no title bar or buttons - Force apps to foreground before sending key combos
- Pause Bunch item processing while sending key commands for better consistency
- Bring all windows to foreground when Unhiding All Windows
- Automatically resolve tildes (
~
) in shell command arguments to user’s home directory - Waiting Snippet waits for up to 10 seconds for presence of main window before considering an app launched.
- 1.4.0 (β82)
- Display and screen command, UUID matching for selective scheduling, various fixes
-
(display)
command parameters can now be in any order. This involved some changes to the syntax, please see the documentation. - New
(screen)
command for creating a full-screen, solid color window with optional transparency for hiding all windows below it. See docs for usage. - Support for
schedule if
andschedule unless
frontmatter for excluding Macs from scheduling based on trigger file or UUID -
startup
frontmatter can be one or more UUIDs to start only on matching Macs -
startup unless
frontmatter can be one or more UUIDs - Copy UUID button in preferences for use with
schedule if
,schedule unless
, andstartup
- Bunches can be organized in subfolders, which will create submenus in the main Bunch menu
- Allow
folder.frontmatter
to set properties of submenu - Allow
folder.frontmatter
to pass keys to all Bunches in a subfolder - Rename Save to Done in Preferences
- More complete emoji handling
- Add keyboard shortcut for Open Log (⇧⌘L)
- Wait for Bunch commands and script items when executing sequentially
- Regression in schedule handling
- Fixes for changing Bunch Folder preferences and storing recents
- 1.4.0 (β80)
- If a background color is set for a
display
text file but no foreground, pick a contrasting color - If a background color is specified for text or HTML display windows, change the window to dark mode appearance if the color is less than 50% brightness
- Enable edit menu commands (copy/paste/etc.) in display commands windows
- Don’t cut top off scrolling quick look previews
- Allow text preview/file watching of any file with a text mime-type, not just .txt and .log
- Ensure all window updates happen on the main thread
-
Quick Look windows via
display
command set to wallpaper level were empty
- 1.4.0 (β80)
- Set variables with script results
- Remove option to run in Dock
- 1.4.0 (β79)
- Extra .01s delay when sending key combos to improve app responsiveness in some cases
- Complete refactoring to make “Bunch Items” their own custom object
- Move what can be truly executed in the background from async on main thread to a background thread
- Give Quick Look previews in display command their own positionable window
- Window titles for text and html display windows
- Attempt to fix Preference layout on 10.13
- Open-only Bunches not launching
- 1.4.0 (β78)
- Quick fix to clean up some debug logging
- 1.4.0 (β77)
- Major overhaul of shell command runner
- Task monitors for shell scripts launched by a Bunch
- (display) command for positionable floating windows containing local HTML, web sites, text or log files, or other file types as Quick Look previews
- Specify multiple days/times in scheduling frontmatter, e.g.
open on: M W F 8am, T Th 10am
- Assign a global keyboard shortcut for opening Bunch menu in menu bar mode
- Assign keyboard shortcuts for each Bunch using
shortcut:
frontmatter - More keyboard shortcuts for internal commands
- Make default keyboard shortcuts for opening Bunches single numbers without modifiers (like ⌘)
- Use
${variables}
inside of Bunches (like you would in Snippets), populated by frontmatter keys or manually when calling a Bunch from a Bunch. Documentation -
ignores state:
frontmatter to allow open bunches to reopen, closed bunches to re-close - Command-Option click to force close (menu bar mode)
- Command-Shift click to force open (menu bar mode)
- Header on Bunch menu shows what action modifier key clicks will perform (menu bar mode)
- Remove “Close Items In” menu in menu bar mode in favor of Command-Option click
-
menu divider
frontmatter key that adds a menu separatorbefore
orafter
the Bunch in the menu` the Bunch in the menu - Allow sending global keyboard shortcuts (not tied to specific app)
- URL handler
reveal
method - URL handler
edit
method - URL handler can now match display titles as defined in frontmatter (case insensitive, emoji insensitive) when specifying Bunches
- Add Accessibility Permission screen to startup splash
- Add Accessibility Permission button to preferences with observer for current state
- Persist NSTask for caffeinate command (
awake
) so it can be terminated withoutkillall
- Default Bunch Editor preference to TextEdit so there’s something assigned during setup
- Add Hide/Unhide All Windows option in menu bar mode
- Set default notification style to Alerts automatically
- “Working” state for status bar item (yellow), toggled for long-running scripts, when waiting for input or counting down to scheduled open/close
- Rename “Set” to “Add” in Bunch Folder preferences
- Gentler watching of Bunch folder for changes, more thorough refresh
- Light up status item (green) to notify that changes have been detected in the Bunch folder
- Notifications Preferences shortcuts in preferences
- Default to menu bar application, show Dock if preferred
- Reduce transparency on preference window to improve legibility
- Better image/text contrast for Welcome splash and Preferences
- file watchers not deallocating
- Don’t make preference window float above all other windows if running in Dock mode
- allow Bunch main menu to appear when run in Dock Mode
- Remove notification and stop timer when countdown clicked
- F1-F12 not working as {keyboard combos}
-
Process variables before importing snippets so that placeholders can be used for snippet fragments (
<snippet#${fragmentvar}
) - Keyboard focus for popups buttons and text fields in interactive dialogs
- Scheduled open/close being invalidated after opening
- Allow keyboard focus for popup buttons and text fields in interactive dialogs
- Shell scripts in sequential mode fully wait for previous task to complete
- Close Items in wouldn’t close if the Bunch wasn’t open, now forces
- 1.4.0 (β75)
- Fix for preferences not being dismissed
- 1.4.0 (β74)
- Added welcome splash sequence
- Added a Preference pane
- Added new formats for comments,
//
and block comments/* ... */
- Allow comments on same line as Bunch items
- Fixed infinite loop if referenced snippet file is not found
- Accept more Unicode characters in key combo strings (
↩
,␣
,⎋
, etc.) - Slow down automated typing by a couple milliseconds/key stroke
- “Bunch Editor” preference
- Allow Command-Clicking an app in the menu to open it in an editor
- You can now assign variables on the fly using dialogs (text, popup button)
- Add
%
for Hyper key as a modifier key in key combo strings - Activate all windows of target app before sending keystrokes
- Bear with me… if a Bunch opens another Bunch when it closes, don’t quit apps that the other Bunch opens anyway
- Run all keystroke sequences on main thread, improved reliability and no crashes
- Multiple issues affecting marking Bunches open/closed in the controller
- Do a full close of open Bunches (including re-opening !closed Bunches) when switching in Single Bunch Mode
- Handling of !!Bunch.bunch launch-on-close
- Default url handler x-success delay to 1 instead of 5
- Allow multiple files (comma separated) when calling snippet url handler
- Allow fragments to be called per file in url snippet handler using hashes (encoded as
%23
) - Descriptive titles for URL Handler calls in log
- Watch
from file:
frontmatter files and automatically refresh the Bunch when changed - URL handler for open, close, and toggle allows multiple target Bunches separated by comma
- Allow url handler to set arbitrary frontmatter keys using query string
- Bunches with schedules now have tooltips on hover showing next open/close time
- Fixed Raw URL handler not processing raw text
- Ignore frontmatter lines with empty key or value
- Fixed scheduled dates in logs off by 15 seconds
- Various glitches with Bunch scheduling
- Close Items In… menu not working
- Fix for delayed launches in parallel Bunches (
~5
)
- 1.4.0 (β72)
- Complete rewrite of keystroke functionality for macOS 10.15+
- 1.4.0 (β71)
- Fixed @Focused apps failing to quit
- 1.4.0 (β70)
- You can now type strings within key combo syntax by surrounding with double quotes, e.g.
{@n (tab)3 "typing an email\\n\\n-Brett" @$d}
- More interactivity with multiple-choice dialogs and snippet branching
- Restored missing “Launch Items in Parallel” preference
- 1.4.0 (β69)
- Better handling of Accessibility permissions requests
- (stay awake) command to keep Mac awake while a Bunch is open (or for a set period of time , e.g.
(stay awake 60)
) [documentation] - Fixed menu ordering for real
-
toggles: false
frontmatter key to only allow a Bunch to open, never close, not affecting the state of apps it contains or the menu. [documentation] -
quits apps: always
frontmatter key to allow a Bunch to quit apps even if they’re open in other Bunches [documentation] - “Quit Apps Open in Other Bunches” preference, global version of
quits apps: always
frontmatter [documentation] - If app can’t be activated, send a launch signal
- Better “close all windows” handling for XX lines
- If natural language interval has no s, m, h, or d, assume seconds (e.g.
(sleep 120)
assumes(sleep 120s)
) - For real fixed menu ordering
- 1.4.0 (β68)
- Syntax for opening Finder windows in tabs
-
single bunch mode: ignore
frontmatter key to exclude a Bunch from be affected by Single Bunch Mode - Menu ordering fixed
- Force dialogs to remain above other app’s windows
- Fix hang when hiding all apps
- 1.4.0 (β67)
- “New Bunch With Open Apps” command
- Option to execute Bunch items in parallel (all at once)
- “Recent Bunch Folders” in Preferences submenu
- Better log messages for shell script errors
- Move initial Bunch Folder location to ~/Documents/Bunches
- Change wording of menu item from “Quit Apps In…” to “Close Items in…”
- Changed “No” button in Optional Snippets dialog to “Cancel” so Escape key works
- Offer relaunch dialog if log detail level is changed
- Sort preferences in Bunch menu in Dock mode
- %{} variable placeholder url encodes replacement
- $BUNCH_PHASE environment variable for shell scripts to determine whether the Bunch is opening or closing
- Improved: shell script parsing and execution
- Fixed: Users couldn’t set log level to Debug
- Offer “relaunch” dialog if log level is changed
-
?"Optional Snippet"
queries now work with on-close!<Snippets
too - Repeating syntax for key commands
{@n (right)10}
- Ask the user if they want to close open Bunches when switching to a new Bunch folder
- 1.4.0 (β66)
- Allow frontmatter
from script
to wait for input, allowing scripts with dialogs - Only run frontmatter
from script
when opening, not when pre-loading tasks - Allow
startup
frontmatter to accept value ofask
, offer yes/no dialog before loading - Better error handling for recursive nesting (Bunchception)
- 1.4.0 (β65)
- Sort menu by display title (ignoring emoji)
- “menu order” frontmatter to force menu display order
- 1.4.0 (β62)
- Don’t lowercase notify command text
- 1.4.0 (β61)
- Introduced frontmatter
- Change menu display title with frontmatter
- Set arbitrary snippet variables with frontmatter
- “from script” and “from file” allow dynamic frontmatter
- Mark a Bunch as a startup bunch with frontmatter
- Schedule bunches to open and close at specified days and times using frontmatter
- Tag search for files to open
- Full Spotlight search for files to open
- Launch files in their default app by using “Default” as app name
- (notify) command to trigger notification center
- (sleep) commands (sleep, sleep display, sleep screensaver)
- Indent snippets 4 spaces/1 tab to have them wait for all apps in the Bunch to launch or quit
- < snippets can have a delay ~5
- !< snippets will run on close
- !< snippets can have a delay ~5
- « Embedded snippets
- Bunch Log with customizable log levels
- Detect shebang and execute appropriate binary for non-executable shell scripts
- Attempt at smarter app hiding
- Update example Bunch
- New features for the Bunch CLI, including “load as snippet” and interactive Bunch URL
- Smarter shell script loading, better script shebang handling, binary detection
- Documentation updates
- 1.3.6
- Preference option to restore previously open Bunches when launching
- Close launched Bunches when closing Bunch
- Use !Name.bunch to close a bunch within a Bunch
- Avoid infinite loops when opening/closing Bunches within Bunches (a Bunch can’t call itself)
- 1.3.5
- New
snippet
url method (see docs) - New
x-success
andx-delay
parameters for all URL methods - New AppleScript method
run snippet
to mirror url handler - Allow default values for variables (
${var:default}
) - Don’t freak out if variable placeholders are included in snippets but values are not provided when importing
- 1.3.4
- Bugfix release
- 1.3.3
- Launch Bunches on startup with *.startup files
- On/Off images for Bunches in menu bar mode
- Allow Bunches to be launched like applications
- If a Bunch is launched by another Bunch, affect its check mark
- Keyboard shortcuts in menu bar menu
- Snippet files not found when they absolutely do exist
- Better handling if a fragment isn’t matched
- When a Bunch causes errors, gracefully ignore and continue processing other bunches
- 1.3.2
- Update help links to new mini-site
- 1.3.1
- Handle Do Not Disturb commands on Big Sur
- Add syntax for confirm dialog when loading snippets, e.g.
<test.snippet ?"Load this snippet?"
- Allow Option-click on checked Bunch to clear check mark
- AppleScript command “process text” to process raw Bunch commands
- 1.3.0
- Fix for delayed apps not quitting on close
- 1.2.9
- Better at maintaining “open” check marks
- Reduce delay when storing and changing wallpaper
- Add option to delay a launch or command with ~X at the end of line
- Big Sur Dock Icon
- 1.2.8
- add
(audio mute)
and(audio unmute)
commands - allow separate input/output muting and volume commands
- improved method for setting output volume
- 1.2.7
- Allow !! to launch apps when closing a Bunch
- Better error handling for unreadable Bunch files
- Allow sections in snippets that can be called individually
- 1.2.6
- New audio commands for switching inputs, outputs, and setting volume
- 1.2.5
- Fix for issues when changing Bunch Folder preference
- 1.2.4
- Add Microsoft Edge to browser-specific url options
- 1.2.3
- Allow URLs to be opened in a specific browser.
- 1.2.2
- Change escape codes for up and down from “\\p” and “\\n” to “\\u” and “\\d”
- Add \\h delete, \\a home, \\e end escape codes
- Allow leading and trailing space for
[ typed string ]
commands - Allow system key names in key commands, e.g. {@up}
- Allow Unicode characters for arrow keys, e.g. {@↑}
- Allow hyphenated long-form commands, e.g. {opt-left opt-left cmd-shift-up}
- Make about panel appear in foreground when running in menu bar mode
- 1.2.1
-
(wallpaper [path])
command to specify desktop images
- 1.2.0
- Ability to import “snippets” with variables for repeatable bunch actions
- 1.1.9
- $BUNCH_DND environment variable for shell scripts, shows current Do Not Disturb state
- $BUNCH_DOCK environment variable for shell scripts, shows current Dock visibility
- $BUNCH_DESKTOP_ICONS environment variable for shell scripts, shows whether Desktop icons are visible
- 1.1.8
- Send key commands using
{@~w}
in app file params - Type key sequences using
[type this out]
in app file params - Improve hiding all apps (
@@
)
- 1.1.7
- New commands
dark mode
anddark mode off
- Optimizations and fixes
- 1.1.6
- Run commands when closing a Bunch:
!(hide dock)
- Dock positioning commands:
!(dock [left|right|bottom])
- Launch At Login preference handling
- Fixes Dock show/hide commands being reversed
- 1.1.5
- Better reporting for Workflow errors
- More dependable implementation for “@@” (hide all apps)
- 1.1.4
- Fix for AppleScript “Corrupted Dictionary” errors
- 1.1.3
- AppleScript improvements that will be invisible to the naked eye. Or really any end user.
- Donate button twice in the menu bar version. Nobody needs that much prodding. I mean, you’re going to pitch in or you’re not, right?
- 1.1.2
- Bunch can be automated with AppleScript
- URL method setPrefs to change certain preferences from script
- Bind bunch menu item states to a property so they’re always up-to-date
- 1.1.1
- Additional environment variables for shell scripts
- Updated Example.bunch with all the latest goodness
- A script line (*&$) preceded by ! will only run that script when closing the Bunch
- Status item submenu with Check For Updates (and Donate)
- 1.1.0
- Preferences->”Run in Menu Bar” option
- Preferences->”Launch at Login” option
- 1.0.10
- Use
& workflowname
to run automator workflows - Use
$ shell command
to run shell scripts/commands - Menu command to clear check marks in toggle/single bunch mode (force launched Bunches to launch again)
- Url method
raw
for directly loading any Bunch-formatted file or directly passing bunch commands as a string - (dnd on) and (dnd off) commands for Do Not Disturb
- Watch bunch folder for changes and refresh automatically
- Opening or closing a Bunch via url command now toggles launched state in Dock menu when Toggle Bunches is active
- 1.0.9
- Add
close
method to url handler - Add
toggle
method to url handler - Allow url handler methods to toggle Bunch state in Dock Menu
- Show an alert when commands fail to make it easier to diagnose and fix Bunches
- Add LaunchBar, Alfred, and CLI scripts to documentation
- 1.0.8
- Add percent (
%
) before app name to ignore it when closing a Bunch - Add
XX
as a filename to close all windows for the app\ - Desktop icons commands:
(hide desktop)
and(show desktop)
- 1.0.7
- Toggle Bunches mode, check mark opened Bunches, click check marked Bunch to close
- Single Bunch Mode
- Quit Apps in Bunch… submenu
- Bunch commands
(hide dock)
(show dock)
- 1.0.6
-
@@
alone on a line will hide all apps
- 1.0.5
- New URL handler
x-bunch:
- Ability to change location of Bunches folder
- 1.0.4
- Allow URL schemes (in addition to HTTP)
- Test if app is running or hidden before launching, hiding, quitting
- Use NSWorkspace instead of AppleScript where possible
- Allow
_
suffix to hide app (experimental)
- 1.0.3
- Add @focus syntax
- Add *AppleScript syntax
- 1.0.2
- Improve launch speed
- Allow
![app name]
to quit an app - Build for older macOS versions
- Sort Bunches alphabetically in Dock menu
- 1.0.1
- Remove cruft from app menus
- Add “Show Bunches in Finder” to Dock and File menus