diff --git a/README.md b/README.md index b6af615..71e2ad6 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,8 @@ The Applications shortcut always targets the application launcher, not the last- For Command-Space, select **Applications** and choose **Use ⌘Space**. If it conflicts with Spotlight, Input Sources, or another app, change that binding in System Settings first. Conjure never changes macOS shortcuts for you. Shortcuts work while Conjure is running; they do not start a quit app or require Accessibility permission. +On macOS 27, [Siri AI uses Command-Shift-Space to select a window for screen capture](https://support.apple.com/en-is/guide/mac-help/iphmk4p88mkuky/mac). That system reservation can conflict even though it is not listed under Spotlight or Input Sources. Use another binding unless you have freed the Siri shortcut. + Install Conjure in `/Applications`, then enable **Launch at login** in Settings to start it in the background. If macOS requires approval, use **Open Login Items Settings…** to grant it. ## Calculator and conversions diff --git a/Sources/Conjure/LauncherWindowController.swift b/Sources/Conjure/LauncherWindowController.swift index 0ff74f6..7eaee25 100644 --- a/Sources/Conjure/LauncherWindowController.swift +++ b/Sources/Conjure/LauncherWindowController.swift @@ -38,6 +38,14 @@ final class LauncherWindowController: NSWindowController, NSWindowDelegate, NSSe private var isCommandOpen: Bool { translation != nil || emojiPicker != nil } private var activeCommand: Application.Command? private var pendingPresentation: (() -> Void)? + private static let emojiIcon: NSImage = { + let text = NSAttributedString(string: "🤔", attributes: [.font: NSFont.systemFont(ofSize: 28)]) + let size = text.size() + return NSImage(size: size, flipped: false) { _ in + text.draw(at: .zero) + return true + } + }() init(history: LaunchHistory = LaunchHistory(), uninstaller: ApplicationUninstaller = ApplicationUninstaller()) { self.history = history @@ -600,8 +608,9 @@ final class LauncherWindowController: NSWindowController, NSWindowDelegate, NSSe cell.locationLabel.isHidden = true cell.kindLabel.attributedStringValue = history.isFavorite(entry) ? ApplicationCell.favoriteCommandKind : ApplicationCell.commandKind - cell.imageView?.image = NSImage(systemSymbolName: entry.command == .emoji ? "face.smiling" : "character.bubble", accessibilityDescription: nil) - cell.imageView?.contentTintColor = SunsetPalette.accent + cell.imageView?.image = entry.command == .emoji ? Self.emojiIcon + : NSImage(systemSymbolName: "character.bubble", accessibilityDescription: nil) + cell.imageView?.contentTintColor = entry.command == .emoji ? nil : SunsetPalette.accent cell.toolTip = entry.command == .emoji ? "Search and copy emoji" : "Translate English to Japanese" } else { let application = results[row] diff --git a/Sources/ConjureKit/GlobalShortcut.swift b/Sources/ConjureKit/GlobalShortcut.swift index 7a4912e..f1beb40 100644 --- a/Sources/ConjureKit/GlobalShortcut.swift +++ b/Sources/ConjureKit/GlobalShortcut.swift @@ -108,7 +108,7 @@ enum ShortcutError: LocalizedError { case .invalidSavedShortcut: return "The saved shortcut is invalid. Choose a new shortcut or clear it in Conjure Settings." case .systemConflict(let shortcut): - return "\(shortcut) is already an enabled macOS shortcut. Free it in System Settings → Keyboard → Keyboard Shortcuts (check Spotlight and Input Sources), or choose another shortcut. Conjure will not change your system settings." + return "\(shortcut) is already an enabled macOS shortcut. Check System Settings → Keyboard → Keyboard Shortcuts, including Spotlight and Input Sources. On macOS 27, Command-Shift-Space is also reserved for Siri AI screen capture. Choose another shortcut or change the system binding; Conjure will not change your system settings." case .inAppConflict(let shortcut, let action): return "\(shortcut) is already used by Conjure for \(action). Choose another shortcut." case .duplicate(let shortcut, let destination):