Windows-Apps-Hub / UnitedSets

Bringing back Sets and Browser
https://www.microsoft.com/store/apps/9N7CWZ3L5RWL
MIT License
232 stars 10 forks source link

[Enhancement] New codebase changes and the new direction of the tabs of the United Sets #54

Closed GetGet99 closed 1 month ago

GetGet99 commented 6 months ago

I am looking into the codebase upgrade in United Sets. Note that I don't have any dates (as I have a lot of IRL stuff to be done)

Introduction: Debate about United Sets and Taskbar

We do recognize of the idea that some people have commented that we don't need tabs for the apps because we have "Windows Taskbar." And while it may be unexpected for one of the devs to speak out, I do agree with this argument. I sometimes feel like Alt+Tab is already getting the job done.

Therefore, I would like to actually give the purpose to United Sets. I would like to give a clear reason to use United Sets other than just an app that gives tabs that could be replicated with an already existing taskbar.

Here are the steps that have already been taken in order to give a purpose to United Sets

Here are the plans that I have in the future:

Window Hoster

The current state of United Sets has made it hard to make additional changes due to the assumption that the window is linked to a single UIElement, and all are linked to a single United Sets window. This makes it hard to make changes to the core system, leads to several bugs and issues that are hard to track down, and leads to a very complex UI code.

I will make a new WindowHoster library which will overcome the weakness of the WinUI3HwndHostPlus library. This library will minimize the use of polling and relying on Windows events. It will also decouple the UI logic from the window-controlling logic, making it possible to have a window with no UI attached to it. This would be helpful in the development of setting tabs aside as well, as there were some bug reports of that system currently.

This would have a neglectable change to the end user perspective. Maybe some performance improvements but I won't make guarantees. This change is designed to help in the future development flow.

Tabs and the Splittable, Recursive Tabs System

The current tab system has the downside of being complex. The new window hoster would help reduce the complexity of the system, but wouldn't make enough impact.

Therefore, I am looking to upgrade to the new tab system that is currently being developed internally. This would provide smooth dragging tabs and a smoother multi-window experience for United Sets. This system will replace the current splittable tabs system to be more integrated. It's hard to explain with words, so this is the video prototype. Note that this system is still not finished and still needs polishing.

https://github.com/Windows-Apps-Hub/UnitedSets/assets/41405393/4af9555e-c441-4e4b-ab6e-fe93ee6d508e

The downside is that initially multi-process United Sets may not be supported (multi-window will be supported instead). However, in the long run, it might be possible to add this back).

mitchcapper commented 5 months ago

At least for me UnitedSets has the ability to create app clusters. I would describe app clusters as microsoft desktops except clearly in window form, so you don't need to put all other windows aside to have a group of windows. App clusters allows me to use the same app for unrelated things and I don't have to guess (or remember if its app instance 1 or 2 in the taskbar) goes with what, as its already in a set with the other apps its related to.

App clusters also allows me to easily access all the related apps with a singular shortcut key and in a specific ui space. I can code something in VS and instantly switch to the terminal that goes with what im working on.

JVariance commented 4 months ago

It's great that the development is continuing. Thank you! 👏🏼

GetGet99 commented 1 month ago

WindowHoster library is implemented. Tabs and the Splittable, Recursive Tabs System will be tracked internally. If that is a concern, please open a new issue. (I'm trying to clean up old issues)