//! GENERATED by scripts/gen-macos-menu-spec.py from MainMenu.xib; do not edit. //! //! Every menu item of the xib: title, key equivalent, modifier mask, action //! selector + target (`-1` first responder / the AppDelegate) and the AppDelegate //! outlet it is connected to. use super::{Action, Item, ItemSpec, MenuSpec, Mods, Outlet, SystemMenu, Target}; /// The main menu (`systemMenu="main"`). pub const MAIN_MENU: MenuSpec = MenuSpec { title: "Main Menu", system_menu: Some(SystemMenu::Main), outlet: None, items: &[ ItemSpec::Item(Item { title: "Ghostty", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Ghostty", system_menu: Some(SystemMenu::Apple), outlet: None, items: &[ ItemSpec::Item(Item { title: "About Ghostty", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "showAbout:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuAbout), submenu: None, }), ItemSpec::Item(Item { title: "Check for Updates...", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "checkForUpdates:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuCheckForUpdates), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Preferences…", key_equivalent: ",", modifiers: None, action: Some(Action { selector: "openConfig:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuOpenConfig), submenu: None, }), ItemSpec::Item(Item { title: "Reload Configuration", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "reloadConfig:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuReloadConfig), submenu: None, }), ItemSpec::Item(Item { title: "Secure Keyboard Entry", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "toggleSecureInput:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuSecureInput), submenu: None, }), ItemSpec::Item(Item { title: "Make Ghostty the Default Terminal", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "setAsDefaultTerminal:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuSetAsDefaultTerminal), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Services", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Services", system_menu: None, outlet: Some(Outlet::MenuServices), items: &[], }), }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Hide Ghostty", key_equivalent: "h", modifiers: None, action: Some(Action { selector: "hide:", target: Target::FirstResponder, }), outlet: None, submenu: None, }), ItemSpec::Item(Item { title: "Hide Others", key_equivalent: "h", modifiers: Some(Mods(Mods::OPTION.0 | Mods::COMMAND.0)), action: Some(Action { selector: "hideOtherApplications:", target: Target::FirstResponder, }), outlet: None, submenu: None, }), ItemSpec::Item(Item { title: "Show All", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "unhideAllApplications:", target: Target::FirstResponder, }), outlet: None, submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Quit Ghostty", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "terminate:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuQuit), submenu: None, }), ], }), }), ItemSpec::Item(Item { title: "File", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "File", system_menu: None, outlet: None, items: &[ ItemSpec::Item(Item { title: "New Window", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "newWindow:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuNewWindow), submenu: None, }), ItemSpec::Item(Item { title: "New Tab", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "newTab:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuNewTab), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Split Right", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitRight:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSplitRight), submenu: None, }), ItemSpec::Item(Item { title: "Split Left", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitLeft:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSplitLeft), submenu: None, }), ItemSpec::Item(Item { title: "Split Down", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitDown:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSplitDown), submenu: None, }), ItemSpec::Item(Item { title: "Split Up", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitUp:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSplitUp), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Close", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "close:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuClose), submenu: None, }), ItemSpec::Item(Item { title: "Close Tab", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "closeTab:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuCloseTab), submenu: None, }), ItemSpec::Item(Item { title: "Close Window", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "closeWindow:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuCloseWindow), submenu: None, }), ItemSpec::Item(Item { title: "Close All Windows", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "closeAllWindows:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuCloseAllWindows), submenu: None, }), ], }), }), ItemSpec::Item(Item { title: "Edit", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Edit", system_menu: None, outlet: None, items: &[ ItemSpec::Item(Item { title: "Undo", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "undo:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuUndo), submenu: None, }), ItemSpec::Item(Item { title: "Redo", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "redo:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuRedo), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Copy", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "copy:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuCopy), submenu: None, }), ItemSpec::Item(Item { title: "Paste", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "paste:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuPaste), submenu: None, }), ItemSpec::Item(Item { title: "Paste Selection", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "pasteSelection:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuPasteSelection), submenu: None, }), ItemSpec::Item(Item { title: "Select All", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "selectAll:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSelectAll), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Find", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: Some(Outlet::MenuFindParent), submenu: Some(&MenuSpec { title: "Find", system_menu: None, outlet: None, items: &[ ItemSpec::Item(Item { title: "Find...", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "find:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuFind), submenu: None, }), ItemSpec::Item(Item { title: "Find Next", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "findNext:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuFindNext), submenu: None, }), ItemSpec::Item(Item { title: "Find Previous", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "findPrevious:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuFindPrevious), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Hide Find Bar", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "findHide:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuHideFindBar), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Use Selection for Find", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "selectionForFind:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSelectionForSearch), submenu: None, }), ItemSpec::Item(Item { title: "Jump to Selection", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "scrollToSelection:", target: Target::FirstResponder, }), outlet: None, submenu: None, }), ], }), }), ItemSpec::Separator, ], }), }), ItemSpec::Item(Item { title: "View", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "View", system_menu: None, outlet: None, items: &[ ItemSpec::Item(Item { title: "Reset Font Size", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "resetFontSize:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuResetFontSize), submenu: None, }), ItemSpec::Item(Item { title: "Increase Font Size", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "increaseFontSize:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuIncreaseFontSize), submenu: None, }), ItemSpec::Item(Item { title: "Decrease Font Size", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "decreaseFontSize:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuDecreaseFontSize), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Command Palette", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "toggleCommandPalette:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuCommandPalette), submenu: None, }), ItemSpec::Item(Item { title: "Change Tab Title...", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "changeTabTitle:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuChangeTabTitle), submenu: None, }), ItemSpec::Item(Item { title: "Change Terminal Title...", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "changeTitle:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuChangeTitle), submenu: None, }), ItemSpec::Item(Item { title: "Terminal Read-only", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "toggleReadonly:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuReadonly), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Quick Terminal", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "toggleQuickTerminal:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuQuickTerminal), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Terminal Inspector", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "toggleTerminalInspector:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuTerminalInspector), submenu: None, }), ], }), }), ItemSpec::Item(Item { title: "Window", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Window", system_menu: Some(SystemMenu::Window), outlet: None, items: &[ ItemSpec::Item(Item { title: "Minimize", key_equivalent: "m", modifiers: None, action: Some(Action { selector: "performMiniaturize:", target: Target::FirstResponder, }), outlet: None, submenu: None, }), ItemSpec::Item(Item { title: "Zoom", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "performZoom:", target: Target::FirstResponder, }), outlet: None, submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Toggle Full Screen", key_equivalent: "f", modifiers: Some(Mods(Mods::CONTROL.0 | Mods::COMMAND.0)), action: Some(Action { selector: "toggleGhosttyFullScreen:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuToggleFullScreen), submenu: None, }), ItemSpec::Item(Item { title: "Show/Hide All Terminals", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "toggleVisibility:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuToggleVisibility), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Zoom Split", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitZoom:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuZoomSplit), submenu: None, }), ItemSpec::Item(Item { title: "Select Previous Split", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitMoveFocusPrevious:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuPreviousSplit), submenu: None, }), ItemSpec::Item(Item { title: "Select Next Split", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitMoveFocusNext:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuNextSplit), submenu: None, }), ItemSpec::Item(Item { title: "Select Split", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Select Split", system_menu: None, outlet: None, items: &[ ItemSpec::Item(Item { title: "Select Split Above", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitMoveFocusAbove:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSelectSplitAbove), submenu: None, }), ItemSpec::Item(Item { title: "Select Split Below", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitMoveFocusBelow:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSelectSplitBelow), submenu: None, }), ItemSpec::Item(Item { title: "Select Split Left", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitMoveFocusLeft:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSelectSplitLeft), submenu: None, }), ItemSpec::Item(Item { title: "Select Split Right", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "splitMoveFocusRight:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuSelectSplitRight), submenu: None, }), ], }), }), ItemSpec::Item(Item { title: "Resize Split", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Resize Split", system_menu: None, outlet: None, items: &[ ItemSpec::Item(Item { title: "Equalize Splits", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "equalizeSplits:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuEqualizeSplits), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Move Divider Up", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "moveSplitDividerUp:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuMoveSplitDividerUp), submenu: None, }), ItemSpec::Item(Item { title: "Move Divider Down", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "moveSplitDividerDown:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuMoveSplitDividerDown), submenu: None, }), ItemSpec::Item(Item { title: "Move Divider Left", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "moveSplitDividerLeft:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuMoveSplitDividerLeft), submenu: None, }), ItemSpec::Item(Item { title: "Move Divider Right", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "moveSplitDividerRight:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuMoveSplitDividerRight), submenu: None, }), ], }), }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Return To Default Size", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "returnToDefaultSize:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuReturnToDefaultSize), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Float on Top", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "floatOnTop:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuFloatOnTop), submenu: None, }), ItemSpec::Item(Item { title: "Use as Default", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "useAsDefault:", target: Target::AppDelegate, }), outlet: Some(Outlet::MenuUseAsDefault), submenu: None, }), ItemSpec::Separator, ItemSpec::Item(Item { title: "Bring All to Front", key_equivalent: "", modifiers: Some(Mods::NONE), action: Some(Action { selector: "arrangeInFront:", target: Target::FirstResponder, }), outlet: Some(Outlet::MenuBringAllToFront), submenu: None, }), ], }), }), ItemSpec::Item(Item { title: "Help", key_equivalent: "", modifiers: Some(Mods::NONE), action: None, outlet: None, submenu: Some(&MenuSpec { title: "Help", system_menu: Some(SystemMenu::Help), outlet: None, items: &[ItemSpec::Item(Item { title: "Ghostty Help", key_equivalent: "?", modifiers: None, action: Some(Action { selector: "showHelp:", target: Target::AppDelegate, }), outlet: None, submenu: None, })], }), }), ], }; /// All outlets connected in the xib (the Swift names). pub const CONNECTED_OUTLETS: &[Outlet] = &[ Outlet::MenuAbout, Outlet::MenuBringAllToFront, Outlet::MenuChangeTabTitle, Outlet::MenuChangeTitle, Outlet::MenuCheckForUpdates, Outlet::MenuClose, Outlet::MenuCloseAllWindows, Outlet::MenuCloseTab, Outlet::MenuCloseWindow, Outlet::MenuCommandPalette, Outlet::MenuCopy, Outlet::MenuDecreaseFontSize, Outlet::MenuEqualizeSplits, Outlet::MenuFind, Outlet::MenuFindNext, Outlet::MenuFindParent, Outlet::MenuFindPrevious, Outlet::MenuFloatOnTop, Outlet::MenuHideFindBar, Outlet::MenuIncreaseFontSize, Outlet::MenuMoveSplitDividerDown, Outlet::MenuMoveSplitDividerLeft, Outlet::MenuMoveSplitDividerRight, Outlet::MenuMoveSplitDividerUp, Outlet::MenuNewTab, Outlet::MenuNewWindow, Outlet::MenuNextSplit, Outlet::MenuOpenConfig, Outlet::MenuPaste, Outlet::MenuPasteSelection, Outlet::MenuPreviousSplit, Outlet::MenuQuickTerminal, Outlet::MenuQuit, Outlet::MenuReadonly, Outlet::MenuRedo, Outlet::MenuReloadConfig, Outlet::MenuResetFontSize, Outlet::MenuReturnToDefaultSize, Outlet::MenuSecureInput, Outlet::MenuSelectAll, Outlet::MenuSelectSplitAbove, Outlet::MenuSelectSplitBelow, Outlet::MenuSelectSplitLeft, Outlet::MenuSelectSplitRight, Outlet::MenuSelectionForSearch, Outlet::MenuServices, Outlet::MenuSetAsDefaultTerminal, Outlet::MenuSplitDown, Outlet::MenuSplitLeft, Outlet::MenuSplitRight, Outlet::MenuSplitUp, Outlet::MenuTerminalInspector, Outlet::MenuToggleFullScreen, Outlet::MenuToggleVisibility, Outlet::MenuUndo, Outlet::MenuUseAsDefault, Outlet::MenuZoomSplit, ];