Add quick-terminal-space-behavior option

This commit is contained in:
Soh Satoh
2024-12-31 21:55:03 +09:00
committed by Mitchell Hashimoto
parent 2206c509be
commit e2523c25cb
5 changed files with 106 additions and 2 deletions

View File

@@ -0,0 +1,36 @@
import Foundation
import Cocoa
enum QuickTerminalSpaceBehavior {
case remain
case move
init?(fromGhosttyConfig string: String) {
switch (string) {
case "move":
self = .move
case "remain":
self = .remain
default:
return nil
}
}
var collectionBehavior: NSWindow.CollectionBehavior {
let commonBehavior: [NSWindow.CollectionBehavior] = [
.ignoresCycle,
.fullScreenAuxiliary
]
switch (self) {
case .move:
// We want this to be part of every space because it is a singleton.
return NSWindow.CollectionBehavior([.canJoinAllSpaces] + commonBehavior)
case .remain:
// We want this to move the window to the active space.
return NSWindow.CollectionBehavior([.moveToActiveSpace] + commonBehavior)
}
}
}