mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
Implement setting of default terminal menu item
This commit is contained in:
@ -24,7 +24,7 @@ class AppDelegate: NSObject,
|
||||
@IBOutlet private var menuReloadConfig: NSMenuItem?
|
||||
@IBOutlet private var menuSecureInput: NSMenuItem?
|
||||
@IBOutlet private var menuQuit: NSMenuItem?
|
||||
@IBOutlet private var menuMakeDefaultTerminal: NSMenuItem?
|
||||
@IBOutlet private var menuMakeGhosttyDefaultTerminal: NSMenuItem?
|
||||
|
||||
@IBOutlet private var menuNewWindow: NSMenuItem?
|
||||
@IBOutlet private var menuNewTab: NSMenuItem?
|
||||
@ -208,6 +208,9 @@ class AppDelegate: NSObject,
|
||||
|
||||
ghostty_app_set_color_scheme(app, scheme)
|
||||
}
|
||||
|
||||
// Check if Ghostty is already the default terminal
|
||||
updateDefaultTerminalMenuItem()
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive(_ notification: Notification) {
|
||||
@ -666,13 +669,11 @@ class AppDelegate: NSObject,
|
||||
}
|
||||
|
||||
@IBAction func makeGhosttyDefaultTerminal(_ sender: Any) {
|
||||
Ghostty.logger.debug("Clicked makeDefaultTerminal")
|
||||
let ghosttyBundleID = Bundle.main.bundleIdentifier!
|
||||
setDefaultTerminal(bundleID: ghosttyBundleID)
|
||||
}
|
||||
|
||||
@IBAction func makeTerminalDefaultTerminal(_ sender: Any) {
|
||||
Ghostty.logger.debug("Clicked makeTerminalDefaultTerminal")
|
||||
let terminalBundleID = "com.apple.terminal"
|
||||
setDefaultTerminal(bundleID: terminalBundleID)
|
||||
}
|
||||
@ -687,7 +688,6 @@ class AppDelegate: NSObject,
|
||||
|
||||
func isDefaultTerminal(bundleID: String) -> Bool {
|
||||
return bundleID.isEqual(defaultTerminal())
|
||||
// return CFStringCompare(bundleID as CFString, unixHandler?.takeRetainedValue(), CFStringCompareFlags.compareBackwards) == CFComparisonResult.compareEqualTo
|
||||
}
|
||||
|
||||
func defaultTerminal() -> String {
|
||||
@ -699,10 +699,14 @@ class AppDelegate: NSObject,
|
||||
}
|
||||
|
||||
func setDefaultTerminal(bundleID: String) {
|
||||
Ghostty.logger.debug("Setting default terminal to \(bundleID)")
|
||||
Ghostty.logger.debug("Is Ghostty default? \(self.isGhosttyDefault())")
|
||||
Ghostty.logger.debug("Is Terminal default? \(self.isTerminalDefault())")
|
||||
Ghostty.logger.debug("Debugging default terminal: \(self.defaultTerminal())")
|
||||
let unixExecutableContentType: CFString = "public.unix-executable" as CFString
|
||||
LSSetDefaultRoleHandlerForContentType(unixExecutableContentType, LSRolesMask.shell, bundleID as CFString)
|
||||
|
||||
updateDefaultTerminalMenuItem()
|
||||
}
|
||||
|
||||
func updateDefaultTerminalMenuItem() {
|
||||
menuMakeGhosttyDefaultTerminal?.isEnabled = !self.isGhosttyDefault()
|
||||
}
|
||||
|
||||
@IBAction func toggleQuickTerminal(_ sender: Any) {
|
||||
|
@ -22,7 +22,7 @@
|
||||
<outlet property="menuDecreaseFontSize" destination="kzb-SZ-dOA" id="Y1B-Vh-6Z2"/>
|
||||
<outlet property="menuEqualizeSplits" destination="3gH-VD-vL9" id="SiZ-ce-FOF"/>
|
||||
<outlet property="menuIncreaseFontSize" destination="CIH-ey-Z6x" id="hkc-9C-80E"/>
|
||||
<outlet property="menuMakeDefaultTerminal" destination="gFP-FT-8g6" id="KNl-nG-qQv"/>
|
||||
<outlet property="menuMakeGhosttyDefaultTerminal" destination="gFP-FT-8g6" id="m5T-sE-1oX"/>
|
||||
<outlet property="menuMoveSplitDividerDown" destination="Zj7-2W-fdF" id="997-LL-nlN"/>
|
||||
<outlet property="menuMoveSplitDividerLeft" destination="wSR-ny-j1a" id="HCZ-CI-2ob"/>
|
||||
<outlet property="menuMoveSplitDividerRight" destination="CcX-ql-QU4" id="rIn-PK-fVM"/>
|
||||
|
Reference in New Issue
Block a user