Created
May 30, 2019 04:49
-
-
Save applch/e26ee129d02e8ca3231746c7b9f5caa1 to your computer and use it in GitHub Desktop.
Alfred 4.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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