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

feat: Introducing ability to track & navigate to windows from all applications across all spaces #234

Merged
merged 58 commits into from
Aug 2, 2024

Conversation

hasansultan92
Copy link
Contributor

@hasansultan92 hasansultan92 commented Jul 27, 2024

Describe your changes

Now able to track windows in other spaces. DockDoor is now able present windows in the window switcher and dock peek by the most recently used window.

No need to enable any settings, simply use your applications and the application will keep track of what window is open, modified, and closed/quit.

Private api usage: Minimal to no use of private api

@ejbills huge thanks for assisting!

Related issue number(s) and link(s)

This closes #232, closes #9, closes #196, closes #130, closes #6

Checklist before requesting a review

  • [.] I have performed a self-review of my code
  • [.] If this change affects core functionality, I have added a description highlighting the changes
  • [.] I have followed conventional commit guidelines

Core Functionality Changes

  1. We are now tracking windows individually and listening to the OS firing events/notifications for the windows modifying, created, and closed.

  2. We are also now able to sort the windows DockDoor has discovered and present them in the order of recently used. This allows the user to enable the window switcher with their favorite keybind which in return behaves similar to the CMD+Tab window switcher native to Mac OS.

  3. One can now switch on the fly without having the window switcher preview pop up to their most recently used window

ejbills and others added 30 commits July 4, 2024 16:55
…dle id when it isnt running in the current space, see comment)
getAllWindowInfosAsList made public to help debug
Use of Task.detached
@hasansultan92
Copy link
Contributor Author

hmm are we experiencing a github bug? 🤔

image

@ShlomoCode
Copy link
Contributor

@hasansultan92 I think now it should be visible

@hasansultan92
Copy link
Contributor Author

@ShlomoCode @ejbills can you guys tell me of the reference PWA that was used for #126? I would like to bring back the check and not allow a window to show up in our cache if it has no title.

@ShlomoCode
Copy link
Contributor

@hasansultan92 I installed the site https://www.geektime.co.il as a PWA (Chrome's 3 points > save and share > install the page as an application)

@ejbills ejbills merged commit 92dacbf into ejbills:main Aug 2, 2024
1 check passed
@ejbills ejbills deleted the window-tracker branch August 2, 2024 23:22
@stevehoek
Copy link

Love the addition of this feature, however it does not seem to work (no preview shown) on full screen remote-desktop style apps such as Microsoft Remote Desktop, RealVNC Viewer, Parsec.

@hasansultan92
Copy link
Contributor Author

Hello @stevehoek, Could you please confirm if this issue is specific to full-screen applications? If you open your browser and play a YouTube video in full-screen mode, the preview does not appear or is not updated?

@stevehoek
Copy link

@hasansultan92 full screen browser windows do show up correctly in the dock preview

@hasansultan92
Copy link
Contributor Author

Here is a screenshot of my open windows without the Microsoft Remote Desktop application in full-screen mode.
Screenshot 2024-08-03 at 19 57 43

Here is a screenshot of my open windows including the Microsoft Remote Desktop application in full-screen mode.
Screenshot 2024-08-03 at 19 59 04

What is the expectation you had @stevehoek?

@stevehoek
Copy link

@hasansultan92 I don't see any dock preview at all, for Microsoft Remote Desktop "connection center" or any of the remote desktop sessions. I don't full-screen the connection center itself, only the connected sessions.

image

I do run the beta version of Microsoft Remote Desktop if that makes any difference.

@hasansultan92
Copy link
Contributor Author

Try going to another space and then going into the dock and ask for the preview. I had a case like this for Microsoft Edge. Can you try to see if it works at all on the stable Microsoft Remote Desktop for you at all?

Screenshot 2024-08-03 at 20 07 27

@stevehoek
Copy link

When using the AppStore version of Microsoft Remote Desktop, I do see a preview for the connection center main window, but still not for my full-screen connections. When I full-screen the connection center, the preview still shows the non-fullscreen representation.

No combination of switching to other spaces/windows helps.

FWIW, I do run AltTab as well (and disable DockDoor's switcher)

@hasansultan92
Copy link
Contributor Author

Try to do CMD + Tab, choose the Microsoft Remote Desktop Application, and before you release CMD, press one of the arrow keys. Do you see your full screen windows there?

If I go to Safari - a native application - and play a youtube video, then ask for full screen on the video, technically Safari has spawned a new window for me which is also a new "space" so to speak. If I do the CMD + Tab - native command - windows switcher, with the instructions I gave earlier, I cannot see that Youtube video full screen in one of the spaces. This is native behavior to not show full screen contents of a window.

If you can see your windows with the command I have suggested above, then this would be considered a bug potentially, otherwise, this is expected behavior.

Alt-Tab might be capable of showing a preview of the full screen windows. DockDoor is not Alt-Tab, and DockDoor does not use the logic Alt-Tab does.

With regards to the Beta application, not sure whats happening there. Did you launch both the Beta and the App store version of the application while DockDoor was open? I can see why one would give a preview and not the other then.

@stevehoek
Copy link

For what it is worth, it is now working due to a restart after the macOS 14.6 update!

There is one type of app that doesn't show a preview for me: iOS/iPadOS apps that are installed on Apple Silicon a Mac.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants