diff --git a/include/ghostty.h b/include/ghostty.h
index 72f23b22b..941223943 100644
--- a/include/ghostty.h
+++ b/include/ghostty.h
@@ -667,6 +667,7 @@ typedef enum {
GHOSTTY_ACTION_CONFIG_CHANGE,
GHOSTTY_ACTION_CLOSE_WINDOW,
GHOSTTY_ACTION_RING_BELL,
+ GHOSTTY_ACTION_CHECK_FOR_UPDATES
} ghostty_action_tag_e;
typedef union {
diff --git a/macos/Sources/App/macOS/AppDelegate.swift b/macos/Sources/App/macOS/AppDelegate.swift
index c5d63f55d..38b26f606 100644
--- a/macos/Sources/App/macOS/AppDelegate.swift
+++ b/macos/Sources/App/macOS/AppDelegate.swift
@@ -154,10 +154,6 @@ class AppDelegate: NSObject,
toggleSecureInput(self)
}
- // Hook up updater menu
- menuCheckForUpdates?.target = updaterController
- menuCheckForUpdates?.action = #selector(SPUStandardUpdaterController.checkForUpdates(_:))
-
// Initial config loading
ghosttyConfigDidChange(config: ghostty.config)
@@ -374,6 +370,7 @@ class AppDelegate: NSObject,
private func syncMenuShortcuts(_ config: Ghostty.Config) {
guard ghostty.readiness == .ready else { return }
+ syncMenuShortcut(config, action: "check_for_updates", menuItem: self.menuCheckForUpdates)
syncMenuShortcut(config, action: "open_config", menuItem: self.menuOpenConfig)
syncMenuShortcut(config, action: "reload_config", menuItem: self.menuReloadConfig)
syncMenuShortcut(config, action: "quit", menuItem: self.menuQuit)
@@ -791,6 +788,10 @@ class AppDelegate: NSObject,
ghostty.reloadConfig()
}
+ @IBAction func checkForUpdates(_ sender: Any?) {
+ updaterController.checkForUpdates(sender)
+ }
+
@IBAction func newWindow(_ sender: Any?) {
terminalManager.newWindow()
diff --git a/macos/Sources/App/macOS/MainMenu.xib b/macos/Sources/App/macOS/MainMenu.xib
index 724f21355..828e82bd0 100644
--- a/macos/Sources/App/macOS/MainMenu.xib
+++ b/macos/Sources/App/macOS/MainMenu.xib
@@ -76,6 +76,9 @@