Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ca922331a | ||
|
|
ab68c8684f | ||
|
|
f3e37e2a84 | ||
|
|
f8250ca008 |
25
CHANGELOG.md
Normal file
25
CHANGELOG.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project does adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.1.0] – 2023-08-12
|
||||
### Added
|
||||
- Universal binary (Intel+AppleSilicon)
|
||||
- Manully change bundle id
|
||||
|
||||
### Changed
|
||||
- New app icon
|
||||
|
||||
|
||||
## [1.0.0] – 2019-08-18
|
||||
Initial release
|
||||
|
||||
|
||||
[Unreleased]: https://github.com/relikd/URL-Scheme-Defaults/compare/v1.1.0...HEAD
|
||||
[1.1.0]: https://github.com/relikd/URL-Scheme-Defaults/compare/v1.0.0...v1.1.0
|
||||
[1.0.0]: https://github.com/relikd/URL-Scheme-Defaults/commit/c9811dd3fb058aa66cabd365256af8b2b018881e
|
||||
2
LICENSE
2
LICENSE
@@ -1,4 +1,4 @@
|
||||
Copyright 2019 Oleg Geier
|
||||
Copyright 2019 relikd
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
URL Scheme Defaults
|
||||
===================
|
||||
|
||||

|
||||

|
||||
|
||||
Simple tool to change the default macOS application for a given URL scheme (`http:`, `feed:`, etc.). The latter scheme is used for feed reader like [baRSS][1].
|
||||
|
||||
@@ -11,8 +11,9 @@ Usage
|
||||
|
||||
1. Go to [releases][2] and download the tool
|
||||
2. Run `URL Scheme Defaults`
|
||||
3. It will list all schemes, for which **more than one** suitable application exists
|
||||
4. Click on the drop-down icon and select a new application
|
||||
3. Click on the drop-down icon and select a new application
|
||||
|
||||
Alternatively, you can set the bundle id of an app manually. ... or **disable** a URL scheme.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
5400423B23072DD700958812 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1010;
|
||||
LastUpgradeCheck = 1240;
|
||||
ORGANIZATIONNAME = relikd;
|
||||
TargetAttributes = {
|
||||
5400424223072DD700958812 = {
|
||||
@@ -193,6 +193,7 @@
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
@@ -252,6 +253,7 @@
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1010"
|
||||
LastUpgradeVersion = "1240"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -27,8 +27,6 @@
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
@@ -38,8 +36,8 @@
|
||||
ReferencedContainer = "container:URL Scheme Defaults.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
@@ -61,8 +59,6 @@
|
||||
ReferencedContainer = "container:URL Scheme Defaults.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
|
||||
10
media/icon.svg
Normal file
10
media/icon.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
|
||||
<rect x="3" y="3" width="94" height="94" rx="20" fill="#5A3300" stroke="#FB8D00" stroke-width="6" />
|
||||
<g fill="#FB8D00">
|
||||
<circle cx="27" cy="45" r="5"/>
|
||||
<circle cx="27" cy="65" r="5"/>
|
||||
<rect x="53" y="22" width="8" height="60" rx="4" transform="rotate(15 53 22)" />
|
||||
<rect x="73" y="22" width="8" height="60" rx="4" transform="rotate(15 73 22)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 517 B |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@@ -62,12 +62,30 @@ static NSMutableDictionary<NSString*, NSString*> *nameCache;
|
||||
[s prepareAvailable];
|
||||
return s;
|
||||
}
|
||||
- (BOOL)setBundleId:(NSString*)bundleId {
|
||||
OSStatus s = LSSetDefaultHandlerForURLScheme((__bridge CFStringRef)self.name, (__bridge CFStringRef)bundleId);
|
||||
return s == 0;
|
||||
}
|
||||
/// Select app at index and set it default. Checks whether set successful. Ignores setting same id.
|
||||
- (void)setDefault:(NSUInteger)index {
|
||||
AppId *app = self.available[index];
|
||||
if (app == self.registered) return;
|
||||
OSStatus s = LSSetDefaultHandlerForURLScheme((__bridge CFStringRef)self.name, (__bridge CFStringRef)app.bundleId);
|
||||
if (s == 0) self.registered = app;
|
||||
if (app != self.registered && [self setBundleId:app.bundleId])
|
||||
self.registered = app;
|
||||
}
|
||||
/// Add bundle id to available if not already. Then set the default.
|
||||
- (void)setNewDefault:(NSString*)bundleId {
|
||||
NSUInteger idx = [self.available indexOfObjectPassingTest:^BOOL(AppId * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||
return [obj.bundleId isEqualToString:bundleId];
|
||||
}];
|
||||
if (idx != NSNotFound) {
|
||||
[self setDefault:idx];
|
||||
} else {
|
||||
if ([self setBundleId:bundleId]) {
|
||||
AppId *newApp = [AppId bundleId:bundleId];
|
||||
self.available = [self.available arrayByAddingObject:newApp];
|
||||
self.registered = newApp;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// Gathers all registered application for scheme and inserts to available
|
||||
- (void)prepareAvailable {
|
||||
@@ -87,6 +105,33 @@ static NSMutableDictionary<NSString*, NSString*> *nameCache;
|
||||
@end
|
||||
|
||||
|
||||
// ################################################################
|
||||
// #
|
||||
// # MARK: - Modal -
|
||||
// #
|
||||
// ################################################################
|
||||
|
||||
@interface ChangeSchemeModal : NSPanel
|
||||
@property (weak) IBOutlet NSTextField *schemeLabel;
|
||||
@property (weak) IBOutlet NSTextField *bundleIdField;
|
||||
@property (weak) Scheme* selectedScheme;
|
||||
@end
|
||||
|
||||
@implementation ChangeSchemeModal
|
||||
- (void)setScheme:(Scheme*)scheme {
|
||||
self.selectedScheme = scheme;
|
||||
[self.schemeLabel setStringValue:[@"URL scheme: " stringByAppendingString:scheme.name]];
|
||||
[self.bundleIdField setStringValue:scheme.registered.bundleId];
|
||||
}
|
||||
- (IBAction)close:(NSButton*)sender {
|
||||
[self close];
|
||||
}
|
||||
- (IBAction)save:(NSButton*)sender {
|
||||
[self.selectedScheme setNewDefault: self.bundleIdField.stringValue];
|
||||
[self close];
|
||||
}
|
||||
@end
|
||||
|
||||
// ################################################################
|
||||
// #
|
||||
// # MARK: - Main -
|
||||
@@ -96,6 +141,7 @@ static NSMutableDictionary<NSString*, NSString*> *nameCache;
|
||||
@interface AppDelegate ()
|
||||
@property (weak) IBOutlet NSWindow *window;
|
||||
@property (weak) IBOutlet NSTableView *table;
|
||||
@property (weak) IBOutlet ChangeSchemeModal *modal;
|
||||
@property (strong) NSMutableArray<Scheme*> *data;
|
||||
@end
|
||||
|
||||
@@ -114,8 +160,8 @@ static NSMutableDictionary<NSString*, NSString*> *nameCache;
|
||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
|
||||
for (NSString *urlScheme in [self readLaunchServicesSchemes]) {
|
||||
Scheme *s = [Scheme name:urlScheme];
|
||||
if (s.available.count > 1)
|
||||
[self.data addObject:s];
|
||||
// if (s.available.count > 1)
|
||||
[self.data addObject:s];
|
||||
}
|
||||
[self.data sortUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]];
|
||||
[self.table reloadData];
|
||||
@@ -151,8 +197,13 @@ static NSMutableDictionary<NSString*, NSString*> *nameCache;
|
||||
}
|
||||
// table view data source
|
||||
- (void)tableView:(NSTableView *)tableView setObjectValue:(nullable id)object forTableColumn:(nullable NSTableColumn *)tableColumn row:(NSInteger)row {
|
||||
NSInteger idx = [[tableView selectedCell] indexOfSelectedItem];
|
||||
[self.data[row] setDefault:idx];
|
||||
if ([tableColumn.identifier isEqualToString:@"colEdit"]) {
|
||||
[self.modal setScheme:self.data[row]];
|
||||
[tableView.window beginSheet:self.modal completionHandler:nil];
|
||||
} else if ([tableColumn.identifier isEqualToString:@"colApp"]) {
|
||||
NSInteger idx = [[tableView selectedCell] indexOfSelectedItem];
|
||||
[self.data[row] setDefault:idx];
|
||||
}
|
||||
}
|
||||
// combo box data source
|
||||
- (NSInteger)numberOfItemsInComboBoxCell:(NSComboBoxCell *)comboBoxCell {
|
||||
|
||||
Binary file not shown.
@@ -17,9 +17,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.0</string>
|
||||
<string>1.1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>189</string>
|
||||
<string>274</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17701"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@@ -15,6 +15,7 @@
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate">
|
||||
<connections>
|
||||
<outlet property="modal" destination="Lk3-yC-j4x" id="sy1-LX-Yrf"/>
|
||||
<outlet property="table" destination="VIj-4u-Ayb" id="zxl-IS-Ykc"/>
|
||||
<outlet property="window" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
|
||||
</connections>
|
||||
@@ -65,6 +66,225 @@
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Edit" id="Uyl-IQ-h7E">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Edit" id="5dk-2L-nKo">
|
||||
<items>
|
||||
<menuItem title="Undo" keyEquivalent="z" id="0Ll-jP-cYK">
|
||||
<connections>
|
||||
<action selector="undo:" target="-1" id="rdp-ub-Nyx"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Redo" keyEquivalent="Z" id="Ejh-Eg-uve">
|
||||
<connections>
|
||||
<action selector="redo:" target="-1" id="GQB-PO-WTB"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="xhO-zK-Zq5"/>
|
||||
<menuItem title="Cut" keyEquivalent="x" id="Qrq-bv-J88">
|
||||
<connections>
|
||||
<action selector="cut:" target="-1" id="kRY-Ig-vcs"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Copy" keyEquivalent="c" id="ndJ-Ib-6CZ">
|
||||
<connections>
|
||||
<action selector="copy:" target="-1" id="NzZ-fS-7VQ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Paste" keyEquivalent="v" id="HHF-v7-ZZd">
|
||||
<connections>
|
||||
<action selector="paste:" target="-1" id="7UJ-3C-6pg"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Paste and Match Style" keyEquivalent="V" id="Ug2-Ow-SrI">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="pasteAsPlainText:" target="-1" id="4Fx-fg-8A4"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Delete" id="0ir-Ey-ko1">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="delete:" target="-1" id="MCM-rN-7fc"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Select All" keyEquivalent="a" id="Kvp-rT-CuV">
|
||||
<connections>
|
||||
<action selector="selectAll:" target="-1" id="zyt-OP-pKN"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="hZs-l2-3w3"/>
|
||||
<menuItem title="Find" id="Ogd-E2-sV1">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Find" id="tRn-Kb-Zgy">
|
||||
<items>
|
||||
<menuItem title="Find…" tag="1" keyEquivalent="f" id="X1G-Zd-IgK">
|
||||
<connections>
|
||||
<action selector="performFindPanelAction:" target="-1" id="k9K-c4-qrz"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="Fnh-K0-whe">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="performTextFinderAction:" target="-1" id="I01-5S-WpJ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Find Next" tag="2" keyEquivalent="g" id="76v-bE-phb">
|
||||
<connections>
|
||||
<action selector="performFindPanelAction:" target="-1" id="PPP-Sk-Ddx"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Find Previous" tag="3" keyEquivalent="G" id="F9I-8w-Sei">
|
||||
<connections>
|
||||
<action selector="performFindPanelAction:" target="-1" id="b9i-3z-jwq"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="h2m-cI-Tqp">
|
||||
<connections>
|
||||
<action selector="performFindPanelAction:" target="-1" id="QvJ-XY-CQl"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Jump to Selection" keyEquivalent="j" id="RHH-aa-obQ">
|
||||
<connections>
|
||||
<action selector="centerSelectionInVisibleArea:" target="-1" id="wNb-MN-FxP"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Spelling and Grammar" id="5uF-Re-39l">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Spelling" id="UBN-QI-9Ob">
|
||||
<items>
|
||||
<menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="Ia7-Xn-leC">
|
||||
<connections>
|
||||
<action selector="showGuessPanel:" target="-1" id="WZ5-G2-2tN"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Check Document Now" keyEquivalent=";" id="FiL-Sy-znG">
|
||||
<connections>
|
||||
<action selector="checkSpelling:" target="-1" id="owg-bX-Wpj"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="hnb-Cz-dsF"/>
|
||||
<menuItem title="Check Spelling While Typing" id="42V-QN-l0d">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleContinuousSpellChecking:" target="-1" id="lGL-eM-zlg"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Check Grammar With Spelling" id="O7T-wR-aBY">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleGrammarChecking:" target="-1" id="YCY-7P-bbL"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Correct Spelling Automatically" id="Rtl-Lm-cpH">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleAutomaticSpellingCorrection:" target="-1" id="QeG-si-h1f"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Substitutions" id="D0v-d0-bFu">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Substitutions" id="kE1-qc-pGK">
|
||||
<items>
|
||||
<menuItem title="Show Substitutions" id="boj-Jt-djW">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="orderFrontSubstitutionsPanel:" target="-1" id="WhG-yl-sDO"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="YeS-ZQ-4Ra"/>
|
||||
<menuItem title="Smart Copy/Paste" id="2CL-Us-KuU">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleSmartInsertDelete:" target="-1" id="oBK-Xu-Wq9"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Smart Quotes" id="SNH-pp-aWW">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="PxI-96-cMz"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Smart Dashes" id="ehY-LW-FJP">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleAutomaticDashSubstitution:" target="-1" id="CLZ-pS-13R"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Smart Links" id="jNt-8b-USU">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleAutomaticLinkDetection:" target="-1" id="n6r-MY-bgE"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Data Detectors" id="3DH-ti-0o8">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleAutomaticDataDetection:" target="-1" id="mqn-WC-3qx"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Text Replacement" id="uBE-oe-Q2p">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleAutomaticTextReplacement:" target="-1" id="Nkw-uR-UzD"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Transformations" id="e3D-dw-AVQ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Transformations" id="d56-oZ-gs7">
|
||||
<items>
|
||||
<menuItem title="Make Upper Case" id="meT-4v-Y5b">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="uppercaseWord:" target="-1" id="JSB-hO-SfQ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Make Lower Case" id="2FC-IZ-Q7V">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="lowercaseWord:" target="-1" id="1cX-LT-2eM"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Capitalize" id="ciE-nL-h6t">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="capitalizeWord:" target="-1" id="3YP-aP-di3"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Speech" id="AyA-LS-Gkh">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Speech" id="E5i-Be-nfo">
|
||||
<items>
|
||||
<menuItem title="Start Speaking" id="L6A-6y-C6X">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="startSpeaking:" target="-1" id="pHT-Uq-cOd"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Stop Speaking" id="lo4-ey-aYW">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="stopSpeaking:" target="-1" id="kfJ-lC-1sG"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Window" id="aUF-d1-5bR">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
|
||||
@@ -96,13 +316,13 @@
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
<point key="canvasLocation" x="-67" y="-341"/>
|
||||
<point key="canvasLocation" x="-22" y="-362"/>
|
||||
</menu>
|
||||
<window title="URL Scheme Defaults" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" animationBehavior="default" tabbingMode="disallowed" id="QvC-M9-y7g">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||
<windowCollectionBehavior key="collectionBehavior" fullScreenNone="YES" fullScreenDisallowsTiling="YES"/>
|
||||
<rect key="contentRect" x="0.0" y="0.0" width="400" height="200"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||
<value key="minSize" type="size" width="320" height="200"/>
|
||||
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="200"/>
|
||||
@@ -111,13 +331,13 @@
|
||||
<scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="20" horizontalPageScroll="10" verticalLineScroll="20" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AWT-SO-eMg">
|
||||
<rect key="frame" x="-1" y="21" width="402" height="180"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" id="Jyi-ee-N8g">
|
||||
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="Jyi-ee-N8g">
|
||||
<rect key="frame" x="1" y="0.0" width="400" height="179"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" selectionHighlightStyle="sourceList" columnReordering="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="19" headerView="d5x-hJ-iGB" id="VIj-4u-Ayb">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="156"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="10" height="1"/>
|
||||
<color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableViewGridLines key="gridStyleMask" vertical="YES"/>
|
||||
@@ -125,7 +345,6 @@
|
||||
<tableColumns>
|
||||
<tableColumn identifier="colScheme" editable="NO" width="135" minWidth="60" maxWidth="10000" id="xAk-fJ-vg3">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="center" title="URL Scheme">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -137,9 +356,8 @@
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="compare:" sortKey="name"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="colApp" width="245" minWidth="100" maxWidth="10000" id="e5d-gJ-zc9">
|
||||
<tableColumn identifier="colApp" width="220" minWidth="100" maxWidth="10000" id="e5d-gJ-zc9">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="center" title="Application">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -154,6 +372,16 @@
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="compare:" sortKey="registered.name"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="colEdit" editable="NO" width="15" minWidth="15" maxWidth="15" id="Cm6-e1-Uog">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</tableHeaderCell>
|
||||
<buttonCell key="dataCell" type="bevel" bezelStyle="regularSquare" image="NSAdvanced" imagePosition="overlaps" imageScaling="proportionallyDown" inset="2" id="0FC-aY-lTk">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="Voe-Tx-rLC" id="1RG-C6-RKI"/>
|
||||
@@ -162,11 +390,11 @@
|
||||
</subviews>
|
||||
<nil key="backgroundColor"/>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="QVc-od-33H">
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="QVc-od-33H">
|
||||
<rect key="frame" x="1" y="163" width="400" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="JXh-pC-WcA">
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="JXh-pC-WcA">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
@@ -180,5 +408,90 @@
|
||||
<contentBorderThickness minY="22"/>
|
||||
<point key="canvasLocation" x="-2" y="-136"/>
|
||||
</window>
|
||||
<window title="Change URL scheme" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" hidesOnDeactivate="YES" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="Lk3-yC-j4x" customClass="ChangeSchemeModal">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" resizable="YES" utility="YES"/>
|
||||
<rect key="contentRect" x="139" y="81" width="317" height="174"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||
<value key="minSize" type="size" width="317" height="174"/>
|
||||
<value key="maxSize" type="size" width="800" height="174"/>
|
||||
<view key="contentView" id="lGw-1d-0Mr">
|
||||
<rect key="frame" x="0.0" y="0.0" width="317" height="174"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="277" translatesAutoresizingMaskIntoConstraints="NO" id="5NG-4I-VP7">
|
||||
<rect key="frame" x="18" y="138" width="281" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" title="Change App bundle-id (note: app must exist!)" usesSingleLineMode="YES" id="XOl-n5-zjJ">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="277" translatesAutoresizingMaskIntoConstraints="NO" id="Gg9-xP-Gwl">
|
||||
<rect key="frame" x="20" y="85" width="277" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="com.apple.dock" drawsBackground="YES" id="CSi-9U-hRI">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="277" translatesAutoresizingMaskIntoConstraints="NO" id="M9c-RE-hM2">
|
||||
<rect key="frame" x="18" y="49" width="281" height="28"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" selectable="YES" title="To "disable" a URL scheme, use com.apple.systemuiserver or com.apple.dock" id="aRB-e7-Mzm">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="277" translatesAutoresizingMaskIntoConstraints="NO" id="Ybs-o7-zoO">
|
||||
<rect key="frame" x="18" y="114" width="281" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" title="URL scheme: http:" usesSingleLineMode="YES" id="tvO-d4-krl">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jd8-vJ-gIZ">
|
||||
<rect key="frame" x="244" y="13" width="59" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Dd5-ht-Usb">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
DQ
|
||||
</string>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="save:" target="Lk3-yC-j4x" id="zDz-sM-pXX"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Avs-3w-jdx">
|
||||
<rect key="frame" x="162" y="13" width="82" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8lI-YU-VMR">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
Gw
|
||||
</string>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="close:" target="Lk3-yC-j4x" id="XIk-LM-6Fz"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="bundleIdField" destination="Gg9-xP-Gwl" id="paH-ZA-vFL"/>
|
||||
<outlet property="schemeLabel" destination="Ybs-o7-zoO" id="ZMd-dc-X4O"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-415" y="-230"/>
|
||||
</window>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSAdvanced" width="32" height="32"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
Reference in New Issue
Block a user