perf: reduce launcher presentation latency
This commit is contained in:
@@ -35,6 +35,8 @@ Conjure searches the system and user Applications folders. Hover over a result t
|
|||||||
|
|
||||||
Conjure runs without a Dock icon. Dismissing the launcher leaves it running; reopen it from Finder or use your configured global shortcut.
|
Conjure runs without a Dock icon. Dismissing the launcher leaves it running; reopen it from Finder or use your configured global shortcut.
|
||||||
|
|
||||||
|
The launcher opens without a window animation; Settings is constructed only when needed, not before the launcher appears.
|
||||||
|
|
||||||
### Controls
|
### Controls
|
||||||
|
|
||||||
| Action | Control |
|
| Action | Control |
|
||||||
|
|||||||
@@ -98,7 +98,13 @@ private final class ApplicationDelegate: NSObject, NSApplicationDelegate {
|
|||||||
case .command(let command): self?.launcher.toggle(command: command)
|
case .command(let command): self?.launcher.toggle(command: command)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private lazy var settings = SettingsWindowController(shortcuts: shortcuts)
|
private lazy var settings = makeSettings()
|
||||||
|
|
||||||
|
private func makeSettings() -> SettingsWindowController {
|
||||||
|
let controller = SettingsWindowController(shortcuts: shortcuts)
|
||||||
|
controller.retryUninstallRecovery = { [uninstaller] in await uninstaller.recover() }
|
||||||
|
return controller
|
||||||
|
}
|
||||||
private var startupShortcutError: String?
|
private var startupShortcutError: String?
|
||||||
private var startupRecoveryMessage: String?
|
private var startupRecoveryMessage: String?
|
||||||
|
|
||||||
@@ -117,7 +123,6 @@ private final class ApplicationDelegate: NSObject, NSApplicationDelegate {
|
|||||||
quitItem.target = NSApplication.shared
|
quitItem.target = NSApplication.shared
|
||||||
launcher.window?.contentView?.menu = menu
|
launcher.window?.contentView?.menu = menu
|
||||||
let loginLaunch = isLoginLaunch
|
let loginLaunch = isLoginLaunch
|
||||||
settings.retryUninstallRecovery = { [uninstaller] in await uninstaller.recover() }
|
|
||||||
Task {
|
Task {
|
||||||
let report = await uninstaller.recover()
|
let report = await uninstaller.recover()
|
||||||
guard !report.messages.isEmpty else { return }
|
guard !report.messages.isEmpty else { return }
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ final class LauncherWindowController: NSWindowController, NSWindowDelegate, NSSe
|
|||||||
defer: false
|
defer: false
|
||||||
)
|
)
|
||||||
window.title = "Conjure"
|
window.title = "Conjure"
|
||||||
|
window.animationBehavior = .none
|
||||||
window.appearance = NSAppearance(named: .darkAqua)
|
window.appearance = NSAppearance(named: .darkAqua)
|
||||||
window.backgroundColor = .clear
|
window.backgroundColor = .clear
|
||||||
window.isOpaque = false
|
window.isOpaque = false
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
- [ ] conjure should pop up quicker when launching than it currently does.
|
- [x] conjure should pop up quicker when launching than it currently does.
|
||||||
- [ ] conjure emoji selector should have an extra action (default) that both copies and tries to paste the selected emoji into the application that was focused when the conjure window was spawned.
|
- [ ] conjure emoji selector should have an extra action (default) that both copies and tries to paste the selected emoji into the application that was focused when the conjure window was spawned.
|
||||||
- [ ] add a notes app inspired by raycast notes
|
- [ ] add a notes app inspired by raycast notes
|
||||||
- [ ] improve on the conjure translation command
|
- [ ] improve on the conjure translation command
|
||||||
Reference in New Issue
Block a user