GithubHelp home page GithubHelp logo

windows-apps-hub / unitedsets Goto Github PK

View Code? Open in Web Editor NEW
185.0 7.0 8.0 3.07 MB

Bringing back Sets and Browser

Home Page: https://www.microsoft.com/store/apps/9N7CWZ3L5RWL

License: MIT License

C# 98.51% HTML 1.49%

unitedsets's Introduction

United Sets (BETA)

An open-sourced program that groups windows into tabs, inspired by the unreleased Sets feature

Microsoft Store Download Link: https://www.microsoft.com/store/apps/9N7CWZ3L5RWL

Experimental InDev Version (Contains more features, but some are still buggy): https://www.microsoft.com/store/apps/9N9FR4ZZ6TQP (Warning: Installing this version will replace the regular version!)

Screenshot

Sample Screenshot of United Sets

Warning

The program is still in the beta state. Therefore, bugs and minor inconveniences are to be expected. If we find a bug, we will put them in the Issues Tab. However, we might be unable to list all of them and/or we don't know about the bug. Therefore, feel free to create the issue if you find a bug.

unitedsets's People

Contributors

firecubestudios avatar getget99 avatar mitchcapper 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

unitedsets's Issues

third window

after some time of adding the third window - using another window - later on even clicking on the third window the window doesn't pop up.

[Planned Feature] Split Horizontally and Vertically

Notice

Checkboxes are ticked to show the progress of implementation. The implementation may or may not be pushed to the GitHub repository because it is being worked on locally.

User Interface Idea

I wish there is out of bounds flyout, but no, there is not, so I lose a lot of ideas for UI in the first few parts.

  • Adding new split window: + button right-click to add "extended tab" (not official name), creating 1 big empty cell
  • For each cell, make Background Interface for blank space saying "Drag and Drop tab/window here, OR Split Horizontally Button, and Vertical Split Button) By splitting, 1 cell will split into 2 smaller cells.
  • Adding Window to each side: Drag and Drop Tabs (And/Or Drag and Drop Windows, this one will be trickier)
  • Remove the Window by dragging the window out (Refer to the implemented feature no. 2 I said in the previous message)

Implementation Details

  • Modify ITab Interface
  • Tabs will be ObservableCollection<ITab> instead of ObservableCollection<HwndHostTab>
  • DataTemplateSelector and More DataTemplate needed for UI
    • Change fixed value to DataTemplateSelector
    • DataTemplate for Regular Tabs
    • DataTemplate for Empty Cell Tabs
    • DataTemplate for Cell Spliited Region
    • DataTemplate for Cell Window
  • Implement Drag and Drop Handler.
    • Window: A bit harder, now have to find the position of specific UIElement of the window, still recycle code but a bit more challenging
    • Tab: Should be easy, recycle implemented feature Note: Dragging and dropping Tab is delayed due to Windows App SDK Bug that will get fixed in Windows App SDK 1.2. Currently, it is in preview and does not support for production apps uploading to Microsoft Store. Once the Windows App SDK update is shipped, we will enable the feature.

[Feature Request] - Improve notifications

Description:

  • Sets should show a notification badge/flashing icon on the taskbar when an app receives a notification (maybe a number based badge like Discord for each app/tab that shows a notification?).
  • Tabs in Sets should be more noticable when they have a notification (right now it just uses whatever would be shown in the title bar).

Version Info:
Edition Windows 11 Pro Insider Preview
Version 22H2
Installed on ‎2022-‎10-‎19
OS build 25227.1000
Experience Windows Feature Experience Pack 1000.25227.1000.0

[Issues] Compile Issues

I like the great concepts and features of this app, haven't seen an open source app similar. I wanted to do some work but had issues building. After a recursive clone building either from VS or from the cli with dotnet seem to fail.

Mostly around the CopySourceGenerator/EasySharp. I tried using the solution for that itself and still issues like:

