Customize global hotkeys in macOS. Supports usual hotkey and double tap hotkey like Alfred.app.
Also supports sandbox application.
- macOS 10.9+
- Xcode 9.4+
- Swift 4.1+
pod 'Magnet'
github "Clipy/Magnet"
Add ⌘ + Control + B
hotkey.
if let keyCombo = KeyCombo(keyCode: 11, carbonModifiers: 4352) {
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(keyCode: 11, carbonModifiers: 4352) {
let hotKey = HotKey(identifier: "CommandControlB", keyCombo: keyCombo) { hotKey in
// Called when ⌘ + Control + B is pressed
}
hotKey.register()
}
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)
}
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
HotKeyCenter.shared.unregisterAll()
or
HotKeyCenter.shared.unregister(with: "identifier")
or
let hotKey = HotKey(identifier: "identifier", keyCombo: KeyCombo, target: self, action: #selector())
hotKey.unregister() // or HotKeyCenter.shared.unregister(with: hotKey)
- Fork it ( https://github.com/Clipy/Magnet/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request