macOS: Add Open with kitty Service

There are still some file types that cannot be matched.
Add a standalone Open With service.
Users can configure shortcut for this service in System Preferences.
This commit is contained in:
pagedown 2022-02-05 23:20:19 +08:00
parent 9989edbe42
commit 007e9697c4
No known key found for this signature in database
GPG Key ID: E921CF18AC8FF6EB
2 changed files with 19 additions and 0 deletions

View File

@ -520,6 +520,19 @@ cocoa_send_notification(PyObject *self UNUSED, PyObject *args) {
return YES;
}
- (BOOL)openFileURLs:(NSPasteboard*)pasteboard
userData:(NSString *) UNUSED userData error:(NSError **) UNUSED error {
NSDictionary *options = @{ NSPasteboardURLReadingFileURLsOnlyKey: @YES };
NSArray *urlArray = [pasteboard readObjectsForClasses:[NSArray arrayWithObject:[NSURL class]] options:options];
for (NSURL *url in urlArray) {
NSString *path = [url path];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
set_cocoa_pending_action(LAUNCH_URL, [[[NSURL fileURLWithPath:path] absoluteString] UTF8String]);
}
}
return YES;
}
@end
// global menu {{{

View File

@ -1090,6 +1090,12 @@ def macos_info_plist() -> bytes:
'NSRequiredContext': {'NSTextContent': 'FilePath'},
'NSSendTypes': ['NSFilenamesPboardType', 'public.plain-text'],
},
{
'NSMenuItem': {'default': f'Open with {appname}'},
'NSMessage': 'openFileURLs',
'NSRequiredContext': {'NSTextContent': 'FilePath'},
'NSSendTypes': ['NSFilenamesPboardType', 'public.plain-text'],
},
]
pl = dict(