Skip to content
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

Internationalize the app #134

Closed
lwouis opened this issue Feb 5, 2020 · 3 comments
Closed

Internationalize the app #134

lwouis opened this issue Feb 5, 2020 · 3 comments
Labels
enhancement New feature or request

Comments

@lwouis
Copy link
Owner

lwouis commented Feb 5, 2020

The app has text in English for:

  • Menubar
  • Preferences window
  • Feedback window

It would be nice to provide these in other languages. I think a first batch could be done using Google Translate. Maybe some cheap translation service could be used too. The scope is very scope so cost would be marginal.

@lwouis lwouis added the enhancement New feature or request label Feb 5, 2020
@lwouis
Copy link
Owner Author

lwouis commented Feb 7, 2020

I started looking into it. I found it very confusing looking online. I learned about the complex history of localization with Apple and XCode.

I want to go with xliff files since they are industry standard.

I checked a few OSS tools to edit xliff. Nothing was great. Weblate seems interesting but is not meant to run locally but to be hosted on some server. The other remarkable player is POEditor. They actually have free plans for OSS! I applied :)

@lwouis
Copy link
Owner Author

lwouis commented Feb 7, 2020

Just received this email:

Congratulations lwouis,

alt-tab-macos has been approved for a free localization project.
Enjoy localizing and don't be shy to spread the word that POEditor supports the open source movement!

Cheers,
The POEditor Team

@rbnis
Copy link
Contributor

rbnis commented Feb 7, 2020

I'd be more than happy to provide the german localization :)

lwouis pushed a commit that referenced this issue Feb 7, 2020
lwouis pushed a commit that referenced this issue Feb 7, 2020
lwouis pushed a commit that referenced this issue Feb 9, 2020
@lwouis lwouis mentioned this issue Feb 14, 2020
@lwouis lwouis closed this as completed in 36e4bb0 Mar 10, 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
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants