Coder Social home page Coder Social logo

stagemanager's Introduction

Stage Manager for Windows

This is an experimental approach to bring the macOS Stage Manager to Microsoft Windows.

Stage Manager

This prototype groups applications by their process. By switching between so called "scenes" on the left, Stage Manager hides other windows and the desktop icons, helping you to focus.

Windows can be moved from one scene to another by dragging them onto scenes on the left.

Usage

Download and run the executable from the Releases tab or

  • clone this repository
  • cd into the repository directory
  • run dotnet run --project StageManager

To quit, find the app's tray icon (Windows might move it into the overflow menu) and use its context menu to close the app.

Requirements

To do

This is an experimental fun project. I don't have any idea whether or not this is going to be a final product one day.

Topic State
Experimental stage
initial windows grouping by process โœ…
3D display of opened windows (static) โœ…
hide/show windows of given scenes โœ…
hide/show desktop icons โœ…
scene management with drag&drop โœ…
restore windows on quit/restart โœ…
auto hide & fly-in scenes for maximized windows โœ…
full screenshots for windows that were minimized on startup โœ…
drag windows from other scenes into the current one โœ…
place screenshots in relative size of the desktop โฌœ
limit maximum scenes (like 6 for macOS?) โœ…
limit window count per scene (like newest 5) โฌœ
tray icon to start & stop โœ…
start with Windows โœ…
Product stage
virtual desktop support (pin window) โฌœ
multi-monitor support โฌœ
visual feedback when dragging windows from other scenes โฌœ
feature parity with macOS Stage Manager โฌœ
Polishing stage
window animations โฌœ
live dwm thumbnails โœ…
adjust 3D angle according to screen position โฌœ
flyover sidebar in desktop view mode if icons are close to the left โฌœ

Contributions very welcome โค๏ธ


Stage Manager is using a few code files to handle window tracking from workspacer, an amazing open source project by Rick Button.

stagemanager's People

Contributors

awaescher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stagemanager's Issues

The stage mananger window icon have outside the window.

This is real good design for windows. Will you provide other configuration for this app.
I have try your project. The number window of stage manager might outside the window.
If we can limit the max number of icon, this problem can be solve.

Grouping does not work for some apps

I think this happens for UWP apps (or whatever they are called now), at least for some of them. In my testing grouping is ignored for Microsoft To Do, new WhatsApp app and Windows Settings.

image
image

How to use

I was wondering if there is a step by step guide on how to get this to work on Windows 11?

The Stage Manager with handle winodow policy

Hi developer,

I have try your stage manager app. I found you have plan the scheme both drop window to secene and pull window from scene.
But your current scheme is only use pull window from scene.

I have try to re-managment your code with change the order first check "EnableWindowPullToScene" and then check "EnableWindowDropToScene". After the re-order the code sequence. You can both enable EnableWindowDropToScene and EnableWindowPullToScene to realize the both direction for user using. This schemem can be more intuitive.

The other scheme I still cannot realize is drop the window to "a new scene" which is not the current existed scene. Will you add this function to enhance this app ?

fluent search appearing in the stage manager

So basically I use a search app for windows and this search app is like the start menu when you press the windows key now when ever I press the short cut to open fluent search it closes the current app and opens only fluent search .Is there any way you can fix it

Not able to run

Hey. I have seen your work it's amazing but I can't run this on my pc. Can you help me out?

[BUG] Certain system tray windows and interstitials being treated as regular application windows, cannot close or remove

Description:

Interstitial and notification style windows, as well as System Tray Application Windows have been picked up by StageManager as if they were full application windows, resulting in these transient or utility windows permanently occupying the stage manager sidebar.

These windows are pulled into the SM sidebar, and once they are there, they cannot be selected, opened, or closed.

Current Version & Env Info

  • StageManager v0.0.27

  • Windows 10 Pro (latest release)

  • Intel NUC 13 Extreme w/ Core i9 13900K & Intel Arc UHD 770 iGPU

  • The display on which this bug was observed is using an RTX 4080 Super dedicated GPU (not sure if it matters)

  • I do have a second 1080p display driven by the Arc iGPU via DisplayPort over Thunderbolt 4, have not tested if this happens on that display due to it not being primary


Reported Bug Observed with following applications:

  • Razer Synapse: (interstitial window appears when increasing or decreasing the mouse sensitivity)

  • PowerToys: the system tray window is pulled into StageManager after opening and closing

  • I suspect there will be bugs like this with many many applications that do interstitial notifications and system tray applets.


Steps to reproduce:

  1. Launch StageManager v0.0.27

  2. Run any of the above applications from the system tray, or perform a triggering event, like adjusting mouse sensitivity with Razer Synapse

  3. While the system tray window or interstitial is open, click on either another application, or another StageManager application window group

  4. Observe that StageManager has captured these non-application windows, visible in the side bar (see attached)

  5. Attempt to close or click these windows as they are shown in StageManager side bar, and observe that they are neither maximized or made active, nor are you able to actually close them

  6. In the case of PowerToys, the system tray menu is treated by StageManager as if a new application window was launched, vs an overlay


Workaround

This is the only approach I found that worked every time:

  • Exit StageManager completely, or kill the task

  • Once StageManager releases the application Windows, they will usually appear in the location where they were first captured

  • Click them, or see if there is a close box to get rid of them

  • If not, simply re-open the system tray window and re-close it, or trigger the event that launched the interstitial. As long as SM is not active, these temporary windows will close or disappear normally.


Suggested Fixes:

  • Given that system tray menus are meant to function like overlays, temporarily appearing and disappearing from the system tray area, I think it would be reasonable to ignore any window originating from the system tray area, as well as any menu launched from that area by selection of a system tray item.

  • Also, since interstitials and custom notification overlays are transient, and would need to appear generally at the highest level of the window stack within the display (unless a fullscreen app is running), these should also be ignored by SM

  • I think adding support for an "X" or close action on per-application group that pops all application windows in that group from the stack and removes them from the SM sidebar would be great tbh and a good workaround for edge cases like this (e.g. by right-clicking a group and explicitly closing all)

  • SM could add a system level service option to permanently ignore "this application's windows" to the list of options you get when you right click any open application in the taskbar, or perhaps by right clicking on the application window's top bar. E.g.: I do not want SM to manage or otherwise interfere with this application, so I could right-click the icon, or window bar, and select "Tell StageManager to ignore this application", or something like that.


Screenshots:

stagemanager-power-toys-system-tray-pulled-into-sidebar

stagemanager-power-toys-treated-as-application-window

stagemanager-razer-synapse-persistent-interstitial




Note:

Btw, I'm really supportive of this project-- as an avid macOS user for work / daily / development use, I have come to really appreciate Stage Manager and I have been missing it lately while working on windows.

Thank you for your work, and I am happy to test new releases if you are looking for volunteers!

Build fail - related to rainmeter?

Still fails even after ending rainmeter process

I love to try projects like these but unfortunately don't have much knowledge in .NET yet :)

๎Š… dotnet run --project StageManager
C:\Program Files\dotnet\sdk\6.0.407\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.EolTargetFrameworks.targets(28,5): war
ning NETSDK1138: The target framework 'net5.0-windows' is out of support and will not receive security updates in the f
uture. Please refer to https://aka.ms/dotnet-core-support for more information about the support policy. [C:\Users\same
e\Documents\Rainmeter\Skins\MenuBar\StageManager\workspacer.Shared\workspacer.Shared.csproj]
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'AsyncAwaitBestPractices (>= 6.0.5)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\workspacer.Shared\workspacer.Shared.csproj : error NU1100
: Unable to resolve 'NLog (>= 5.0.4)' for 'net5.0-windows7.0'. [C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageM
anager\StageManager\StageManager.csproj]
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'MahApps.Metro (>= 2.4.9)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'SharpHook (>= 3.1.1)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'WpfScreenHelper (>= 2.1.0)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\workspacer.Shared\workspacer.Shared.csproj : error NU1100
: Unable to resolve 'NLog (>= 5.0.4)' for 'net5.0-windows7.0/win10-x64'. [C:\Users\samee\Documents\Rainmeter\Skins\Menu
Bar\StageManager\StageManager\StageManager.csproj]
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'NLog (>= 5.0.4)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'AsyncAwaitBestPractices (>= 6.0.5)' for 'net6.0-windows10.0.22000/win-x64'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'MahApps.Metro (>= 2.4.9)' for 'net6.0-windows10.0.22000/win-x64'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'SharpHook (>= 3.1.1)' for 'net6.0-windows10.0.22000/win-x64'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'WpfScreenHelper (>= 2.1.0)' for 'net6.0-windows10.0.22000/win-x64'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'NLog (>= 5.0.4)' for 'net6.0-windows10.0.22000/win-x64'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'AsyncAwaitBestPractices (>= 6.0.5)' for 'net6.0-windows10.0.22000/win-x86'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'MahApps.Metro (>= 2.4.9)' for 'net6.0-windows10.0.22000/win-x86'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'SharpHook (>= 3.1.1)' for 'net6.0-windows10.0.22000/win-x86'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'WpfScreenHelper (>= 2.1.0)' for 'net6.0-windows10.0.22000/win-x86'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'NLog (>= 5.0.4)' for 'net6.0-windows10.0.22000/win-x86'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\workspacer.Shared\workspacer.Shared.csproj : error NU1100
: Unable to resolve 'Microsoft.NETCore.App.Ref (= 5.0.0)' for 'net5.0-windows7.0'. [C:\Users\samee\Documents\Rainmeter\
Skins\MenuBar\StageManager\StageManager\StageManager.csproj]
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.NETCore.App.Runtime.win-x64 (= 6.0.15)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\workspacer.Shared\workspacer.Shared.csproj : error NU1100
: Unable to resolve 'Microsoft.WindowsDesktop.App.Ref (= 5.0.0)' for 'net5.0-windows7.0'. [C:\Users\samee\Documents\Rai
nmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj]
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.NETCore.App.Runtime.win-x86 (= 6.0.15)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\workspacer.Shared\workspacer.Shared.csproj : error NU1100
: Unable to resolve 'Microsoft.AspNetCore.App.Ref (= 5.0.0)' for 'net5.0-windows7.0'. [C:\Users\samee\Documents\Rainmet
er\Skins\MenuBar\StageManager\StageManager\StageManager.csproj]
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.WindowsDesktop.App.Runtime.win-x64 (= 6.0.15)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.WindowsDesktop.App.Runtime.win-x86 (= 6.0.15)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.AspNetCore.App.Runtime.win-x64 (= 6.0.15)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.AspNetCore.App.Runtime.win-x86 (= 6.0.15)' for 'net6.0-windows10.0.22000'.
C:\Users\samee\Documents\Rainmeter\Skins\MenuBar\StageManager\StageManager\StageManager.csproj : error NU1100: Unable t
o resolve 'Microsoft.Windows.SDK.NET.Ref (= 10.0.22000.28)' for 'net6.0-windows10.0.22000'.

The build failed. Fix the build errors and run again.

The first time launch StageManger with window snapshot broken

Hi developer,

I found everytime to first launch the stage manger. The first create scene window on the left hand side show the broken window snapshot. We need to active every window again to get the whole picture. Is there any good idea to fix this issue ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.