feat: hide launcher from the Dock

This commit is contained in:
2026-10-11 23:56:01 +02:00
parent 7aed5c323c
commit b8f30cb6fc
3 changed files with 15 additions and 3 deletions
+5 -2
View File
@@ -34,14 +34,17 @@ Open `Package.swift` in Xcode to edit the project. Use the bundled app above to
- Up/Down or Control-K/Control-J changes the selection without leaving search or modifying its text. - Up/Down or Control-K/Control-J changes the selection without leaving search or modifying its text.
- Return, keypad Enter, the Open Application button, or a double-click opens the selection. - Return, keypad Enter, the Open Application button, or a double-click opens the selection.
- Escape or Command-W dismisses the launcher and restores the previously active application. Switching focus away dismisses it without stealing focus back. - Escape or Command-W dismisses the launcher and restores the previously active application. Switching focus away dismisses it without stealing focus back.
- Reopen from Finder or the Dock to show it again with an empty search. Dismissal leaves the process running; Command-Q quits it. - Reopen from Finder to show it again with an empty search. Dismissal leaves the process running; Command-Q quits it.
- Standard macOS text-editing shortcuts work in the search field. - Standard macOS text-editing shortcuts work in the search field.
- Command-comma opens the native Settings window. - Command-comma opens the native Settings window.
- Right-click the launcher background for Settings and Quit.
- Drag the panel background to move it. - Drag the panel background to move it.
Conjure runs as a native accessory app: no Dock icon, app-switcher entry, or menu-bar menus. Keyboard menu shortcuts remain available while its window is focused.
## Global shortcut ## Global shortcut
Open **Conjure → Settings…** (`⌘,`), click **Record Shortcut…**, and press a combination containing Command, Option, or Control. Shift can be added. The shortcut is saved locally and restored when Conjure starts. No shortcut is claimed until you choose one; **Clear** disables it. Show the launcher and press `⌘,`, or right-click its background and choose **Settings…**. Click **Record Shortcut…** and press a combination containing Command, Option, or Control. Shift can be added. The shortcut is saved locally and restored when Conjure starts. No shortcut is claimed until you choose one; **Clear** disables it.
For Command-Space, click **Use ⌘Space**. If it conflicts, open **System Settings → Keyboard → Keyboard Shortcuts** and disable or change the conflicting Spotlight or Input Sources binding, or another app's shortcut, then try again. The Settings window includes an **Open Keyboard Settings…** button. Conjure reports conflicts rather than modifying macOS preferences, and a failed change preserves your working shortcut. For Command-Space, click **Use ⌘Space**. If it conflicts, open **System Settings → Keyboard → Keyboard Shortcuts** and disable or change the conflicting Spotlight or Input Sources binding, or another app's shortcut, then try again. The Settings window includes an **Open Keyboard Settings…** button. Conjure reports conflicts rather than modifying macOS preferences, and a failed change preserves your working shortcut.
+2
View File
@@ -22,6 +22,8 @@
<string>1</string> <string>1</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>14.0</string> <string>14.0</string>
<key>LSUIElement</key>
<true/>
<key>NSHighResolutionCapable</key> <key>NSHighResolutionCapable</key>
<true/> <true/>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
+8 -1
View File
@@ -8,7 +8,7 @@ struct ConjureApp {
let application = NSApplication.shared let application = NSApplication.shared
let delegate = ApplicationDelegate() let delegate = ApplicationDelegate()
application.delegate = delegate application.delegate = delegate
application.setActivationPolicy(.regular) application.setActivationPolicy(.accessory)
application.mainMenu = makeMainMenu(delegate: delegate) application.mainMenu = makeMainMenu(delegate: delegate)
// NSApplication holds its delegate weakly. // NSApplication holds its delegate weakly.
@@ -95,6 +95,13 @@ private final class ApplicationDelegate: NSObject, NSApplicationDelegate {
private lazy var settings = SettingsWindowController(shortcut: shortcut) private lazy var settings = SettingsWindowController(shortcut: shortcut)
func applicationDidFinishLaunching(_ notification: Notification) { func applicationDidFinishLaunching(_ notification: Notification) {
let menu = NSMenu()
let settingsItem = menu.addItem(withTitle: "Settings…", action: #selector(showSettings(_:)), keyEquivalent: ",")
settingsItem.target = self
menu.addItem(.separator())
let quitItem = menu.addItem(withTitle: "Quit Conjure", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")
quitItem.target = NSApplication.shared
launcher.window?.contentView?.menu = menu
launcher.present() launcher.present()
do { do {
try shortcut.start() try shortcut.start()