config: quick terminal auto hide

Introduce a setting allowing to customize the behavior of the quick terminal
when it loses focus. By default, the quick terminal will automatically hide.
However, you can now configure it to remain open by setting
`quick-terminal-autohide: false`.

Resolves #2558
This commit is contained in:
Damien MEHALA
2024-12-21 23:51:15 +01:00
committed by Damien Mehala
parent dd6460bc77
commit 196af6f2ca
3 changed files with 19 additions and 2 deletions

View File

@@ -107,7 +107,9 @@ class QuickTerminalController: BaseTerminalController {
self.previousApp = nil
}
animateOut()
if (derivedConfig.quickTerminalAutoHide) {
animateOut()
}
}
func windowWillResize(_ sender: NSWindow, to frameSize: NSSize) -> NSSize {
@@ -395,15 +397,18 @@ class QuickTerminalController: BaseTerminalController {
private struct DerivedConfig {
let quickTerminalScreen: QuickTerminalScreen
let quickTerminalAnimationDuration: Double
let quickTerminalAutoHide: Bool
init() {
self.quickTerminalScreen = .main
self.quickTerminalAnimationDuration = 0.2
self.quickTerminalAutoHide = true
}
init(_ config: Ghostty.Config) {
self.quickTerminalScreen = config.quickTerminalScreen
self.quickTerminalAnimationDuration = config.quickTerminalAnimationDuration
self.quickTerminalAutoHide = config.quickTerminalAutoHide
}
}
}