Commit Graph
190 Commits
Author SHA1 Message Date
louis.pontoise 4ded030a35 fix: compare correctly since pid can go away when an app dies 2020-03-10 14:00:37 +09:00
louis.pontoise 5877f34fe4 refactor: cleaner code 2020-03-10 14:00:37 +09:00
louis.pontoise 10b2c714ca fix: quitting apps was not properly removing apps from the list
Instead of using the PSN, we now use .equals() to compare 2 NSRunningApplication as recommended by Apple docs
2020-03-10 14:00:37 +09:00
louis.pontoise bfc27008cc fix: quitting multiple apps would refresh the ui multiple times 2020-03-10 14:00:37 +09:00
louis.pontoise 9ca28eb2d8 fix: observer leak would throw and crash the app sometimes 2020-03-10 14:00:37 +09:00
louis.pontoise 9a8c83e39d fix: prevent visual flickering (closes #115) 2020-03-10 14:00:37 +09:00
louis.pontoise b9a0152f85 fix: don't trigger ui refreshes if the app is not active 2020-03-10 14:00:37 +09:00
louis.pontoise b03b0aa22e fix: ignore trigger shortcuts if mission control is active 2020-03-10 14:00:37 +09:00
louis.pontoise 547311ea5d refactor: complete rework of the internals
closes #93 closes #24 closes #117

BREAKING CHANGE: 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.

More context: https://github.com/lwouis/alt-tab-macos/issues/45#issuecomment-571898826
2020-03-10 14:00:37 +09:00
semantic-release-bot 22354da5ea chore(release): 2.3.4 [skip ci]
## [2.3.4](https://github.com/lwouis/alt-tab-macos/compare/v2.3.3...v2.3.4) (2020-01-22)

### Bug Fixes

* escape key was absorbed by the inactive app (closes [#123](https://github.com/lwouis/alt-tab-macos/issues/123)) ([5260619](https://github.com/lwouis/alt-tab-macos/commit/5260619))
2020-01-22 10:55:32 +00:00
louis.pontoise 5260619fe1 fix: escape key was absorbed by the inactive app (closes #123) 2020-01-22 19:51:48 +09:00
semantic-release-bot 97798c3443 chore(release): 2.3.3 [skip ci]
## [2.3.3](https://github.com/lwouis/alt-tab-macos/compare/v2.3.2...v2.3.3) (2020-01-21)

### Bug Fixes

* touch bar's escape key works on mbp 15 2019 (closes [#119](https://github.com/lwouis/alt-tab-macos/issues/119)) ([eda6b7e](https://github.com/lwouis/alt-tab-macos/commit/eda6b7e))
2020-01-21 00:30:22 +00:00
Phung Tuan Hoang eda6b7e9d9 fix: touch bar's escape key works on mbp 15 2019 (closes #119) 2020-01-21 09:27:47 +09:00
semantic-release-bot 5b8a9110db chore(release): 2.3.2 [skip ci]
## [2.3.2](https://github.com/lwouis/alt-tab-macos/compare/v2.3.1...v2.3.2) (2020-01-05)

### Bug Fixes

* app crashes when no windows are open ([cecc53a](https://github.com/lwouis/alt-tab-macos/commit/cecc53a))
2020-01-05 04:32:51 +00:00
Robinhuett cecc53a0e0 fix: app crashes when no windows are open 2020-01-05 13:30:21 +09:00
semantic-release-bot 4317bedd9f chore(release): 2.3.1 [skip ci]
## [2.3.1](https://github.com/lwouis/alt-tab-macos/compare/v2.3.0...v2.3.1) (2020-01-04)

### Bug Fixes

* selecting windows theme shows an error (closes [#109](https://github.com/lwouis/alt-tab-macos/issues/109)) ([01163c6](https://github.com/lwouis/alt-tab-macos/commit/01163c6))
2020-01-04 15:34:51 +00:00
louis.pontoise 01163c69fc fix: selecting windows theme shows an error (closes #109) 2020-01-05 00:32:13 +09:00
louis.pontoise 9f46e6561a docs: document private apis better for offscreen windows 2020-01-05 00:32:13 +09:00
semantic-release-bot efc27e915d chore(release): 2.3.0 [skip ci]
# [2.3.0](https://github.com/lwouis/alt-tab-macos/compare/v2.2.0...v2.3.0) (2020-01-04)

### Features

* handle hidden app windows (closes [#108](https://github.com/lwouis/alt-tab-macos/issues/108)) ([6fcf092](https://github.com/lwouis/alt-tab-macos/commit/6fcf092))
2020-01-04 13:59:39 +00:00
louis.pontoise 6fcf092690 feat: handle hidden app windows (closes #108) 2020-01-04 22:57:06 +09:00
semantic-release-bot fdb132779c chore(release): 2.2.0 [skip ci]
# [2.2.0](https://github.com/lwouis/alt-tab-macos/compare/v2.1.0...v2.2.0) (2020-01-03)

### Bug Fixes

* follow-up on pr-104; minimized windows are not on another space ([998c763](https://github.com/lwouis/alt-tab-macos/commit/998c763))

### Features

* **ux:** add option to hide the space number label ([51a193c](https://github.com/lwouis/alt-tab-macos/commit/51a193c))
2020-01-03 12:42:45 +00:00
louis.pontoise 998c76334e fix: follow-up on pr-104; minimized windows are not on another space 2020-01-03 21:40:06 +09:00
Aarni Koskela 51a193c1d4 feat(ux): add option to hide the space number label 2020-01-03 21:40:06 +09:00
semantic-release-bot 2adefd0830 chore(release): 2.1.0 [skip ci]
# [2.1.0](https://github.com/lwouis/alt-tab-macos/compare/v2.0.3...v2.1.0) (2020-01-03)

### Bug Fixes

* **ux:** simplify tool menu ([de7f428](https://github.com/lwouis/alt-tab-macos/commit/de7f428))
* issue in pr-104 where app would not show properly ([4d19015](https://github.com/lwouis/alt-tab-macos/commit/4d19015))
* small ux change on pr-104 ([6d2741a](https://github.com/lwouis/alt-tab-macos/commit/6d2741a))

### Features

* add menu option to pop up the selector window ([78428dc](https://github.com/lwouis/alt-tab-macos/commit/78428dc))
2020-01-03 11:21:24 +00:00
louis.pontoise 6d2741a766 fix: small ux change on pr-104 2020-01-03 20:18:31 +09:00
louis.pontoise 4d190150ac fix: issue in pr-104 where app would not show properly 2020-01-03 20:18:31 +09:00
Aarni Koskela 78428dc309 feat: add menu option to pop up the selector window 2020-01-03 20:18:31 +09:00
Aarni Koskela de7f428ba1 fix(ux): simplify tool menu 2020-01-03 20:18:31 +09:00
semantic-release-bot 15eb37b40e chore(release): 2.0.3 [skip ci]
## [2.0.3](https://github.com/lwouis/alt-tab-macos/compare/v2.0.2...v2.0.3) (2020-01-03)

### Bug Fixes

* better filtering of "actual" windows (closes 102) ([fcdce9c](https://github.com/lwouis/alt-tab-macos/commit/fcdce9c))
2020-01-03 10:47:07 +00:00
louis.pontoise fcdce9cbac fix: better filtering of "actual" windows (closes 102) 2020-01-03 19:44:26 +09:00
semantic-release-bot c69123b3d4 chore(release): 2.0.2 [skip ci]
## [2.0.2](https://github.com/lwouis/alt-tab-macos/compare/v2.0.1...v2.0.2) (2019-12-30)

### Bug Fixes

* space numbers are correctly removed if single space ([45ad43f](https://github.com/lwouis/alt-tab-macos/commit/45ad43f))
2019-12-30 09:39:53 +00:00
louis.pontoise 45ad43f347 fix: space numbers are correctly removed if single space 2019-12-30 18:37:22 +09:00
semantic-release-bot 1e210c382a chore(release): 2.0.1 [skip ci]
## [2.0.1](https://github.com/lwouis/alt-tab-macos/compare/v2.0.0...v2.0.1) (2019-12-30)

### Bug Fixes

* app crashes when invoked when there is 0 window (closes [#95](https://github.com/lwouis/alt-tab-macos/issues/95)) ([921590a](https://github.com/lwouis/alt-tab-macos/commit/921590a))
2019-12-30 00:52:30 +00:00
louis.pontoise 921590aec5 fix: app crashes when invoked when there is 0 window (closes #95) 2019-12-30 09:49:56 +09:00
semantic-release-bot 9c218f0cf7 chore(release): 2.0.0 [skip ci]
# [2.0.0](https://github.com/lwouis/alt-tab-macos/compare/v1.14.4...v2.0.0) (2019-12-27)

### Features

* display other spaces/minimized windows (closes [#14](https://github.com/lwouis/alt-tab-macos/issues/14)) ([3f5ea25](https://github.com/lwouis/alt-tab-macos/commit/3f5ea25)), closes [#11](https://github.com/lwouis/alt-tab-macos/issues/11) [#45](https://github.com/lwouis/alt-tab-macos/issues/45) [#62](https://github.com/lwouis/alt-tab-macos/issues/62)

### BREAKING CHANGES

* this brings huge changes to core parts of the codebase. It introduces the use of private APIs that hopefully are should be compatible from macOS 10.12+, but I couldn't test them. I reviewed the whole codebase to clean and improve on performance and readability
2019-12-27 05:50:21 +00:00
louis.pontoise 3f5ea25154 feat: display other spaces/minimized windows (closes #14)
Also closes #11 closes #45 closes #62

BREAKING CHANGE: this brings huge changes to core parts of the codebase. It introduces the use of private APIs that hopefully are should be compatible from macOS 10.12+, but I couldn't test them. I reviewed the whole codebase to clean and improve on performance and readability
2019-12-27 14:47:51 +09:00
semantic-release-bot b50fa5bd92 chore(release): 1.14.4 [skip ci]
## [1.14.4](https://github.com/lwouis/alt-tab-macos/compare/v1.14.3...v1.14.4) (2019-12-24)
2019-12-24 05:57:50 +00:00
louis.pontoise 74edb28108 docs: clarify which macos versions are supported 2019-12-24 14:55:11 +09:00
semantic-release-bot 87647b9507 chore(release): 1.14.3 [skip ci]
## [1.14.3](https://github.com/lwouis/alt-tab-macos/compare/v1.14.2...v1.14.3) (2019-11-12)

### Bug Fixes

* code compile compatibility with old macos ([10552a0](https://github.com/lwouis/alt-tab-macos/commit/10552a0))
2019-11-12 04:09:35 +00:00
Mariusz Bieniek 10552a017a fix: code compile compatibility with old macos
- .zero in Int/Int32/UInt32 is missing here
2019-11-12 13:07:03 +09:00
semantic-release-bot bdb51b604e chore(release): 1.14.2 [skip ci]
## [1.14.2](https://github.com/lwouis/alt-tab-macos/compare/v1.14.1...v1.14.2) (2019-11-11)
2019-11-11 06:22:17 +00:00
Louis Pontoise b363ba636d refactor: wrap cg and ax apis into classes to clarify codebase 2019-11-11 15:18:54 +09:00
semantic-release-bot 08549b4df4 chore(release): 1.14.1 [skip ci]
## [1.14.1](https://github.com/lwouis/alt-tab-macos/compare/v1.14.0...v1.14.1) (2019-11-11)

### Bug Fixes

* handle preference files with deprecated keys ([eabc327](https://github.com/lwouis/alt-tab-macos/commit/eabc327))
2019-11-11 06:15:42 +00:00
Louis Pontoise eabc327edc fix: handle preference files with deprecated keys 2019-11-11 15:12:54 +09:00
semantic-release-bot 95d882101d chore(release): 1.14.0 [skip ci]
# [1.14.0](https://github.com/lwouis/alt-tab-macos/compare/v1.13.0...v1.14.0) (2019-11-11)

### Features

* merge previous preferences onto new defaults (closes [#73](https://github.com/lwouis/alt-tab-macos/issues/73)) ([7ec3a50](https://github.com/lwouis/alt-tab-macos/commit/7ec3a50))
* reading preferences on disk will reset file if error (closes [#73](https://github.com/lwouis/alt-tab-macos/issues/73)) ([39677fe](https://github.com/lwouis/alt-tab-macos/commit/39677fe))
2019-11-11 06:05:08 +00:00
Louis Pontoise 7ec3a50f22 feat: merge previous preferences onto new defaults (closes #73) 2019-11-11 15:02:19 +09:00
Louis Pontoise 39677fe542 feat: reading preferences on disk will reset file if error (closes #73) 2019-11-11 14:39:40 +09:00
semantic-release-bot d275fc03ff chore(release): 1.13.0 [skip ci]
# [1.13.0](https://github.com/lwouis/alt-tab-macos/compare/v1.12.3...v1.13.0) (2019-11-11)

### Features

* improved PreferencesPanel UX, partially implements [#49](https://github.com/lwouis/alt-tab-macos/issues/49) ([59fc712](https://github.com/lwouis/alt-tab-macos/commit/59fc712))
* improved PreferencesPanel UX, partially implements [#49](https://github.com/lwouis/alt-tab-macos/issues/49) ([fa4d150](https://github.com/lwouis/alt-tab-macos/commit/fa4d150))
* improves PreferencesPanel UX, partially implements [#49](https://github.com/lwouis/alt-tab-macos/issues/49) ([21a4587](https://github.com/lwouis/alt-tab-macos/commit/21a4587))
* improves PreferencesPanel UX, partially implements [#49](https://github.com/lwouis/alt-tab-macos/issues/49) ([65327c2](https://github.com/lwouis/alt-tab-macos/commit/65327c2))
2019-11-11 00:12:07 +00:00
Mariusz Bieniek 21a4587e77 feat: improves PreferencesPanel UX, partially implements #49
implements requested changes from Code-Review and contains also refactoring, additions & improvements
- PreferencesPanel: does not handle NSApp.activate & .deactivate anymore
- PreferencesPanel: maxThumbnailsPerRow & windowDisplayDelay are now sliders
- PreferencesPanel: Sliders do not use tickmarks anymore (to allow finer settings)
- PreferencesPanel: tweaked Sliders min/max values
- PreferencesPanel: adds Hyperlink to KeyCodes Reference as suffix for Tab key control (with additional required sub-class of NSTextField)
- PreferencesPanel: adds makeSuffix() method for code clarity
2019-11-11 09:09:36 +09:00
Mariusz Bieniek 65327c2b89 feat: improves PreferencesPanel UX, partially implements #49
implements requested changes from Code-Review and contains also refactoring and more features and improvements
- Application Wide: changes all exceptions to NSError (required for error handling via sheet in panel)
- PreferencesPanel: adds display of current value of Sliders
- PreferencesPanel: adds validation with visualisation for TextFields (whitelist for KeyCode and ranges for maxScreenUsage & windowDisplayDelay) during editing, window open and close
- PreferencesPanel: adds error sheet (in-window modal) at all known possible errors to display error information and ask the user how to proceed
- PreferencesPanel: removes Restart button (and relaunch code in Application)
- PreferencesPanel: adds Preferences being now live
- PreferencesPanel: removes invisibleText workaround
- PreferencesPanel: adds TextField value save on each keyDown event (if valid and changed)
- PreferencesPanel: adds window activation/deactivation
- PreferencesPanel: changes label texts of some Preferences
- ...
2019-11-11 09:09:36 +09:00