Cleanup previous PR

This commit is contained in:
Kovid Goyal 2022-02-06 20:49:40 +05:30
parent 89679d07ae
commit eedc849c45
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 15 additions and 12 deletions

View File

@ -120,15 +120,17 @@ These actions can also be executed from the command line by running::
or
kitty +open file_or_url ...
Since macOS lacks an official interface to set default URL scheme handler, you
can set it with the following command. The first argument for
``cocoa_set_url_handler`` is the URL scheme, and the second optional argument is
the bundle id of the app, which defaults to kitty's. (Restores when the second
argument is an empty string.)
Since macOS lacks an official interface to set default URL scheme handlers,
kitty has a command you can use for it. The first argument for is the URL
scheme, and the second optional argument is the bundle id of the app, which
defaults to kitty, if not specified. For example:
.. code-block:: sh
kitty +runpy 'from kitty.fast_data_types import cocoa_set_url_handler; print(cocoa_set_url_handler("ssh", "net.kovidgoyal.kitty"));'
# Set kitty as the handler for ssh:// URLs
kitty +runpy 'from kitty.fast_data_types import cocoa_set_url_handler; import sys; cocoa_set_url_handler(*sys.argv[1:]); print("OK")' ssh
# Set someapp as the handler for xyz:// URLs
kitty +runpy 'from kitty.fast_data_types import cocoa_set_url_handler; import sys; cocoa_set_url_handler(*sys.argv[1:]); print("OK")' xyz someapp.bundle.identifier
You can customize these actions by creating a :file:`launch-actions.conf` file
in the kitty config directory, just like

View File

@ -846,11 +846,10 @@ cocoa_set_url_handler(PyObject UNUSED *self, PyObject *args) {
identifier = [NSString stringWithUTF8String:bundle_id];
}
// This API has been marked as deprecated. It will need to be replaced when a new approach is available.
if (LSSetDefaultHandlerForURLScheme((CFStringRef)scheme, (CFStringRef)identifier) == noErr) {
Py_RETURN_TRUE;
}
Py_RETURN_FALSE;
OSStatus err = LSSetDefaultHandlerForURLScheme((CFStringRef)scheme, (CFStringRef)identifier);
if (err == noErr) Py_RETURN_NONE;
PyErr_Format(PyExc_OSError, "Failed to set default handler with error code: %d", err);
return NULL;
} // autoreleasepool
}

View File

@ -737,9 +737,11 @@ def cocoa_set_global_shortcut(name: str, mods: int, key: int) -> bool:
def cocoa_get_lang() -> Optional[str]:
pass
def cocoa_set_url_handler(url_scheme: str, bundle_id: Optional[str]) -> bool:
def cocoa_set_url_handler(url_scheme: str, bundle_id: Optional[str]) -> None:
pass
def locale_is_valid(name: str) -> bool:
pass