Skip to content

Commit 5eb613f

Browse files
committed
Replace HotKey impl with MASShortcut
1 parent 429d2d5 commit 5eb613f

File tree

5 files changed

+19
-41
lines changed

5 files changed

+19
-41
lines changed

Cartfile

-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
github "soffes/HotKey"
21
github "nmdias/DefaultsKit"
32
github "shpakovski/MASShortcut"

Cartfile.resolved

-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
github "nmdias/DefaultsKit" "0.2.0"
22
github "shpakovski/MASShortcut" "2.3.6"
3-
github "soffes/HotKey" "v0.1.1"

DevDocs.xcodeproj/project.pbxproj

+10-18
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
/* Begin PBXBuildFile section */
1010
06996D2D223DDBEB001507AD /* Summoner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06996D2C223DDBEB001507AD /* Summoner.swift */; };
1111
06996D2F223DE207001507AD /* DK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06996D2E223DE207001507AD /* DK.swift */; };
12+
06996D31223DEC68001507AD /* MASShortcut.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06996D30223DEC68001507AD /* MASShortcut.framework */; };
13+
06996D32223DEC68001507AD /* MASShortcut.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 06996D30223DEC68001507AD /* MASShortcut.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
14+
06996D34223DEC75001507AD /* MASShortcut.framework.dSYM in CopyFiles */ = {isa = PBXBuildFile; fileRef = 06996D33223DEC74001507AD /* MASShortcut.framework.dSYM */; };
1215
06B5A71A21D2013D007823B2 /* user-scripts in Resources */ = {isa = PBXBuildFile; fileRef = 06B5A71921D2013D007823B2 /* user-scripts */; };
13-
06B5A72521D348F0007823B2 /* HotKey.framework.dSYM in CopyFiles */ = {isa = PBXBuildFile; fileRef = 06B5A72421D348F0007823B2 /* HotKey.framework.dSYM */; };
14-
06B5A72721D34916007823B2 /* HotKey.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06B5A72621D34916007823B2 /* HotKey.framework */; };
15-
06B5A72821D34916007823B2 /* HotKey.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 06B5A72621D34916007823B2 /* HotKey.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1616
06B5A73121D354FC007823B2 /* DocumentationWindows.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B5A73021D354FC007823B2 /* DocumentationWindows.swift */; };
1717
06B5A73321D35552007823B2 /* Documentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B5A73221D35552007823B2 /* Documentation.swift */; };
1818
06B5A73521D36637007823B2 /* DefaultsKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06B5A73421D36637007823B2 /* DefaultsKit.framework */; };
@@ -28,7 +28,6 @@
2828
6F4E7DCC223DBA0D0074E6F1 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6F4E7DCB223DBA0D0074E6F1 /* Preferences.storyboard */; };
2929
6F4E7DCF223DBB7E0074E6F1 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F4E7DCE223DBB7E0074E6F1 /* PreferencesViewController.swift */; };
3030
6F4E7DD5223DBDB70074E6F1 /* MASShortcut.framework.dSYM in Resources */ = {isa = PBXBuildFile; fileRef = 6F4E7DD3223DBDB70074E6F1 /* MASShortcut.framework.dSYM */; };
31-
6F4E7DD9223DC1630074E6F1 /* MASShortcut.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6F4E7DD8223DC1630074E6F1 /* MASShortcut.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
3231
6F4E7DDB223DC5B00074E6F1 /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F4E7DDA223DC5B00074E6F1 /* Preferences.swift */; };
3332
/* End PBXBuildFile section */
3433

