microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
111.52k stars 6.56k forks source link

[Fluent UX] Quick access flyout in system tray #6751

Closed niels9001 closed 1 year ago

niels9001 commented 4 years ago

📝 Provide a description of the new feature

Problem The system tray provides a lot of quick access tools such as the notification center, network and sound settings. This is also where PowerToys lives, but it only provides two actions: opening settings and closing the application.

Additionally, the amount of PowerToys modules keep growing and most features are only accessible with keyboard shortcuts. To make these features more accessible, we also need to consider keyboard and mouse users. Providing additional functionality to quickly switch modes to keep in your workflow would be great, and can really showcase the various great tools.

Solution & features A flyout that opens whenever the user clicks on the systray app icon. It provides an interactive overlay that gives users quick access to the following features:

Feature Priority
Ability to open settings Should
Quick launch PT modules (e.g. Run / Color Picker / Shortcut Guide ) Should
Features that are disabled should not show up Should
Ability to set quick settings for e.g. Awake (mode) or Fancy Zones (layout switching) Could
The order (and options) should be customizable Could
Video Conference Mute buttons Could
Warning icon to indicate that PT is not running elevated Could
Banner/message whenever a new update is available Could

Mock-up Here's a WinUI UWP mock-up of how this flyout could work:

Light mode: Systray2

Dark mode: image

Source code can be found here: https://github.com/niels9001/SystrayUX/

Looking forward to more feedback to improve this concept!


If you'd like to see this feature implemented, add a 👍 reaction to this post.

Jay-o-Way commented 4 years ago

Some basic thoughts from me (like in a standard menu) were:

But is see your concept is even better 👍🏻

niels9001 commented 4 years ago

@Jay-o-Way

Checking for updates actually triggered a thought: we could probably put an icon / banner in the top bar when:

Jay-o-Way commented 4 years ago

To make these features more accessible, we also need to consider keyboard and mouse users.

And touch screen, of course.

Should we hide features that are disabled by the user?

Difficult choice, but I think I would say no, because I like to be able to reach as much as I can.

New update is available

Possible, but right now that is already done via notifications, which also feels fine to me.

enricogior commented 4 years ago

Looks like the community doesn't like it!

crutkas commented 4 years ago

Things we need to think about that impacts this + OOBE and who actually runs the UX and how we keep it in memory/instantly load.

OOBE could live in Settings easily but what about this dialog. Right now the systray UX is inside Runner.

Poopooracoocoo commented 4 years ago

just mentioning Instant Eyedropper

crutkas commented 4 years ago

@Poopooracoocoo ???

Poopooracoocoo commented 4 years ago

@Poopooracoocoo ???

I had mentioned it in #1244 and so I mentioned it again so that it's visible as not many people look at closed issues.

martinchrzan commented 4 years ago

Looks great! What about toys that does not have an activation key such as image resizer, power rename, file explorer ads-ons? Can we promote them somehow? I am afraid that if we show only the ones as in your mock-up users might think that these ones are all toys that we have. Or maybe it is OK and we should only have some OOB "slideshow" running when installed that will showcase all toys. In that case, this would be sufficient.

niels9001 commented 4 years ago

not have an activation key such as image resizer, power rename, file explorer ads-ons? Can we promote them somehow? I am afraid that if we show only the ones as in your

Didn't think of that. I think the OOBE UX should provide an image / description of each module that explains what it does and how it works / where it's integrated.

This OOBE module we could make accessible in this flyout as well under quick launch (e.g. "Learn about other PT modules").

crutkas commented 4 years ago

i like the idea for OOBE to have everything. @dedavis6797 fyi.

Jay-o-Way commented 4 years ago

What about toys that does not have an activation key such as image resizer, power rename, file explorer ads-ons?

@martinchrzan Resizer and Power Rename need files to work on, that's why the current method to start them is via the file context menu in File Explorer, so that they will have the files immediately when opened. If you can start up Resizer and Rename directly, without files, then you would have to manually select/add them later. That's not impossible to create, but it would be a new and different functionality.

For the File Explorer add-ons; do they really need to be turned on and off often/quickly?

martinchrzan commented 4 years ago

@Jay-o-Way not really, it would be still possible. If this flyout menu wasn't taking focus from your file explorer, or we had something like I proposed in #6836 - then you can trigger actions on actually selected file/files in your currently focused file explorer window (I do that in my project https://github.com/martinchrzan/FileExplorerGallery)

Jay-o-Way commented 4 years ago

Okay, you are right, it's not impossible, but as you said, the Explorer window needs to keep focus to determine the selected files. But what if I have more than one Explorer window open? Also, this means you start in the Explorer window and then move away from it to perform an action on selected files. That does not feel sensible to me. It would be more direct to just open the context menu. Or maybe, add the possibility to open Rename and Resize with a hotkey?

