Magnet
Magnet copied to clipboard
Customize global hotkeys in macOS.
Magnet
Customize global hotkeys in macOS. Supports usual hotkey and double tap hotkey like Alfred.app.
Also supports sandbox application.
Usage
CocoaPods
pod 'Magnet'
Carthage
github "Clipy/Magnet"
Upgrading from Magnet v2.x to v3.x
See Upgrading from Magnet v2.x
Example
Register Normal hotkey
Add ⌘ + Control + B
hotkey.
if let keyCombo = KeyCombo(key: .b, cocoaModifiers: [.command, .control]]) {
let hotKey = HotKey(identifier: "CommandControlB", keyCombo: keyCombo, target: self, action: #selector())
hotKey.register() // or HotKeyCenter.shared.register(with: hotKey)
}
Or you can use closures.
if let keyCombo = KeyCombo(key: .b, cocoaModifiers: [.command, .control]) {
let hotKey = HotKey(identifier: "CommandControlB", keyCombo: keyCombo) { hotKey in
// Called when ⌘ + Control + B is pressed
}
hotKey.register()
}
Register Double tap hotkey
Add ⌘ double tap
hotkey.
if let keyCombo = KeyCombo(doubledCocoaModifiers: .command) {
let hotKey = HotKey(identifier: "CommandDoubleTap", keyCombo: keyCombo, target: self, action: #selector())
hotKey.register() // or HotKeyCenter.shared.register(with: hotKey)
}
Add Control double tap
hotkey.
if let keyCombo = KeyCombo(doubledCarbonModifiers: controlKey) {
let hotKey = HotKey(identifier: "ControlDoubleTap", keyCombo: keyCombo, target: self, action: #selector())
hotKey.register() // or HotKeyCenter.shared.register(with: hotKey)
}
Support modifiers
Double tap hotkey only support following modifiers.
- Command Key
-
NSEventModifierFlags.command
orcmdKey
-
- Shift Key
-
NSEventModifierFlags.shift
orshiftKey
-
- Option Key
-
NSEventModifierFlags.option
oroptionKey
-
- Control Key
-
NSEventModifierFlags.control
orcontrolKey
-
Unregister hotkeys
HotKeyCenter.shared.unregisterAll()
or
HotKeyCenter.shared.unregisterHotKey(with: "identifier")
or
let hotKey = HotKey(identifier: "identifier", keyCombo: KeyCombo, target: self, action: #selector())
hotKey.unregister() // or HotKeyCenter.shared.unregister(with: hotKey)
Dependencies
How to Build
- Move to the project root directory
- Install dependency library with
carthage
orgit submodule
-
carthage checkout --use-submodules
orgit submodule update --init --recursive
- Open
Magnet.xcworkspace
on Xcode. - build.