macos: allow split command surface configuration

This commit is contained in:
Mitchell Hashimoto
2026-03-06 12:33:06 -08:00
parent 459eaa2640
commit 4d5de702f2
2 changed files with 21 additions and 2 deletions

View File

@@ -149,6 +149,9 @@
<parameter name="direction" code="GSpd" type="split direction" description="The direction to split.">
<cocoa key="direction"/>
</parameter>
<parameter name="with configuration" code="GSpS" type="surface configuration" optional="yes" description="Base surface configuration for the new split terminal.">
<cocoa key="configuration"/>
</parameter>
<result type="terminal" description="The newly created terminal."/>
</command>

View File

@@ -28,6 +28,19 @@ final class ScriptSplitCommand: NSScriptCommand {
return nil
}
let baseConfig: Ghostty.SurfaceConfiguration
do {
if let scriptRecord = evaluatedArguments?["configuration"] as? NSDictionary {
baseConfig = try Ghostty.SurfaceConfiguration(scriptRecord: scriptRecord)
} else {
baseConfig = Ghostty.SurfaceConfiguration()
}
} catch {
scriptErrorNumber = errAECoercionFail
scriptErrorString = error.localizedDescription
return nil
}
// Find the window controller that owns this surface.
guard let controller = surfaceView.window?.windowController as? BaseTerminalController else {
scriptErrorNumber = errAEEventFailed
@@ -35,7 +48,11 @@ final class ScriptSplitCommand: NSScriptCommand {
return nil
}
guard let newView = controller.newSplit(at: surfaceView, direction: direction.splitDirection) else {
guard let newView = controller.newSplit(
at: surfaceView,
direction: direction.splitDirection,
baseConfig: baseConfig
) else {
scriptErrorNumber = errAEEventFailed
scriptErrorString = "Failed to create split."
return nil
@@ -71,4 +88,3 @@ private enum ScriptSplitDirection {
}
}
}