# MacOS + SwiftUI global keybinding to bring window to front

Most guides I found focused on using the .keyboardShortcut() API on SwiftUI however this doesn't work when you need to have those keyboard shortcuts act when the app is in the background. This is a short and sweet document detailing how I set up global keybinding in my SwiftUI Lifecycle MacOS app (Thats a mouthful!).

# Install HotKey

First you need to install HotKey - Its a library that abstracts away all of the system calls needed to register your hotkeys. It features an incredibly simple API that will enable us to set up our command in one line.

In XCode, go to File > Swift Packages > Add Package Dependency then add the HotKey repo url (https://github.com/soffes/HotKey).

# Register Hotkey

Now you're ready to register your hotkey!

Find the <appname>App file in your project and add the import statement for HotKey.

import HotKey

Now, add a property initializer inside the App struct that looks like this:

let hotKey = HotKey(key: .r, modifiers: [.command, .option], keyDownHandler: {NSApp.activate(ignoringOtherApps: true)})

This is all you need to have a global hotkey to bring your window to the front!

# Example File

import SwiftUI
import HotKey

@main
struct MacOSApp: App {
    // CMD + OPT + R
    let hotKey = HotKey(key: .r, modifiers: [.command, .option], keyDownHandler: {NSApp.activate(ignoringOtherApps: true)})
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}