v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSharp.GeneratorTools\CopySourceGenerator\CopySourceGenerator.CopySourceCode\EasyCSharp.AtributeConverterGenerator.CopySourceGenerated.g.cs(5,1): error CS8999: Line does not start with the same whitespace as the closing line of the raw string literal. [v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSharp.GeneratorT
ools\EasyCSharp.GeneratorTools.csproj]
v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSharp.GeneratorTools\CopySourceGenerator\CopySourceGenerator.CopySourceCode\EasyCSharp.GeneratorTools.GeneratorToolsGenerator.CopySourceGenerated.g.cs(5,1): error CS8999: Line does not start with the same whitespace as the closing line of the raw string literal. [v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCShar
p.GeneratorTools\EasyCSharp.GeneratorTools.csproj]
v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSharp.GeneratorTools\CopySourceGenerator\CopySourceGenerator.CopySourceCode\EasyCSharp.GeneratorTools.GeneratorToolsGenerator.CopySourceGenerated.g.cs(94,1): error CS8999: Line does not start with the same whitespace as the closing line of the raw string literal. [v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSha
rp.GeneratorTools\EasyCSharp.GeneratorTools.csproj]
v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSharp.GeneratorTools\CopySourceGenerator\CopySourceGenerator.CopySourceCode\EasyCSharp.GeneratorTools.GeneratorToolsGenerator.CopySourceGenerated.g.cs(135,1): error CS8999: Line does not start with the same whitespace as the closing line of the raw string literal. [v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSh
arp.GeneratorTools\EasyCSharp.GeneratorTools.csproj]
v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSharp.GeneratorTools\CopySourceGenerator\CopySourceGenerator.CopySourceCode\EasyCSharp.GeneratorTools.GeneratorToolsGenerator.CopySourceGenerated.g.cs(246,1): error CS8999: Line does not start with the same whitespace as the closing line of the raw string literal. [v:\temp\test\UnitedSets\EasyXAMLTools\EasyCSharp\EasyCSh
arp.GeneratorTools\EasyCSharp.GeneratorTools.csproj]

Can you provide some guidance on compiling?

[Bug] does not fully work with WSLg

Hi Dev/Team

Thank you for developing this app. This has been super helpful in my day-to-day productivity!
As I'm a developer, I tend to use WSL a lot. With Windows 11, WSL comes with WSLg (GUI support for WSL), and apps opened with WSLg does not cooperate with UnitedSets. Adding support for WSLg would be extremely useful, and I'm sure many devs using this app can appreciate the addition!

[Bug] Bugs and Limitations of adding tab of UWP Apps

Normal Priority

  • UWP Window should not fall behind United Sets with no easy way of bringing it back(#3 (comment))

Low Priority

  • UWP Window App Icon
  • [UWP Window Taskbar Icon should not be visible (preferred) OR Automatic Tab Switching for UWP Apps (alternatives)]
  • Using United Sets with UWP Window should not have a bad user experience
  • (If possible) Full UWP window support just like the Win32 window

[BUG] Captured Taskbar

When I press TAB on the Windows Taskbar, a empty tab added, and my taskbar disappeared. When I tryied to close the United Sets, my laptop shows a "Close Windows" window. I fixed it by releasing the taskbar window.
It seems like it captured in to the desktop and sended a signal like Alt + F4

[Bug] Cell Resizer in CellVisualizer and DragAnywhere conflict

I like the drag anywhere option for the window but the normal way it determines if it is handled or not doesn't work with EzRelativeStackPanelResizer. I don't think from the sender or originalSource we can figure out if it is the EzRelativeStackPanelResizer. I think a better option would be to tap into the resize event and disable the DragAnywhere in trans_manager as long as drag is happening on the resizer.

I tried tapping the DragStarting and DropCompleted events on the relative stack panel but neither fired. I am not sure if we need a new event or the best option for this.

[Feature Request] Automatic tab switching when the window is focused

Notice

This issue's title was edited: See this comment for more information

Original

Description:
When attempting to open an app through the start menu or on the taskbar and the app is open in the Sets, it should switch to that tab. (Not sure if this should be a feature request or not).

Video:

Untitled.video.mp4

Version Info:
Edition Windows 11 Pro Insider Preview
Version 22H2
Installed on ‎2022-‎10-‎19
OS build 25227.1000
Experience Windows Feature Experience Pack 1000.25227.1000.0

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

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

  • Splittable Tabs. This is the first step that I took to give something that was harder to replicate with taskbar. although right now support for Alt+Tab and Window group is a thing in Windows 11, but we still don't have a single icon on a taskbar that represent that group, so I would say that this is the first step towards making United Sets have a purpose
  • Cropping Window. This is also another feature that was added to the preview version of Untied Sets. By having the cropping window feature, user can choose to crop out the top part of the window if they wish. For example, one can hide the File Explorer's tabs or browser tabs with this feature.

Here are the plans that I have in the future:

  • Tabs and the Splittable, Recursive Tab System (more below)
  • Tab Templates (Open multiple apps in one click... and group them, split them like you were using them before saving them as the template)

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.

new.tab.system.compressed.mp4

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).

