Clipy/Magnet
Customize global hotkeys in macOS.
Usage
CocoaPods
pod 'Magnet'Carthage
github "Clipy/Magnet"Upgrading from Magnet v2.x to v3.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
carthageorgit submodule carthage checkout --use-submodulesorgit submodule update --init --recursive- Open
Magnet.xcworkspaceon Xcode. - build.
Package Metadata
Repository: Clipy/Magnet
Homepage: https://clipy-app.com
Stars: 446
Forks: 43
Open issues: 13
Default branch: master
Primary language: swift
License: MIT
Topics: alfred, clipy, dvorak, hotkey, macos, qwerty, sandbox, shortcut, swift
README: README.md