From 65c5e72d3e17dbdfc2a45beb152e86bc301c6ac7 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 11 Dec 2025 16:22:22 -0800 Subject: [PATCH] macos: add tab title change to tab context menu --- .../Terminal/Window Styles/TerminalWindow.swift | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/macos/Sources/Features/Terminal/Window Styles/TerminalWindow.swift b/macos/Sources/Features/Terminal/Window Styles/TerminalWindow.swift index 5bbf9322d..d04d7001c 100644 --- a/macos/Sources/Features/Terminal/Window Styles/TerminalWindow.swift +++ b/macos/Sources/Features/Terminal/Window Styles/TerminalWindow.swift @@ -668,6 +668,7 @@ private struct TabColorIndicatorView: View { extension TerminalWindow { private static let closeTabsOnRightMenuItemIdentifier = NSUserInterfaceItemIdentifier("com.mitchellh.ghostty.closeTabsOnTheRightMenuItem") + private static let changeTitleMenuItemIdentifier = NSUserInterfaceItemIdentifier("com.mitchellh.ghostty.changeTitleMenuItem") private static let tabColorSeparatorIdentifier = NSUserInterfaceItemIdentifier("com.mitchellh.ghostty.tabColorSeparator") private static let tabColorPaletteIdentifier = NSUserInterfaceItemIdentifier("com.mitchellh.ghostty.tabColorPalette") @@ -701,7 +702,7 @@ extension TerminalWindow { } } - appendTabColorSection(to: menu, target: targetController) + appendTabModifierSection(to: menu, target: targetController) } private func isTabContextMenu(_ menu: NSMenu) -> Bool { @@ -719,9 +720,10 @@ extension TerminalWindow { return !selectorNames.isDisjoint(with: tabContextSelectors) } - private func appendTabColorSection(to menu: NSMenu, target: TerminalController?) { + private func appendTabModifierSection(to menu: NSMenu, target: TerminalController?) { menu.removeItems(withIdentifiers: [ Self.tabColorSeparatorIdentifier, + Self.changeTitleMenuItemIdentifier, Self.tabColorPaletteIdentifier ]) @@ -729,6 +731,13 @@ extension TerminalWindow { separator.identifier = Self.tabColorSeparatorIdentifier menu.addItem(separator) + // Change Title... + let changeTitleItem = NSMenuItem(title: "Change Title...", action: #selector(BaseTerminalController.changeTabTitle(_:)), keyEquivalent: "") + changeTitleItem.identifier = Self.changeTitleMenuItemIdentifier + changeTitleItem.target = target + changeTitleItem.setImageIfDesired(systemSymbolName: "pencil.line") + menu.addItem(changeTitleItem) + let paletteItem = NSMenuItem() paletteItem.identifier = Self.tabColorPaletteIdentifier paletteItem.view = makeTabColorPaletteView(