[Feature Request] Remember content

Would be nice if I close and reopen the app that it brings back the applications that I tabbed.

Now I need to add the same applications each time again

[Feature request] (Multiple Request, info needed)

  • Drag and paste between the tabs and show a new selected folder
  • Remove background side borders that encompass open windows
  • Keyboard shortcut
  • Sessions like Microsoft Edge, so that it has separate programs in the taskbar and we can identify each session according to what is open and its respective icon (use an icon similar to the Edge sessions style, in which we have the main icon bigger and another small icon inside the larger icon to identify that it is a set of windows in UnitedSets).
    In other words, it's nice to have several UnitedSets sessions, but without grouping them on the taskbar by hovering over them.b
  • Window name on taskbar with name of current tab open in UnitedSets
  • Ability to set different sizes in each open program, instead of just obeying the size of the UnitedSets window
  • Button to lock program so that it does not close unexpectedly

[Bug] Alt-tab order broken for certain apps

I have noticed some apps still show up independently in the taskbar when they are the active tab in US (and hide otherwise). While a minor visual annoyance not the end of the world. It seems this causes a secondary bug however in alt-tab recent order being broken. One might expect if you hit alt-tab and release you are instantly in your previous window. Hitting it again brings you to the window active when you first hit it. No matter if you alt-tab to the US tab manually or to the window that sits in the taskbar the window order is now the same for alt-tab:
0 - The window that also shows in the taskbar
1 - US
2 - The window you were on prior to hitting alt-tab.

So to switch back you have to hit alt-tab-tab otherwise you just end up in the US window.

Clearly the taskbar visibility and this issue are related, but if we can't find a workaround for it appearing in the taskbar we may be able to at least detect this and remove ourselves from the tab order when active.

[Bug] It broked the desktop

So, I was testing app with clicking desktop icons. When I clicked into an icon with <Tab> key, it opened a blank window, and also the desktop is crashed. I solved the problem by closing the window and refreshing (F5) the desktop.
I think that's a problem that needs to be solved.

[Bug] Add exception for Windows classes

  • Holding tab and clicking on desktop will adds Progman
  • Holding tab and clicking on taskbar adds it
  • Holding tab and clicking on Sets settings window will adds it (WinUI desktop)

image

[Feature Request] - Show all tabs in taskbar when hovering

Description:
Show all the tabs that are open when hovering over Sets in the taskbar. (Additionally, when hovering only UWP apps show in the hover previews, as can be seen in the screenshot below).

Screenshot:
image

Version Info:
Edition Windows 11 Pro Insider Preview
Version 22H2
Installed on ‎2022-‎10-‎19
OS build 25227.1000
Experience Windows Feature Experience Pack 1000.25227.1000.0

[Enhancement] Mini Taskbar Concept

So... one of the arguments against United Sets being unnecessary is we have the thing called "Windows Taskbar." And to be honest, even though I contribute so much to this app. I agreed with them. I don't really use the app much because we have Windows Taskbar. I know that most of the people currently interested in this project like the idea of tabs but the thing is that as of now tabs are not that appealing as it is being looked as "just another app that makes features that already exist and we just create a bigger button on top to change window"

Okay enough with the introduction, so to resolve this, I would create another UI to act as a "mini taskbar" mode. This actually already existed in the codebase but is currently not activated yet. Note that when this feature is launched you will still have an option (and will be the default) to use the tabs setup.

This will be an alternative to tabs where we have buttons that will take up less space.

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.