summaryrefslogtreecommitdiff
path: root/macos/Sources/Features/QuickTerminal/QuickTerminalScreen.swift
blob: cd07a6f1205e7f8ab4ca5b19182a022c87950c6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import Cocoa

enum QuickTerminalScreen {
    case main
    case mouse
    case menuBar

    init?(fromGhosttyConfig string: String) {
        switch (string) {
        case "main":
            self = .main

        case "mouse":
            self = .mouse
            
        case "macos-menu-bar":
            self = .menuBar
            
        default:
            return nil
        }
    }

    var screen: NSScreen? {
        switch (self) {
        case .main:
            return NSScreen.main

        case .mouse:
            let mouseLoc = NSEvent.mouseLocation
            return NSScreen.screens.first(where: { $0.frame.contains(mouseLoc) })

        case .menuBar:
            return NSScreen.screens.first
        }
    }
}