ghost commented 4 years ago

I suggest that we should have a taskbar icon that would be consistent with these kinds of icons (White/Dark outline depending on your color theme and no fill):

ToShow

niels9001 commented 4 years ago

I suggest that we should have a taskbar icon that would be consistent with these kinds of icons (White/Dark outline depending on your color theme and no fill):

ToShow

We're tracking this in: #3523

Jay-o-Way commented 4 years ago

Is it an idea to add quick tasks to the icon in Start Menu for the PowerToys icon? Examples:

image Firefox image CCleaner

Or would it be better to create a new issue for this idea?

martinchrzan commented 4 years ago

I think we should have a different issue for that - tasks on a start menu item are "static", probably can be added into an installer?

Original feature request in this issue requires some process to create tray icon and run a "context menu" so it is more "dynamic"

ghost commented 4 years ago

@niels9001 How about #831?

niels9001 commented 4 years ago

I think @dedavis6797 will be looking at the spec for this. Good to take easy bug reporting along with that!

crutkas commented 3 years ago

I think this is a great idea, but I do believe this is outside the stability release milestone

crutkas commented 3 years ago

Added in Enable / disable KBM if shortcuts are there

thexamlguy commented 3 years ago

I have written a written a Notification Flyout control which could be useful for this feature. This control uses XamlIslands to host a UWP app inside a WPF window to take advantage of the Flyout control's ability to pop outside of the window via setting ShouldConstrainToRootBounds to false, this gives us acrylic background and the flyout animation automatically out of the box which looks and feels exactly like the native battery, network and volume flyout.

546

Repro can be found at https://github.com/TheXamlGuy/NotificationFlyout

crutkas commented 3 years ago

@TheXamlGuy we can't look at it without a license on the repo

thexamlguy commented 3 years ago

@crutkas I have added one now.

FireCubeStudios commented 3 years ago

I have written a written a Notification Flyout control which could be useful for this feature. This control uses XamlIslands to host a UWP app inside a WPF window to take advantage of the Flyout control's ability to pop outside of the window via setting ShouldConstrainToRootBounds to false, this gives us acrylic background and the flyout animation automatically out of the box which looks and feels exactly like the native battery, network and volume flyout.

546

Repro can be found at https://github.com/TheXamlGuy/NotificationFlyout

This is great i use it for fluent flyouts

FireCubeStudios commented 3 years ago

I've actually been working on a "control center" flyout for fluent flyouts which is like the action center without notifications and it has quick actions maybe i can share soon

quantum-booty commented 3 years ago

It would be nice to be able to set global shortcuts to toggle for example keyboard manager.

xiaolangGT commented 3 years ago

image System tray design needs to consider two user requirements

  1. The user uses the default layout
  2. User-defined layout
Jay-o-Way commented 3 years ago

I have an idea 💡 I see several requests for more and more modules to have their own hotkey (or even split Color picker & Editor, for example). The idea to include quick settings in here, already has been mentioned, but we could also give this very window a hotkey of its own. Then it'll be more like Visual Studio does: two consecutive hotkeys to achieve something.

niels9001 commented 3 years ago

I have an idea 💡 I see several requests for more and more modules to have their own hotkey (or even split Color picker & Editor, for example). The idea to include quick settings in here, already has been mentioned, but we could also give this very window a hotkey of its own. Then it'll be more like Visual Studio does: two consecutive hotkeys to achieve something.

I like that idea! Makes it feel more "native" as well, since other systray flyouts (like Action Center) have hotkeys as well.

Jay-o-Way commented 3 years ago

I think, for this flyout, we could (or should) use our colored icons for modules. Like those in Settings.

niels9001 commented 3 years ago

@jay-o-way I agree.. Something like the Windows 11 action flyout but with colored icons.

Jay-o-Way commented 2 years ago

Almost a year of no activity and this is a very populair request. Any e.t.a. ?

crutkas commented 2 years ago

@jay-o-way, it is not assigned to an iteration so we have no ETA as it hasn't been commited to the work. It is 100% a great idea but lots of open questions

Shomnipotence commented 2 years ago

image

eidylon commented 1 year ago

This looks great... one issue with it though, .... it doesn't appear in the correct corner if you have your taskbar located elsewhere (i have mine on the top of the screen).

crutkas commented 1 year ago

@eidylon can you file a bug against this? This is a Win10 only bug but 100% something we should factor in

jaimecbernardo commented 1 year ago

This has been addressed as part of the 0.67 release cycle. Thank you!

Torinde commented 1 year ago

Would be amazing if clicking on that tray icon (right click or left click + menu item in the flyout) or a second tray icon provides functionality like the Win10 Desktop toolbar >>