macos: invoke keybind intent

This commit is contained in:
Mitchell Hashimoto
2025-06-19 10:47:56 -07:00
parent 14e46d0979
commit c904e86883
2 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
import AppKit
import AppIntents
/// App intent that invokes a command palette entry.
struct KeybindIntent: AppIntent {
static var title: LocalizedStringResource = "Invoke a Keybind Action"
@Parameter(
title: "Terminal",
description: "The terminal to base available commands from."
)
var terminal: TerminalEntity
@Parameter(
title: "Action",
description: "The keybind action to invoke. This can be any valid keybind action you could put in a configuration file."
)
var action: String
@available(macOS 26.0, *)
static var supportedModes: IntentModes = [.background, .foreground]
@MainActor
func perform() async throws -> some IntentResult & ReturnsValue<Bool> {
guard let surface = terminal.surfaceModel else {
throw GhosttyIntentError.surfaceNotFound
}
let performed = surface.perform(action: action)
return .result(value: performed)
}
}