aasmal97 / Window-Actions

A StreamDeck Plugin that allows a user to perform window actions, and navigate virtual desktops, on a windows machine
https://marketplace.elgato.com/product/window-actions-1466943f-b058-4e6c-be04-cbd65ce09b31
MIT License
8 stars 0 forks source link

3 New feature requests #6

Closed aasmal97 closed 9 months ago

aasmal97 commented 1 year ago
  1. Allow a user to focus on a new window according to identifiers
  2. Allow a user to separate or detect individual chrome windows and apply the same actions to them
  3. Allow a user to simulate a phantom click on the screen according to a defined X and Y position
sheam commented 1 year ago

Yes, moving a window, but not having it come to the front is painful. Also if I am moving resizing a window, it doesn't work if that window is minimized.

aasmal97 commented 1 year ago

@sheam I can give you the option to make it come to the foreground when moving a window. For now though, you can use the focus As for resizing, that strange. It's probably related to the nircmd tool being used to perform that action, and it stopped being maintained 3 years ago. Therefore, we'd have to re-work the entire resize logic, and use the Windows 32 API directly (using python's win32api). I'll look into how long modifying that will take, so stay tuned

sheam commented 1 year ago

I was trying to get it to work with a chrome app, so that could be the issue to.

aasmal97 commented 11 months ago

Update! Moving and resizing a window now comes to the front by default. Logic has been re-worked in version 3.0. You can download the release file here

aasmal97 commented 9 months ago
  1. Allow a user to focus on a new window according to identifiers
  2. Allow a user to separate or detect individual chrome windows and apply the same actions to them
  3. Allow a user to simulate a phantom click on the screen according to a defined X and Y position

This issue will be closed after the update v4.0.0 added a focus window action!

Unfortunately, detecting individual chrome windows/tabs (aside from the active one) and applying the same actions to them, is rather difficult/impossible to do without creating a security issue. This is because browser tabs inside windows, work differently than a window on a Windows machine.

Only the current active tab, on a browser, can be read at any given point, because any tab that is not the active one, is actually treated by the browser as a 'virtual'/'phantom' window.

The only way to access these, would be to click on the tabs physically, or programmatically, which would lead to a poor user experience, and would also lead the plugin to be labeled as malware.

Perhaps one day I will create a plugin that can create phantom clicks, and test it, but this will never be implemented on this plugin one.

sheam commented 8 months ago

I have made Google Meet a chrom applet, so it runs in it's own window. I then use find with by partial title 'Google Meet'. It works to bring the window to the front sometimes, but not others. I am not sure what cause it to work.