@@ -39,29 +38,19 @@
3938
dstPath = "";
4039
dstSubfolderSpec = 10;
4140
files = (
42-
06B5A72821D34916007823B2 /* HotKey.framework in Embed Frameworks */,
41+
06996D32223DEC68001507AD /* MASShortcut.framework in Embed Frameworks */,
4342
06B5A73621D36637007823B2 /* DefaultsKit.framework in Embed Frameworks */,
44-
6F4E7DD9223DC1630074E6F1 /* MASShortcut.framework in Embed Frameworks */,
4543
);
4644
name = "Embed Frameworks";
4745
runOnlyForDeploymentPostprocessing = 0;
4846
};
49-
06B5A72321D348B1007823B2 /* CopyFiles */ = {
50-
isa = PBXCopyFilesBuildPhase;
51-
buildActionMask = 2147483647;
52-
dstPath = "";
53-
dstSubfolderSpec = 16;
54-
files = (
55-
06B5A72521D348F0007823B2 /* HotKey.framework.dSYM in CopyFiles */,
56-
);
57-
runOnlyForDeploymentPostprocessing = 0;
58-
};
5947
06B5A73721D36645007823B2 /* CopyFiles */ = {
6048
isa = PBXCopyFilesBuildPhase;
6149
buildActionMask = 2147483647;
6250
dstPath = "";
6351
dstSubfolderSpec = 16;
6452
files = (
53+
06996D34223DEC75001507AD /* MASShortcut.framework.dSYM in CopyFiles */,
6554
06B5A73921D3665C007823B2 /* DefaultsKit.framework.dSYM in CopyFiles */,
6655
);
6756
runOnlyForDeploymentPostprocessing = 0;
@@ -71,6 +60,8 @@
7160
/* Begin PBXFileReference section */
7261
06996D2C223DDBEB001507AD /* Summoner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Summoner.swift; sourceTree = "<group>"; };
7362
06996D2E223DE207001507AD /* DK.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DK.swift; sourceTree = "<group>"; };
63+
06996D30223DEC68001507AD /* MASShortcut.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MASShortcut.framework; path = Carthage/Build/Mac/MASShortcut.framework; sourceTree = "<group>"; };
64+
06996D33223DEC74001507AD /* MASShortcut.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = MASShortcut.framework.dSYM; path = Carthage/Build/Mac/MASShortcut.framework.dSYM; sourceTree = "<group>"; };
7465
06B5A71921D2013D007823B2 /* user-scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "user-scripts"; sourceTree = "<group>"; };
7566
06B5A72421D348F0007823B2 /* HotKey.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = HotKey.framework.dSYM; path = Carthage/Build/Mac/HotKey.framework.dSYM; sourceTree = "<group>"; };
7667
06B5A72621D34916007823B2 /* HotKey.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HotKey.framework; path = Carthage/Build/Mac/HotKey.framework; sourceTree = "<group>"; };
@@ -99,7 +90,7 @@
9990
isa = PBXFrameworksBuildPhase;
10091
buildActionMask = 2147483647;
10192
files = (
102-
06B5A72721D34916007823B2 /* HotKey.framework in Frameworks */,
93+
06996D31223DEC68001507AD /* MASShortcut.framework in Frameworks */,
10394
06B5A73521D36637007823B2 /* DefaultsKit.framework in Frameworks */,
10495
);
10596
runOnlyForDeploymentPostprocessing = 0;
@@ -123,6 +114,8 @@
123114
06EAE7E021D0CB3D00F7C921 = {
124115
isa = PBXGroup;
125116
children = (
117+
06996D33223DEC74001507AD /* MASShortcut.framework.dSYM */,
118+
06996D30223DEC68001507AD /* MASShortcut.framework */,
126119
06B5A72921D3492F007823B2 /* Carthage */,
127120
06EAE7EB21D0CB3D00F7C921 /* devdocs-macos */,
128121
06EAE7EA21D0CB3D00F7C921 /* Products */,
@@ -179,7 +172,6 @@
179172
06EAE7E621D0CB3D00F7C921 /* Frameworks */,
180173
06EAE7E721D0CB3D00F7C921 /* Resources */,
181174
06B5A72221D34895007823B2 /* Embed Frameworks */,
182-
06B5A72321D348B1007823B2 /* CopyFiles */,
183175
06B5A73721D36645007823B2 /* CopyFiles */,
184176
);
185177
buildRules = (

devdocs-macos/AppDelegate.swift

-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import Cocoa
2-
import HotKey
32

43
@NSApplicationMain
54
class AppDelegate: NSObject, NSApplicationDelegate {
6-
7-
private var hotKey: HotKey!
8-
95
func applicationWillFinishLaunching(_ notification: Notification) {
106
let _ = DocumentationWindows.shared
117
}

devdocs-macos/Summoner.swift

+9-17
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,22 @@
11
import Cocoa
2-
import HotKey
3-
4-
struct PrefKeyCombo: Codable {
5-
let carbonKeyCode: UInt32
6-
let carbonModifiers: UInt32
7-
}
8-
9-
extension DKDefaultsKey {
10-
static let summonKeys = DKKey<PrefKeyCombo>("summonKeys")
11-
}
2+
import MASShortcut
123

134
class Summoner {
145
static let shared = Summoner();
156

16-
private var hotKey: HotKey!
7+
private let prefsKey = "summonKeys";
178

189
private init() {
10+
// Register MASShortcut defaults.
11+
let modifiers = NSEvent.ModifierFlags([.option])
12+
let shortcut = MASShortcut(keyCode: UInt(kVK_Space), modifierFlags: modifiers.rawValue)
13+
MASShortcutBinder.shared().registerDefaultShortcuts([prefsKey : shortcut as Any])
1914
}
2015

2116
func install() {
22-
let summonKeys = DKDefaults.shared.get(for: .summonKeys).map { combo in
23-
KeyCombo.init(carbonKeyCode: combo.carbonKeyCode, carbonModifiers: combo.carbonModifiers)
24-
} ?? KeyCombo.init(key: .space, modifiers: [.option])
25-
26-
hotKey = HotKey.init(keyCombo: summonKeys)
27-
hotKey.keyDownHandler = hotKeyPressed
17+
MASShortcutBinder.shared()?.bindShortcut(withDefaultsKey: prefsKey, toAction: {
18+
self.hotKeyPressed()
19+
})
2820
}
2921

3022
private func hotKeyPressed() {

0 commit comments

Comments
 (0)