Contents

Clipy/Magnet

Customize global hotkeys in macOS.

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

  1. Move to the project root directory
  2. Install dependency library with carthage or git submodule
  3. carthage checkout --use-submodules or git submodule update --init --recursive
  4. Open Magnet.xcworkspace on Xcode.
  5. 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