cmux/Resources/cmux.sdef
Lawrence Chen dea60ea71c
Update ghostty to v1.3.0 (#1142)
* Update ghostty to v1.3.0

* Add bell handling and AppleScript support

* Add zsh shell integration handoff test

* Fix Ghostty zsh integration handoff in cmux

* Add terminal keypress notification dismissal test

* Dismiss terminal notifications on keypress

* Address PR review feedback

* Tighten notification dismissal regression test

* Pin GhosttyKit checksum for latest ghostty
2026-03-09 21:32:54 -07:00

192 lines
9 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="cmux Scripting Dictionary">
<suite name="cmux Suite" code="Cmux" description="cmux scripting support.">
<class name="application" code="capp" description="The cmux application.">
<cocoa class="NSApplication"/>
<property name="name" code="pnam" type="text" access="r" description="The name of the application."/>
<property name="frontmost" code="pisf" type="boolean" access="r" description="Is this the active application?">
<cocoa key="isActive"/>
</property>
<property name="front window" code="CMFW" type="window" access="r" description="The frontmost cmux window.">
<cocoa key="frontWindow"/>
</property>
<property name="version" code="vers" type="text" access="r" description="The version number of the application."/>
<responds-to command="perform action">
<cocoa method="handlePerformActionScriptCommand:"/>
</responds-to>
<responds-to command="new window">
<cocoa method="handleNewWindowScriptCommand:"/>
</responds-to>
<responds-to command="new tab">
<cocoa method="handleNewTabScriptCommand:"/>
</responds-to>
<responds-to command="quit">
<cocoa method="handleQuitScriptCommand:"/>
</responds-to>
<element type="window" access="r">
<cocoa key="scriptWindows"/>
</element>
<element type="terminal" access="r">
<cocoa key="terminals"/>
</element>
</class>
<class name="window" code="CMwn" plural="windows" description="A cmux window containing one or more workspaces.">
<cocoa class="CmuxScriptWindow"/>
<property name="id" code="ID " type="text" access="r" description="Stable ID for this window."/>
<property name="name" code="pnam" type="text" access="r" description="The title of the window.">
<cocoa key="title"/>
</property>
<property name="selected tab" code="CMsT" type="tab" access="r" description="The selected workspace in this window.">
<cocoa key="selectedTab"/>
</property>
<responds-to command="activate window">
<cocoa method="handleActivateWindowCommand:"/>
</responds-to>
<responds-to command="close window">
<cocoa method="handleCloseWindowCommand:"/>
</responds-to>
<element type="tab" access="r">
<cocoa key="tabs"/>
</element>
<element type="terminal" access="r">
<cocoa key="terminals"/>
</element>
</class>
<class name="tab" code="CMtb" plural="tabs" description="A cmux workspace.">
<cocoa class="CmuxScriptTab"/>
<property name="id" code="ID " type="text" access="r" description="Stable ID for this workspace."/>
<property name="name" code="pnam" type="text" access="r" description="The title of the workspace.">
<cocoa key="title"/>
</property>
<property name="index" code="pidx" type="integer" access="r" description="1-based index of this workspace in its window."/>
<property name="selected" code="CMsl" type="boolean" access="r" description="Whether this workspace is selected in its window."/>
<property name="focused terminal" code="CMfT" type="terminal" access="r" description="The currently focused terminal panel in this workspace.">
<cocoa key="focusedTerminal"/>
</property>
<responds-to command="select tab">
<cocoa method="handleSelectTabCommand:"/>
</responds-to>
<responds-to command="close tab">
<cocoa method="handleCloseTabCommand:"/>
</responds-to>
<element type="terminal" access="r">
<cocoa key="terminals"/>
</element>
</class>
<class name="terminal" code="CMtr" plural="terminals" description="An individual terminal panel.">
<cocoa class="CmuxScriptTerminal"/>
<property name="id" code="ID " type="text" access="r" description="Stable ID for this terminal panel."/>
<property name="name" code="pnam" type="text" access="r" description="Current terminal title.">
<cocoa key="title"/>
</property>
<property name="working directory" code="CMwd" type="text" access="r" description="Current working directory for the terminal process.">
<cocoa key="workingDirectory"/>
</property>
<responds-to command="split">
<cocoa method="handleSplitCommand:"/>
</responds-to>
<responds-to command="focus">
<cocoa method="handleFocusCommand:"/>
</responds-to>
<responds-to command="close">
<cocoa method="handleCloseCommand:"/>
</responds-to>
</class>
<enumeration name="split direction" code="CMSD" description="Direction for a new split.">
<enumerator name="right" code="GSrt" description="Split to the right."/>
<enumerator name="left" code="GSlf" description="Split to the left."/>
<enumerator name="down" code="GSdn" description="Split downward."/>
<enumerator name="up" code="GSup" description="Split upward."/>
</enumeration>
<command name="perform action" code="CmuxPfAc" description="Perform a Ghostty action string on a terminal.">
<direct-parameter type="text" description="The Ghostty action string."/>
<parameter name="on" code="CMoT" type="terminal" description="Target terminal.">
<cocoa key="on"/>
</parameter>
<result type="boolean" description="True when the action was performed."/>
</command>
<command name="new window" code="CmuxNWin" description="Create a new cmux window.">
<result type="window" description="The newly created window."/>
</command>
<command name="new tab" code="CmuxNTab" description="Create a new workspace.">
<parameter name="in" code="CMtW" type="window" optional="yes" description="Target window for the new workspace.">
<cocoa key="window"/>
</parameter>
<result type="tab" description="The newly created workspace."/>
</command>
<command name="split" code="CmuxSplt" description="Split a terminal in the given direction.">
<direct-parameter type="specifier" description="The terminal to split."/>
<parameter name="direction" code="CMpd" type="split direction" description="The direction to split.">
<cocoa key="direction"/>
</parameter>
<result type="terminal" description="The newly created terminal."/>
</command>
<command name="focus" code="CmuxFcus" description="Focus a terminal, bringing its window to the front.">
<direct-parameter type="specifier" description="The terminal to focus."/>
</command>
<command name="close" code="CmuxClos" description="Close a terminal.">
<direct-parameter type="specifier" description="The terminal to close."/>
</command>
<command name="activate window" code="CmuxAcWn" description="Activate a cmux window, bringing it to the front.">
<direct-parameter type="specifier" description="The window to activate."/>
</command>
<command name="select tab" code="CmuxSlTb" description="Select a workspace in its window.">
<direct-parameter type="specifier" description="The workspace to select."/>
</command>
<command name="close tab" code="CmuxClTb" description="Close a workspace.">
<direct-parameter type="specifier" description="The workspace to close."/>
</command>
<command name="close window" code="CmuxClWn" description="Close a window.">
<direct-parameter type="specifier" description="The window to close."/>
</command>
<command name="input text" code="CmuxInTx" description="Input text to a terminal as if it was pasted.">
<cocoa class="CmuxScriptInputTextCommand"/>
<direct-parameter type="text" description="The text to input."/>
<parameter name="to" code="CMiT" type="terminal" description="The terminal to input text to.">
<cocoa key="terminal"/>
</parameter>
</command>
</suite>
<suite name="Standard Suite" code="????" description="Common classes and commands for all applications.">
<command name="count" code="corecnte" description="Return the number of elements of a particular class within an object.">
<cocoa class="NSCountCommand"/>
<access-group identifier="*"/>
<direct-parameter type="specifier" requires-access="r" description="The objects to be counted."/>
<parameter name="each" code="kocl" type="type" optional="yes" description="The class of objects to be counted." hidden="yes">
<cocoa key="ObjectClass"/>
</parameter>
<result type="integer" description="The count."/>
</command>
<command name="exists" code="coredoex" description="Verify that an object exists.">
<cocoa class="NSExistsCommand"/>
<access-group identifier="*"/>
<direct-parameter type="any" requires-access="r" description="The object(s) to check."/>
<result type="boolean" description="Did the object(s) exist?"/>
</command>
<command name="quit" code="aevtquit" description="Quit the application.">
<cocoa class="NSQuitCommand"/>
</command>
</suite>
</dictionary>