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
or cmdKey
- Shift Key
NSEventModifierFlags.shift
or shiftKey
- Option Key
NSEventModifierFlags.option
or optionKey
- Control Key
NSEventModifierFlags.control
or controlKey
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
or git submodule
carthage checkout --use-submodules
or git submodule update --init --recursive
- Open
Magnet.xcworkspace
on Xcode.
- build.
Magnet
Customize global hotkeys in macOS. Supports usual hotkey and double tap hotkey like Alfred.app.
Also supports sandbox application.
Usage
CocoaPods
Carthage
Upgrading from Magnet v2.x to v3.x
See Upgrading from Magnet v2.x
Example
Register Normal hotkey
Add
⌘ + Control + B
hotkey.Or you can use closures.
Register Double tap hotkey
Add
⌘ double tap
hotkey.Add
Control double tap
hotkey.Support modifiers
Double tap hotkey only support following modifiers.
NSEventModifierFlags.command
orcmdKey
NSEventModifierFlags.shift
orshiftKey
NSEventModifierFlags.option
oroptionKey
NSEventModifierFlags.control
orcontrolKey
Unregister hotkeys
or
or
Dependencies
How to Build
carthage
orgit submodule
carthage checkout --use-submodules
orgit submodule update --init --recursive
Magnet.xcworkspace
on Xcode.