-
-
Notifications
You must be signed in to change notification settings - Fork 330
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Opening alt-tab during a Space transition is a bad UX #92
Labels
bug
Something isn't working
Comments
lwouis
changed the title
Opening alt-tab during a Space transition can break things
Opening alt-tab during a Space transition is a bad UX
Dec 27, 2019
Merged
lwouis
pushed a commit
that referenced
this issue
Jan 14, 2020
lwouis
pushed a commit
that referenced
this issue
Jan 20, 2020
lwouis
pushed a commit
that referenced
this issue
Jan 23, 2020
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [2.4.0](v2.3.4...v2.4.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [3.0.0](v2.3.4...v3.0.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * bump major version ([3c3b18c](3c3b18c)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * bump major version * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [3.0.0](v2.3.4...v3.0.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * bump major version ([3c3b18c](3c3b18c)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * bump major version * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [3.0.0](v2.3.4...v3.0.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * bump major version ([3c3b18c](3c3b18c)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * bump major version * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [3.0.0](v2.3.4...v3.0.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * bump major version ([3c3b18c](3c3b18c)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * bump major version * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [3.0.0](v2.3.4...v3.0.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * bump major version ([3c3b18c](3c3b18c)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * bump major version * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
lwouis
pushed a commit
that referenced
this issue
Mar 10, 2020
# [3.0.0](v2.3.4...v3.0.0) (2020-03-10) ### Bug Fixes * a title change often means the content has change ([b8d6bc9](b8d6bc9)) * add rough downscaling when there are many windows (closes [#69](#69)) ([ced5ee6](ced5ee6)) * added releases link and aligned layout left on tab 3 ([6bb73dc](6bb73dc)) * also codesign debug builds ([a5f9911](a5f9911)) * app launched while in fullscreen shows first window ([c5cbcdb](c5cbcdb)), closes [/github.com//pull/114#issuecomment-576384795](https://github.com//github.com/lwouis/alt-tab-macos/pull/114/issues/issuecomment-576384795) * auto-update preferences sync with os from launch ([b3fb222](b3fb222)) * avoid rendering if app is not used ([fdddb0f](fdddb0f)) * better float rounding = sharper cell contents ([9a96e49](9a96e49)) * better focus/order for preferences (closes [#80](#80)) ([4a8bdeb](4a8bdeb)) * better textareas ([efc9bd3](efc9bd3)) * bring back the window delay that regressed with v2 ([bb95e55](bb95e55)) * compare correctly since pid can go away when an app dies ([4ded030](4ded030)) * compiler warnings ([1faa74c](1faa74c)) * cpu and memory leaks (see discussion in [#117](#117)) ([52626aa](52626aa)) * dock being shown was blocking alt-tab ([2826a1b](2826a1b)) * don't show floating windows + efficiencies ([3f8e3ea](3f8e3ea)) * don't show ui on fast trigger ([f8e1b00](f8e1b00)) * don't trigger ui refreshes if the app is not active ([b9a0152](b9a0152)) * don't upscale thumbnails of small windows ([0bc7472](0bc7472)) * feedback token injected during ci ([effdc5f](effdc5f)) * getting sparkle ready for release ([9f1f522](9f1f522)) * handle on-all-spaces windows better ([4abe9f3](4abe9f3)) * ignore build folder ([a2bb19f](a2bb19f)) * ignore trigger shortcuts if mission control is active ([b03b0aa](b03b0aa)) * initial discovery when single space was glitching the os ([3cd4b6d](3cd4b6d)) * keyboard shortcuts didn't work without a menu ([cf92dc1](cf92dc1)) * layout is now correct; also removed layout preferences for now ([a1b5266](a1b5266)) * layout regression introduced by eed0353 ([bdc41be](bdc41be)) * layout was incorrect resulting in thumbnails clipping ([fd906f4](fd906f4)) * letsmove was not active on release builds ([6ac0658](6ac0658)) * list temporary AXDialog windows like activity monitor ([51a8838](51a8838)) * more robust screen-recording permission check ([ce574a2](ce574a2)) * notarization issues ([d125dd3](d125dd3)) * observer leak would throw and crash the app sometimes ([9ca28eb](9ca28eb)) * only test permissions on the correct os versions ([4612e37](4612e37)) * open alt-tab during space transitions (closes [#92](#92)) ([141562d](141562d)) * prevent visual flickering (closes [#115](#115)) ([9a8c83e](9a8c83e)) * quitting apps was not properly removing apps from the list ([10b2c71](10b2c71)) * quitting multiple apps would refresh the ui multiple times ([bfc2700](bfc2700)) * regression on collectionviewitem titles (not showing) ([8cb6d86](8cb6d86)) * remove debug colors ([e588d55](e588d55)) * remove unnecessary/wrong layout code ([9e719e6](9e719e6)) * sharper images on non-retina displays ([1bb4d2a](1bb4d2a)) * smaller payload for the icons ([bddb6fa](bddb6fa)) * some apps have messy launch behavior ([7eb216d](7eb216d)), closes [/github.com//issues/117#issuecomment-583868046](https://github.com//github.com/lwouis/alt-tab-macos/issues/117/issues/issuecomment-583868046) * some apps should retry observing until it works ([0c731f4](0c731f4)) * using floor() everywhere to avoid blurry rendering ([2a36196](2a36196)) ### Code Refactoring * complete rework of the internals ([547311e](547311e)), closes [#93](#93) [#24](#24) [#117](#117) [/github.com//issues/45#issuecomment-571898826](https://github.com//github.com/lwouis/alt-tab-macos/issues/45/issues/issuecomment-571898826) ### Features * add an app icon and menubar icon (closes [#38](#38)) ([a345dae](a345dae)) * add back the preferences for the new layout algo ([d52eb6d](d52eb6d)) * add debug profile to feedback message ([a14f965](a14f965)) * add feedback button on about window ([4046136](4046136)) * add in-app feedback form (closes [#145](#145)) ([725a030](725a030)) * add licence to about page ([cb66b79](cb66b79)) * add preference to start at login (closes [#159](#159)) ([982fe6c](982fe6c)) * adding cocoapods and letsmove/sparkle ([606bae7](606bae7)) * better packing; tall thumbnails are 1/2 the width of wide ones ([e34e3b1](e34e3b1)) * bump major version ([3c3b18c](3c3b18c)) * cleaner layout and explanation text ([fd3e768](fd3e768)) * debug build has code-signing to preserve permissions ([34a32f3](34a32f3)) * divide preferences by topic (closes [#130](#130)) ([291f872](291f872)) * drag-and-drop files on the ui (closes [#74](#74)) ([e1e3633](e1e3633)) * german and spanish localization ([6c440a7](6c440a7)) * improved translations ([debd3ae](debd3ae)) * integrate sparkle for auto-updates (closes [#131](#131)) ([069382c](069382c)) * localization (closes [#134](#134)) ([36e4bb0](36e4bb0)) * make system calls more parallel (closes [#160](#160)) ([a29b39f](a29b39f)) * migrate to standard os-backed preferences (closes [#161](#161)) ([e28c43f](e28c43f)) * more appealing presentation + minor refac ([67f291d](67f291d)) * nicer layout for about preferences ([03a5f77](03a5f77)) * quit button is clearer with explicit mention of the name ([6b6d748](6b6d748)) * replace default copyright with correct licence ([60b49ea](60b49ea)) * separating the quit button as it is a special case ([9fa0c06](9fa0c06)) * slightly increase contrast (mitigates [#82](#82)) ([291770e](291770e)) * support macos "sudden termination" ([671fdab](671fdab)), closes [/developer.apple.com/documentation/foundation/processinfo#1651129](https://github.com//developer.apple.com/documentation/foundation/processinfo/issues/1651129) ### BREAKING CHANGES * bump major version * Instead of asking the OS about the state of the whole system on trigger (what we do today; hard to do fast), or asking the state of the whole system on a timer (what HyperSwitch does today; inaccurate) - instead of one of 2 approaches, v3 observes the Accessibility events such as "an app was launched", "a window was closed". This means we build a cache as we receive these events in the background, and when the user trigger the app, we can show accurate state of the windows instantly. Of course there is no free lunch, so this approach has its own issues. However from my work on it from the past week, I'm very optimistic! The thing I'm the most excited about actually is not the perf (because on my machine even v2 is instant; I have a recent macbook and no 4k displays), but the fact that we will finally have the thumbnails in order of recently-used to least-recently-used, instead of the order of their stack (z-index) on the desktop. It's a big difference! There are many more limitations that are no longer applying also with this approach.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Spaces support was added in v2. During development I noticed an edge-case: if you invoke alt-tab during the space transition animation, it will bring alt-tab window on the previous space, then when you release the shortcut, it sometimes send the window in the void: you can never access it again by any mean.
At trigger time, alt-tab records the current space. I think when done during a space transition, it records the "transition space". I read in another codebase that macOS has a fake space for transition periods.
Even if this impactful bug doesn't happen, the UX is still bad because the alt-tab window is on the previous screen, but the user is still interacting with it, so when they release they get an unexpected behaviour.
HyperSwitch works around this issue by buffering the shortcut, and only triggering when the space transition is done. I think that's the way to go. Either that or ignoring triggers during the transition.
The text was updated successfully, but these errors were encountered: