A macOS app for customizing which browser to start
This latest release contains new abilities to manage the configuration file. Big thanks to @leonspok for helping out (pull request https://github.com/johnste/finicky/pull/142)
Some new APIs!
finicky.getSystemInfo
now available in config. This returns a map of information about the current system. See getSystemInfo documentation
Example:
finicky.getSystemInfo() // returns {"localizedName":"John’s Mac mini","name":"Johns-Mac-mini.local"} for me
opener
option to all config callback functions, replacing sourceProcessPath and sourceBundleIdentifier, see Parameter documentation for more info.Example:
"opener": {
"pid": 1337,
"path": "/Users/user/Applications/Example.app",
"bundleId": "com.example.app",
"name": "Example app"
}
Added a new option logRequests
that will log all incoming urls to the console to simplify debugging. Docs
Finicky.log now accepts multiple arguments
This update contains some cool new things. Big thanks to @skoshy for helping out a lot!
Profile support added for Brave Beta, Edge, Edge Beta and Vivaldi Browsers
#160 Ability to send custom arguments to browsers/apps (Docs TBD).
finicky.getKeys
now available in config. This will eventually replace the keys
key (https://github.com/johnste/finicky/wiki/Function-parameters) to make the parameters slightly less crowded.
#129 Url shorteners urlShorteners
can now be a function so you can append/remove from the list as you please. Example:
module.exports = {
defaultBrowser: "Safari",
options: {
urlShorteners: (list) => [...list, "zombo.com"]
}
};
This is a another small release to fix some compatibility issues with macOS Big Sur. It is also built for Apple Silicon though no attempts at testing it on that platform are available to me.
Features:
Bug fixes:
Thank you to @MartinWe13, @alejandroivan, @xiaobq, @jeff-dagenais and @dndrsn for submitting issues and helping with troubleshooting!
This is a small release which is intended to fix an annoying bug where Finicky shows up in the dock and "recent applications". Published as a pre-release until I get confirmation it fixes the issue.
No new features. Contains some refactoring.
Bug fixes:
Finicky now has support for launching specific Chrome and Brave profiles. Huge thanks to @bhedavivek for working on this!
You can now optionally specify a profile to activate when using Chrome or Brave browsers.
{
match: "example.com/*",
browser: {
name: "Google Chrome",
profile: "Default",
},
},
{
match: "example.org/*",
browser: {
name: "Google Chrome",
profile: "Profile 1",
},
},
A note on profile names
The profile name you supply to Finicky must match the folder name of the profile. For Chrome, the folders are located at ~/Library/Application Support/Google/Chrome
. Folder names are called "Profile 1", "Profile 2", etc.
⚠️ Please note ⚠️ If you supply a folder name of a profile that does not exist, e.g. "Avocado", Chrome and Brave will create a new profile using that folder name. This appears to work pretty well, but I would advise against this since there is a risk corrupt your Chrome configuration. In the future, I want to add some verification to avoid this possibility, so it might stop working.
Bug fixes:
Finicky v3.0.0 is here, and it's easier to use than ever. ⚡
This release tries to make a lot of common use cases simpler in Finicky, by adding useful shortcut features like wildcards, partial url objects and direct url rewriting in handlers.
Wildcard matching
Instead of using a regular expression to match incoming urls you can now use wildcards which match zero or more characters:
// Before (this still works!)
match: /https?:\/\/example\.com.*/,
// After (this matches both http and https urls, no need to specify procotol)
match: "example.com*",
Simpler url rewrites
Before you had to return the full url object (usually by using object spread) when you wanted to change a url. Now, you can just return the properties you want to change:
// Before (this still works!)
url: ({url}) => ({ ...url, protocol: "https" })
// After
url: { protocol: "https" }
Support for url rewriting directly in handlers You can now add a url rewrite to your handlers directly instead of having a rewrite and a browser handler.
// Before (this still works!)
rewrite: [{
match: "http://google.com*",
url: "http://ecosia.com"
}],
handler: [{
match: "http://ecosia.com",
browser: "Safari"
}]
// After
handler: [{
match: "http://google.com*",
url: "http://ecosia.com",
browser: "Safari"
}]
This release contains a few updates that might break your setup! With the addition of wildcard matching for strings if you are using direct string matching on urls containing asterisks *
Finicky will now match more strings since it now treats the asterisk as a wildcard.
New features:
/Applications/Slack.app
. Useful when you have multiple apps share the same name or bundle id. Big thanks to @ldub for adding this feature!options.checkForUpdate: false
in your config.Note:
finicky://
and finickys://
urls, which enables using finicky directly from other apps. This could enable browser extensions to use finicky directly.Small update
http
, https
and file
#86