Skip to content

Instantly share code, notes, and snippets.

@applch
Created May 30, 2019 04:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save applch/e26ee129d02e8ca3231746c7b9f5caa1 to your computer and use it in GitHub Desktop.
Save applch/e26ee129d02e8ca3231746c7b9f5caa1 to your computer and use it in GitHub Desktop.
Alfred 4.0
Beta Change Log
Please note that this Change Log covers Alfred 4 features during the Beta, including Powerpack-only features. More documentation will become available closer to the Alfred 4 general release.
Alfred 4.0 b1076
Build 1076, Wednesday 29th May 2019
General changes
• Change bundle id to "com.runningwithcrayons.Alfred" for now and future
• Future proofs major versions which will now share macOS App Support, cache folders etc
• Removes name dependency when using AppleScript to call Alfred, now you can use tell application id "com.runningwithcrayons.Alfred" to search
• Note: Also added a "Show Alfred" workflow object which should be used where possible instead of AppleScript call backs
• Add "Welcome" window when first launching Alfred
• Pre-activation of Powerpack
• Settings backup and migration of older preferences
• Configure macOS permissions
• Hardened runtime support for macOS
• Improved, higher performance application caching for Alfred's file search
• Prevent multiple copies of Alfred from running if, for example, a workflow accidentally attempts to re-launch Alfred as a new process
• Hotkey display will now track the current keyboard layout (i.e. ⌘L in British layout will now correctly show ⌘N when switching the keyboard to Dvorak)
• Improve secondary-view input field / selection list text copy behaviour to match Alfred's main search field
• E.g. allows for copy partial selected search term, or partial selected summary text from clipboard history viewer without overriding with "copy entire item" action
• Show correct fallback text when query is dynamically updated, for example, pressing = after a calculation to equate the answer
• Make 'alfred preferences' correctly match result to show Alfred's preferences in Alfred's default results
• Standardise big hat drawing between Workflows and Remote preferences when no workflow or page is selected
• Make QuickLook previews change dynamically when changing result item in Alfred's Default Results and File System Navigation
• Migrate and modernise many icons into PaintCode
• Show "this does nothing" notification when double clicking an alfredpreferences file
• Fix locale and macOS language discovery to correctly format dates
• Fix applies to all places where dates can be used, e.g. Snippets, Workflow placeholders, Contacts
• Update mechanism for storing and reading preferences sync folder to prefs.json in Alfred's Application Support folder
• JSON contains 'current' value, written at startup to help external scripts find Alfred's preferences if synced
• Note, for the time being, the syncfolder is still written to the preferences plist for workflow libraries which may rely on this
• Migrate remaining http links to https (to force encryption where unspecified)
• e.g. Contact URLs, Workflow website, Remote page examples, 1Password, user proxy settings
• Also certain labels throughout the preferences now correctly show https
Preferences
• Overhaul to Alfred's Preferences
• Easier to find preferences, and discover new features
• New look with Dark Mode support
• Performance improvements throughout
• Consistency / layout refinements throughout
• Moved Application options from Advanced into Default Results feature
• Added option to ignore app keyword metadata, now disabled by default due to strange Spotlight "SEO" practices by 3rd party apps
• Updated Features list order for improved relevance
• Moved Clipboard and Snippets higher in feature list, renamed Clipboard feature to Clipboard History
• Moved File Preview options from File Search into a top level Feature for better relevance and discoverability
• Ask for confirmation when resetting the default search scope, and if reset, also default to including folders in home
• Improved error reporting when workflows, snippets and snippet collections can't be moved to trash (e.g. due to a permissions issue)
• The previously selected feature is remember and reselected if the preferences is re-opened within 12 hours
• Added easier access to macOS Permissions in Alfred's General preferences
• Add an example image of what to expect in the macOS Permissions preferences
• When adding fallback triggers, grey out triggers which have already been added so they can't be added twice
• Clean up General preferences tab, moving the Alfred Remote download link to the Remote tab
Preferences Search
• New search framework allowing for searching throughout Alfred's features
• Added search in Alfred's Preferences (accessible with ⌘F) to find and select preferences
• Searching for 'hotkeys' will show all configured hotkeys
• Searching for 'keywords' will show all configured keywords
• Add ⌘F to disallowed hotkeys for OS and Preferences consistency. This is now used throughout Alfred's Preferences for the "Find" function
• Added new '?' keyword to search and open Alfred's Preferences directly from Alfred's main search box
• When searching for a workflow object, the workflow selected object can now be opened in the canvas by pressing return
Snippets
• Rich text snippets
• Rich text snippets, editable within the snippets editor
• Automatic link detection in snippet editor, allowing for links in snippets
• Rich text enabled snippets are prefixed with a asterisk in the snippet list
• Snippets searchable from Alfred's preferences search for quick editing
• Snippet sound improvements
• Separated text expansion "play sound" option into individual options for Snippets and Workflow Snippet Triggers
• Option to select the sound you'd like to play when expansion happens, including dropping custom sounds in
• Sound now played after the expansion (instead of before) for improved latency
• Improve user experience when creating first snippet with no collections created
• A new "Default Collection" is automatically created
• Update table edit snippet buttons behaviour to always allow for adding snippets
Workflows
Improved Workflow debugger
• Concurrent debugging across all workflows with filtering down to individual workflows / selected objects
• Interactive navigation with clickable links in debugger taking you to relevant source objects in Workflow editor
• Uses alfredpreferences: URL scheme allowing for links to be copied and used externally
• Add ⌘D to toggle Debugger when in workflow editor
• Copy button now copies both plain and RTF versions of the debugger to the pasteboard
• Debugger remains enabled when switching between workflows, and switching away from Workflows tab
• Size and visibility of debugger is remembered per session when switching / closing / opening workflows
• Make stderr messages turquoise unless the script exited with non 0 code
• Fix error logging from Run Script to separate stderr and error
• Truncate log messages over 100k characters to prevent poor workflow debugger performance
• Make {allvars} in the debugger correctly show unicode values
• Change the debug distributed message type so Alfred 3 doesn't see Alfred 4 debug messages
New Workflow objects
• Conditional Utility
• If / else if / else conditional with single input and multiple outputs
• Simplifies workflow stream flow
• Adds greater than / less than comparison, where input and match strings are evaluated as integers
• Drag reorder of conditions
• Split Utility
• Split the single passed in query argument by a given delimiter, into multiple variables
• Random Utility
• Generate a random UUID
• Generate a random number with optional range
• Pick a random word in a given list
• Words are trimmed, and empty strings are removed
• Show Alfred
• A simple utility to show Alfred's window with some text
• Where possible, this should be used within a workflow instead of AppleScript to re-show Alfred as a "new window"
• Browse In Terminal
• Simple action to browse the specified or passed in path in Terminal.app (or custom Terminal specified in Features > Terminal)
• Will work with multiple passed in paths, for example, Hotkey file selection (multiple files selected) > Browse in Terminal
Improvements and new features for existing Workflow objects
• Hotkey Trigger
• Added the Find Pasteboard to the available Argument sources
• Allows for simple integration into the macOS Find Pasteboard (Note that you can use ⌘E in a Mac app to add the current selection to the Find Pasteboard)
• External Trigger
• Update generated example AppleScript to show new application bundle id
• Snippet Trigger
• Small tweak to Snippet Trigger object warning text (when Auto Expansion is disabled) to ensure it's not truncated
• Keyword Input
• Removed constraint on title needing to be filled to save object
• Change "required" in Keyword placeholder text to "Recommended"
• Updated fixed inputs (e.g. a hotkey wired into a keyword input) to show a simple Alfred input box with no results when the keyword Input has no title and subtitle
• Script Filter Input
• Added option to not set argv when query is empty (under "Run Behaviour" button)
• This will be the default behaviour for newly created Script Filter objects. Current objects will be set to pass an empty string to prevent regression issues.
• File Filter Input
• Added result sorting options: Alfred's Knowledge (default), Created Date, Last Modified Date
• Added option to set the result limit from between 10 and 200 (use larger values with care as this can cause file search performance issues)
• Variable placeholders can now be used in the Fields > Search Fields > Value column for easier dynamic creation of file filters (would previously necessitate a JSON Config utility)
• Filter Utility
• "Ignoring Case" option now also available to Regex matches
• Add {query} placeholder string on config input field to reinforce default value, set default value to empty
• Marked as "Legacy Object", recommending the use of the "Conditional Utility" instead
• Replace Utility
• Added additional options for Regex option
• Added option for Case Insensitive matching
• Added option for Multi-line which causes ^ and $ to match the beginning / end of each line instead of beginning / end of whole string
• Play Sound Utility
• Ability to drop a new audio file into the configuration sheet to configure with this sound. The sound is copied into the workflow folder on saving.
• No longer limited to m4a and aif files, will also accept others sound types as mp3
• Copy to Clipboard Output
• Added rich text support with RTF editing directly within the config
• Large Type Output
• Added styling options for font, colours and alignment
• Added background fill selection and fade in speed
• Reveal in Finder Action
• Added config UI allowing for configuration of passed in path, including static paths
• Transform Utility
• Rename Camel Case transform to Capital Case to better match operation and placeholders
Placeholder syntax enhancements
• Placeholders improved with standardised syntax {placeholder:variation.modifier}
• Added trim transform modifier to trim newlines and white space from the placeholder
• Added reverse transform modifier to reverse the placeholder
• Added stripdiacritics transform modifier to remove accented characters from the placeholder
• Added stripnonalphanumeric transform modifier to remove any non-alphanumeric characters such as punctuation or emoji from the placeholder
• Added capitalcase transform as alternative to capitals for consistency
• Transform modifiers are now also available to variables and clipboard history items e.g.
• For variable named result, transform to uppercase using {var:result.uppercase}
• For a historic clipboard item, trim using {clipboard:2.trim}
• Transforms can now be stacked, e.g. {var:result.trim.uppercase} or {clipboard:trim.stripdiacritics}
• As with Alfred 3, use {clipboard} for current clipboard contents, and {clipboard:0} for latest item from Clipboard History
• Variables names should take the format [A-Za-z0-9_]. This is now correctly warned against with orange highlight in the Arg/Var Utility and Workflow Environment Variables
• Updated in-app placeholder examples and help subtext to use updated syntax
General Workflow improvements
• Fix default workflow list configuration to show creator
• New 'random' dynamic placeholder, available in many areas of Alfred such as snippets and the arg/var utility
• {random:UUID} for a random uuid
• {random:1..5} for a random number between 1 and 5. These numbers can be omitted for min / max integer range
• {random:cheese,apple,biscuits} for a random word from the specified list of words
• Show an error sheet when the workflow being imported is invalid rather than failing silently
• Tweaks to workflow icons
• Added an option to "Export Metadata" for a workflow as a json file
• Fix issues which may occur when duplicating a workflow
• Clear bundle id for newly duplicated workflow to prevent two workflows with the same bundle id
• Fallback Triggers with matching underlying UIDs in different workflows no longer cause an issue
• Standardise default placeholder behaviour when {query} based input fields are empty
• e.g. OpenURL will now accept an empty URL field and assume {query}
• Improved descriptive placeholder text instead of just {query}
• Change order of workflow canvas top right buttons to Variables, Remote Pages, Export, Debug
• New Workflow Export sheet
• Important workflow fields can be verified and amended before exporting workflow
• Enable "Hide Extension" option in Workflow Export save dialog (the selected preference is persisted)
• New Workflow Import sheet
• Workflow environment variables are now presented and editable on import
• Framework tweak to facilitate more robust retain / release cycle for injected workflow into workflow objects
• More reliable snippet trigger decommissioning and dealloc when deleting a workflow
• Fix Remote Page config layout in features and workflow sheet to be consistent (and not have white line to left in workflow sheet)
• If no scheme is defined for workflow website, default to https when opening site from arrow
• Show variables in orange as warning in workflow object configuration (e.g. Snippet Trigger, Hotkey Trigger, Split Utility) when variable format isn't correct
• Add AppleScript for force reloading of a workflow by the given UID (folder name), or Workflow Bundle ID
• e.g. tell application id "com.runningwithcrayons.Alfred" to reload workflow "workflow-folder-name"
• Reports error when workflow isn't found by UID or Bundle ID
• Workflow mod connection improvements
• Workflow Connections
• Modifier combinations can now be selected in the connection configuration sheet
• Canvas now shows modifier characters on connections to better accommodate compound mods
• Modded characters are rendered slightly larger, and background box is more rounded for non-vetoed connections
• Script Filter
• Add compound mod overrides for script filters. Use a + in the JSON for mode than one mod, e.g. cmd+shift
• Recognise old and updated Apple terminology for mod key definitions in returned JSON e.g. option or alt, ctrl or control, cmd or command
Actions
• Actions moved out from File Search feature into own feature
• Fixed result limit when searching in Open With, Copy/Move actions to match the shared result limit in Features > File Search
• Updated underlying "Open Terminal Here" action to open the passed folder/item in Terminal app directly rather than using AppleScript
• Make "Open Terminal Here" file action work with multiple files (e.g. from the Buffer)
Theming
• Automatic macOS Mojave Dark Mode support
• Alfred will now remember the themes you have set in dark and light mode for automatic theme switching
• New theme editor
• Editing guides while moving the mouse around to see what is being edited and sized
• Clarified dynamic help text while editing a theme
• Added ability to select font variations based off of the currently selected font (e.g. bold, italic)
• Added macOS Font Collections to the font popup menu, allowing access to both system and user created font collections
• Re-written Alfred's font rendering engine, allowing for more predictable font vertical alignment with obscure fonts
• Fix theme editor theme list to be case insensitive sorted
• Fix search box height sizing calculation (with certain fonts e.g. Avenir)
• Note that imported v3 themes may have decreased vertical padding around the search field depending on font (this padding can be added readjusted in the theme editor)
• Added new default themes, tweaked current themes for consistency
Contacts
• You can now cmd+return on a contact in Alfred's default results to perform the alternate opening action
• If you have contacts configured to open in Alfred, cmd+return will open them in Contacts.app
• If you have contacts configured to open in Contacts.app, cmd+return will open them in Alfred
• Ensure Alfred correctly hides after opening a contact in macOS Contacts app using ⌘O
Remote
• Updated the Clipboard Snippets object to work with Rich Text, including inserting RTF snippets
• Tweak the remote prefs no-page selected background colour (Note that further changes are due on this)
System Commands
• Improvements to Eject and Eject All
• Updated method of unmounting 10.11+
• Predictably unmounts individual mounts on a single device
• If the volume is encrypted, it is relocked after being unmounted
• Error reporting now shows more details, such as which app is currently preventing a volume from being ejected
• Blacklisting
• Volumes in the eject blacklist can now be edited by double clicking on them
• The volume blacklist can now contain wildcards (and simple character classes) e.g. [Bb]ackup*
• Added com.apple.TimeMachine* to default volume blacklist
• Add "Reset" button for eject blacklist in Features > System preferences
File System
• Added dynamic sorting of files to file system navigation
• Sort by name, creation date and last modified date
• Option to always sort Folders to the top
• Sort ascending and descending (click arrow button, or use ⇧⌘S shortcut)
• ⇧⌘, shows the popup menu for sort options to allow for sort configuration directly from the keyboard
• Showing and hiding the navigation preview panel shortcut is performed with ⇧⌘I
• Update to File Search workflow object for significantly more flexibility, see workflow changes
• When searching for a "documents" folder, append the iCloud container name for Document folders within iCloud
• Update Alfred's File Metadata Querier framework to work more consistently with the new {var:...} placeholder ability
• Now treating variables in the same way {query} is treated
• Remove default query fallback, as it's no longer relevant
• User defined scope folders are now not manually parsed / included into results under certain scenarios:
• A filter where a constant string value defined for a field which isn't "display name" or "alternative name" won't include scope folders in the filter's results
• Any filter fields which are marked as "not" won't be included in the scope folder search
• Improvements to File Buffer
• Show symbol against a result in Alfred's default results and file system navigation when it is added to the buffer
• Update ⌥↑ shortcut key to toggle item in the buffer, instead of just add
• Add shortcut help text to tooltip when hovering over buffer item
• Make Alfred File Buffer aware of drop "move" operations, and remove files out of the Buffer on drop when the path is no longer valid
• Fix File Buffer to predictably show hover-over information on initial mouse over
• Overhaul drag and drop of files out of Alfred to now better conform to modern macOS behaviour
Web Searches
• Default to https prefix for non-prefixed URLs typed into Alfred's main window
• Removed optional HTTPS on system web searches, always forced to HTTPS now.
• Custom search improvements
• Added "Lookup..." button to attempt to automatically look up the specified website hosts using OpenSearch or SearchAction
• Lookups can only occur for https domains. if no scheme is typed, Alfred will assume https
• Useful keyboard shortcuts in the Custom Search panel for fast adding of custom searches without the mouse
• Web searches searchable in Alfred's preferences search
• Updated system web search icons to more modern equivalents
Large Type
• Fix font vertical alignment issues with certain fonts
• Make large tight text slightly less tight to the edge of the screen
• Configurable Large Type workflow output object
Calculator
• Update calculator to recognise ÷ as divide symbol
Powerpack
• When activating the Powerpack, if unnecessary additional text is pasted into the fields, try to discover and extract the email address and Powerpack code
• Warn user on certain "known" mistypings in email address by highlighing in orange, for example: @gamil.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment