902 Commits
Author SHA1 Message Date
lwouis f3fe535acb feat: better support adobe apps (closes #5707) 2026-06-04 21:56:59 +02:00
lwouis cddc89dd21 fix: better handle some shortcut conflicts (related to 3059dc23) 2026-06-04 13:55:22 +02:00
lwouis 83b5ddc091 refactor: move debug-menu into qa-menu, and update it 2026-06-03 21:18:31 +02:00
lwouis 7d60d55395 fix: very minor memory leak 2026-06-03 21:17:45 +02:00
lwouis e0b1778db7 fix: improve processing of accessibility events (closes #5665) 2026-06-01 08:34:12 +02:00
lwouis 9a9994bf28 fix: only show screen recording callout when it's needed (closes #5623) 2026-06-01 08:34:12 +02:00
lwouis a39816e303 perf: carry (pid, wid) in AX subscription refcon to skip identity calls
AXObserverAddNotification's refcon was always nil. Bake the owning identity into it at subscribe time so the AX callback gets (pid, wid) for free, instead of an element.pid()/cgWindowId() round-trip per event. Window-level subscriptions carry a real wid; app-level subscriptions carry wid 0, so focus/main/created still resolve their per-event subject window from the element. Notably this gives a reliable wid for kAXUIElementDestroyed, which previously had to query an already-dead element.
2026-05-30 21:51:13 +02:00
lwouis c143ec2f0c fix: settings window search and controls editor edge-cases 2026-05-30 19:38:20 +02:00
lwouis 83f8ae18fa refactor: remove very minor leak or flagged-as-leak 2026-05-28 21:04:48 +02:00
lwouis f006b26931 refactor: improve specs/tests coverage 2026-05-28 19:28:49 +02:00
lwouis e4a306dc8c refactor: prevent appkit rare crashes due to in-flight tooltips 2026-05-28 14:11:14 +02:00
lwouis c75aac585a fix: command+tab would sometimes not bind correctly (closes #5653) 2026-05-28 14:00:57 +02:00
lwouis 60cca89bb8 refactor: add specs and coverage; move tests close to files 2026-05-28 14:00:57 +02:00
lwouis 0899f61654 fix: focus issues with show-main-window setting (closes #5684) 2026-05-28 13:56:51 +02:00
lwouis 3059dc2356 perf: improve performance of the settings window 2026-05-28 13:56:50 +02:00
lwouis 5bd746d342 fix: preserve switcher selection across reorders (closes #5665)
Async AX events (focused-window changed, app activated) can fire during
the switcher's show path and reorder Windows.list under the panel. The
old updateSelectedWindow short-circuited to the initial-pick path
whenever the lowest-lastFocusOrder window changed mid-show, throwing
away the user's selectedTarget and re-picking the default. Visible slot
swap plus highlight jump; if the user released keys early they landed
on the wrong window.

Extract a pure-function kernel (SelectionResolver) covering the full
selection state machine and replace updateSelectedWindow with a thin
snapshot/decide/apply wrapper. The actual fix is dropping the
focusedWindowChangedWhileShowing arm of shouldSelectFromScratch: the
list still reorders (Photoshop finishing launch is fresh state the
user wants reflected), but the existing target-by-id lookup re-resolves
the user's pick at its new index instead of being skipped.

28 new SelectionResolverTests lock down every selection path: initial
pick rules, target preservation across reorders (#5665 regressions),
target removal, search-mode flags, edge cases.

Also adds minimal Appearance and SettingsSearchIndex stubs to Mocks.swift
so the unit-test target builds. ProBadgeView and LightLabel referenced
those types without the underlying source being in the test target.
2026-05-28 13:56:50 +02:00
lwouis 9a47672920 refactor: log results of carbon shortcut apis (#5653) 2026-05-28 13:56:49 +02:00
lwouis a354fdecc8 fix: always persist menubar icon removal from dragging (#5654) 2026-05-28 13:56:49 +02:00
lwouis d483c5aa88 fix: text shortcuts like cmd+a work in search mode (closes #5675) 2026-05-28 13:56:48 +02:00
lwouis 30eb5f2116 feat: do not repeat title if window title is app name (closes #5672) 2026-05-28 13:56:48 +02:00
lwouis 04346790b8 fix: better handle electron apps hidden windows (closes #5449) 2026-05-25 11:37:54 +02:00
lwouis a8098c39db fix: improve tab detection (closes #5618) 2026-05-25 10:36:56 +02:00
lwouis 49778089ea fix: rare crash when assigning shortcuts with arrow keys 2026-05-25 09:35:27 +02:00
lwouis f4a54c8f1b fix: rare crash when capturing window thumbnails 2026-05-24 22:00:29 +02:00
lwouis 007edc624e fix: very rare crash on quit 2026-05-24 21:14:39 +02:00
lwouis 3a48a13cb5 fix: cmd key could be stuck after switching (closes #5650) 2026-05-22 18:53:59 +02:00
lwouis 9147a4a864 feat: introducing alt-tab pro!
BREAKING CHANGE: announcement: https://github.com/lwouis/alt-tab-macos/discussions/5533

* improved performance, especially switcher responsiveness
* reduced battery usage even more
* reduced ram usage (closes #5450, closes #5539, closes #5627)
* reduced app size even more
* polished many aspects of the ui; align more with liquid glass
* better handle "ghost" windows (closes #5509)
* fix issue with wrong window order (closes #5492)
* escape closes the switcher on tahoe (closes #5585)
* improve search matches (closes #5488)
* localizations trimmed and reviewed entirely (closes #5583)
* highlight matching app icons when searching, in addition to text
* better settings import/export
* reworked "send feedback" experience
* reworked exceptions ui (closes #5482)
* per-shortcut settings (closes #5313)
* rework about window
2026-05-21 10:21:25 +02:00
lwouis da9a46bf49 feat: remove the need to add email in feedback form 2026-04-13 10:53:25 +02:00
lwouis 9c5b9630e8 feat: show usage stats in the about-window 2026-04-13 10:31:08 +02:00
lwouis 8e07d261b9 feat: add local usage stats for curious users 2026-04-08 22:02:28 +02:00
lwouis 47e6cbd987 fix: rare crash sometimes when opening the app twice quickly 2026-04-05 17:33:12 +02:00
lwouis 317d2ff78a fix: rare crash when scrolling some settings window views 2026-04-05 17:22:40 +02:00
lwouis d5152fba44 fix: about-alttab window would crash when opened (closes #5491) 2026-04-05 08:49:28 +02:00
lwouis 18b523e458 ci: migrate from netlify to cloudflare 2026-04-04 15:36:46 +02:00
lwouis 41d608efda fix: show more apps when adding an exception (closes #5463) 2026-03-29 18:22:52 +02:00
lwouis f1c59a2748 refactor: small improvements to concurrency 2026-03-28 17:21:10 +01:00
lwouis 0e897b0678 refactor: program main-menu instead of .xib
avoids SDK logs
not sure if easier to maintain though
2026-03-28 12:07:17 +01:00
lwouis 7a2a5482ae feat: improved detection of windows and apps
* find more windows and apps (e.g. apps that take 30s to launch)
* keep windows and apps more up-to-date
* more efficient, uses fewer resources
2026-03-28 11:57:48 +01:00
lwouis 170bd673e0 feat: better recognizes tabbed windows 2026-03-28 11:57:48 +01:00
lwouis ff1e92303a fix: better handle bugged apps with hidden windows (closes #5296) 2026-03-28 11:57:48 +01:00
lwouis edbbf2082c perf: improve badges retrieval 2026-03-28 11:57:48 +01:00
lwouis 1ab419dd09 fix: improve reliability after sleep/wake 2026-03-28 11:57:48 +01:00
lwouis 6bd5f26e1c refactor: improve logs for application discrimination 2026-03-24 11:35:05 +01:00
lwouis 5ed6c1d9ce feat: new setting to not capture windows in background (closes #5337)
Also closes #5371
2026-03-22 17:19:19 +01:00
lwouis a1f8b18888 fix: panel may re-center when searching 2026-03-22 17:19:18 +01:00
lwouis 9f3e20a826 feat: show better ui when there are no window (closes #283) 2026-03-22 17:19:18 +01:00
lwouis 56c1927584 fix: allow quitting multiple apps in a row (follow-up on #5421) 2026-03-20 21:52:24 +01:00
lwouis 7dd11cff01 feat: stabilize ui during search (closes #5431) 2026-03-20 21:52:24 +01:00
lwouis 15ede93868 feat: allow next-window shortcut without modifiers (closes #5433) 2026-03-20 21:52:23 +01:00
lwouis 4502e8bd15 refactor: improve logging of window discriminator logic 2026-03-20 21:52:23 +01:00