macos: sync all remaining menu items

This commit is contained in:
Mitchell Hashimoto
2023-08-31 11:44:43 -07:00
parent 76053460d5
commit 10aaf8bd35
2 changed files with 20 additions and 9 deletions

View File

@ -15,12 +15,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject {
@Published var confirmQuit: Bool = false
/// Various menu items so that we can programmatically sync the keyboard shortcut with the Ghostty config.
@IBOutlet private var menuQuit: NSMenuItem?
@IBOutlet private var menuNewWindow: NSMenuItem?
@IBOutlet private var menuNewTab: NSMenuItem?
@IBOutlet private var menuSplitHorizontal: NSMenuItem?
@IBOutlet private var menuSplitVertical: NSMenuItem?
@IBOutlet private var menuClose: NSMenuItem?
@IBOutlet private var menuCloseWindow: NSMenuItem?
@IBOutlet private var menuCopy: NSMenuItem?
@IBOutlet private var menuPaste: NSMenuItem?
@IBOutlet private var menuPreviousSplit: NSMenuItem?
@IBOutlet private var menuNextSplit: NSMenuItem?
@IBOutlet private var menuSelectSplitAbove: NSMenuItem?
@ -97,6 +103,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject {
private func syncMenuShortcuts() {
guard ghostty.config != nil else { return }
syncMenuShortcut(action: "quit", menuItem: self.menuQuit)
syncMenuShortcut(action: "new_window", menuItem: self.menuNewWindow)
syncMenuShortcut(action: "new_tab", menuItem: self.menuNewTab)
syncMenuShortcut(action: "close_surface", menuItem: self.menuClose)
@ -104,6 +112,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject {
syncMenuShortcut(action: "new_split:right", menuItem: self.menuSplitHorizontal)
syncMenuShortcut(action: "new_split:down", menuItem: self.menuSplitVertical)
syncMenuShortcut(action: "copy_to_clipboard", menuItem: self.menuCopy)
syncMenuShortcut(action: "paste_from_clipboard", menuItem: self.menuPaste)
syncMenuShortcut(action: "goto_split:previous", menuItem: self.menuPreviousSplit)
syncMenuShortcut(action: "goto_split:next", menuItem: self.menuNextSplit)
syncMenuShortcut(action: "goto_split:top", menuItem: self.menuSelectSplitAbove)

View File

@ -16,10 +16,13 @@
<connections>
<outlet property="menuClose" destination="DVo-aG-piG" id="R3t-0C-aSU"/>
<outlet property="menuCloseWindow" destination="W5w-UZ-crk" id="6ff-BT-ENV"/>
<outlet property="menuCopy" destination="Jqf-pv-Zcu" id="bKd-1C-oy9"/>
<outlet property="menuNewTab" destination="uTG-Vz-hJU" id="eMg-R3-SeS"/>
<outlet property="menuNewWindow" destination="Was-JA-tGl" id="lK7-3I-CPG"/>
<outlet property="menuNextSplit" destination="bD7-ei-wKU" id="LeT-xw-eh4"/>
<outlet property="menuPaste" destination="i27-pK-umN" id="ICc-X2-gV3"/>
<outlet property="menuPreviousSplit" destination="Lic-px-1wg" id="Rto-CG-yRe"/>
<outlet property="menuQuit" destination="4sb-4s-VLi" id="qYN-S1-6UW"/>
<outlet property="menuSelectSplitAbove" destination="0yU-hC-8xF" id="aPc-lS-own"/>
<outlet property="menuSelectSplitBelow" destination="QDz-d9-CBr" id="FsH-Dq-jij"/>
<outlet property="menuSelectSplitLeft" destination="cTK-oy-KuV" id="Jpr-5q-dqz"/>
@ -62,7 +65,8 @@
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
<menuItem title="Quit Ghostty" keyEquivalent="q" id="4sb-4s-VLi">
<menuItem title="Quit Ghostty" id="4sb-4s-VLi">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
</connections>
@ -119,22 +123,18 @@
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Edit" id="iU4-OB-ccf">
<items>
<menuItem title="Copy" keyEquivalent="c" id="Jqf-pv-Zcu">
<menuItem title="Copy" id="Jqf-pv-Zcu">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="copy:" target="-1" id="B4F-hg-R4T"/>
</connections>
</menuItem>
<menuItem title="Paste" keyEquivalent="v" id="i27-pK-umN">
<menuItem title="Paste" id="i27-pK-umN">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="paste:" target="-1" id="ZKe-2B-mel"/>
</connections>
</menuItem>
<menuItem title="Paste and Match Style" keyEquivalent="V" id="FFo-bM-GXj">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="pasteAsPlainText:" target="-1" id="Sfp-aT-ZgM"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VYS-RG-uZD"/>
</items>
</menu>