Manages default file and URL scheme handlers on macOS 12.0+
Project description
Set default handlers for files and URL schemes on MacOS 12.0+.
Why?
Most existing tools use LSSetDefaultRoleHandlerForContentType and LSSetDefaultHandlerForURLScheme, which are deprecated and apparently only available up to macOS 12.0. dooti uses a different API and should work on Monterey (12.0) and above.
Limitations
This tool was built out of necessity for myself and is not battle-tested.
The designated handler has to be installed before running the command for this to work at all.
Setting some URL scheme handlers (especially for http) might cause a prompt.
Setting some file extension handlers might be restricted (especially html seems to fail silently).
Installation
I recommend installing with pipx, although pip will work fine as well:
pipx install dooti
Quickstart
dooti currently supports three commands:
- ext
specify handlers for file extensions (will be automapped to associated UTI)
- scheme
specify handlers for URL schemes
- uti
specify handlers for specific UTI
Positional arguments are always the target file extension(s) / URL scheme(s) / UTI(s). This allows you to inspect the current handlers for the specific target(s):
$ dooti ext html xml
html: /Applications/Firefox.app
xml: /Applications/Sublime Text.app
$ dooti scheme http https ftp
ftp: /System/Library/CoreServices/Finder.app
http: /Applications/Firefox.app
https: /Applications/Firefox.app
$ dooti uti public.html
public.html: /Applications/Firefox.app
Changing the default handler can be requested by specifying -x <handler ref>/--handler <handler_ref>. The following formats for <handler_ref> are supported:
name of application:
dooti ext csv py -x "Sublime Text"
absolute filesystem path:
dooti scheme http -x "/Applications/Firefox.app"
bundle ID
dooti uti public.python-script -x com.sublimetext.4
Similar tools
Todo
support dotfiles
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.