Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quickaccess systemtray launcher #22408

Merged
merged 55 commits into from
Jan 30, 2023
Merged

Quickaccess systemtray launcher #22408

merged 55 commits into from
Jan 30, 2023

Conversation

niels9001
Copy link
Contributor

@niels9001 niels9001 commented Dec 1, 2022

Summary of the Pull Request

This PR introduces a new way of launching various PowerToys modules by clicking on the icon in the system tray.

Features:

  • Layout showing activated modules that can be launched using the launcher.
  • The tooltip of each module shows the activation shortcut.
  • Settings and docs can be opened.
  • Modules that are disabled will not be shown.
  • If there's an update available, this will be shown for awareness.

Things to do:

  • Localization & a11y
  • Telemetry?

LauncherV3

PR Checklist

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

@github-actions

This comment has been minimized.

@Jay-o-Way
Copy link
Collaborator

Jay-o-Way commented Dec 1, 2022

  • Do we want to show modules that are disabled as disabled icons?

Actually, my personal thought is comparing this with the Action Center. Here you can also find things that are on/off, and this is the place to turn it on. So, for me, this would be a no-brainer :)
image

That does mean that there would be like 18 modules here in the window...

Would also be nice if this could replace the full current PT icon menu ("report bug" etc.)

@niels9001
Copy link
Contributor Author

niels9001 commented Dec 1, 2022

  • Do we want to show modules that are disabled as disabled icons?

Actually, my personal thought is comparing this with the Action Center. Here you can also find things that are on/off, and this is the place to turn it on. So, for me, this would be a no-brainer :)
image

That does mean that there would be like 18 modules here in the window...

Would also be nice if this could replace the full current PT icon menu ("report bug" etc.)

That's why I'm not in favor in supporting it 😁: it's meant to be a launcher, that allows launching modules that can only be triggered by a keyboard shortcut. There's little value in turning on/off context-menu modules and replacing Settings?

Quick Actions only support settings that users regularly toggle between - for PT, I could imagine a toggle for KBM and Awake modes?

@htcfreek
Copy link
Collaborator

htcfreek commented Dec 2, 2022

@niels9001
Nice work. Does it replaces the tray menu?

Here are some thoughts/ideas:

  1. I think it should be a launcher and information center only.
  2. Some additional features would be nice: Showing the active fz layouts per monitor, controling awake, controling vcm. I think it could be realized that wen we click on the module icon the additional features panel for the module is expanding.
  3. If an update is shown, can the user open the settings by clicking on the update info?
  4. Personally I would replace the document symbol with a help/question symbol.
  5. A third symbol to open the scoobe/oobe page might be useful.

@BobSimms
Copy link

BobSimms commented Dec 3, 2022

Support for easy turning on/off would especially be useful for KBM. I use it when my laptop is undocked to make the condensed keyboard’s alternate Fn behavior (PrtSc, Home, Ins) of F9 F10 F11 keys the main behavior for editing convenience, and so that other function keys behave in programs as their usual purpose, like F3 find-next, F5 refresh, etc. When docked I turn it off because the bigger keyboard has separate PrtSc, Home, and Ins keys, leaving F1-F12 normal.

@JaykeBird
Copy link

I think this idea is amazing and I'd love to see it in whatever form is best.

I think being able to turn on/off all modules from here would be a bit much and overcomplicate it, but options for Awake or KBM could be good. Besides, Settings is just one click away from here. (Although maybe such an option could be added via a context menu when right-clicking a module?)

I also think the file icon for documentation isn't immediately obvious; I'd also agree with using a question mark or help icon would be better.

Either way, I'd love to see this added in!

@Aaron-Junker
Copy link
Collaborator

My opinion is that like this it imitates the Windows 11 quick action center, ehich primarly is for turning things on/off. I don't think it's very intuitive to use the same design, but a different functionality.

@niels9001
Copy link
Contributor Author

My opinion is that like this it imitates the Windows 11 quick action center, ehich primarly is for turning things on/off. I don't think it's very intuitive to use the same design, but a different functionality.

Fair point - not sure if it'll be a major hurdle, but if so we could adopt the Start Menu grid-like design as it's more inline with app launching.

@bzzrak
Copy link

bzzrak commented Dec 5, 2022

What's the point of showing the hosts file editor there? That can be launched with just the exe file (at program files\powertoys\modules). As I see it, this is much better suited to launching things that are otherwise accessible only with the keyboard, like Run, the colour picker or the OCR recogniser.

Besides I don't think there's a lot of people that need to edit the hosts file so often that they need a "quick access" thingy for it. If they do, as I said, they can just make a shortcut to its exe file.

Other than that I think it looks cool :D

@Jay-o-Way
Copy link
Collaborator

My opinion is that like this it imitates the Windows 11 quick action center, ehich primarly is for turning things on/off. I don't think it's very intuitive to use the same design, but a different functionality.

I think we need a Discussion to poll ideas from users. I feel there are different interpretations from us already, so we should ask the users.

@jaimecbernardo
Copy link
Collaborator

I've removed VCM from the list of apps. It's legacy and it's only controllable when running as admin. Best leave it out.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@jaimecbernardo
Copy link
Collaborator

Currently trying to figure out this flicker:
btU8ALOJhm
VUggYZHELY

It seems to be happening on mouse over and only happens when we're running without debugger attached (the presence of a debugger makes it so that the flicker doesn't occur)
It seems somehow related to the FlyoutMenuButton or the BitmapIcon rendered for it, since that's what's flickering.

@@ -41,7 +41,7 @@ public void LogOpeningSettingsEvent()

public void LogRunningModuleEvent()
{
PowerToysTelemetry.Log.WriteEvent(new OobeModuleRunEvent() { ModuleName = this.ModuleName });
PowerToysTelemetry.Log.WriteEvent(new TrayFlyoutModuleRunEvent() { ModuleName = this.ModuleName });
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this change looks wrong

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're very right! Just fixed it. I used that event as a basis and then changed the wrong one. 🤦 It should be good now.

@jaimecbernardo
Copy link
Collaborator

Changed the BitmapIcons to Images with BitmapImages, as those don't have the "flickering" behavior.

Copy link
Collaborator

@jaimecbernardo jaimecbernardo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Great work! ;)
And thank you for the contribution!

Copy link
Collaborator

@stefansjfw stefansjfw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! I like the flyout very much! I gave it a test, everything works well.

}

/// <summary>
/// Set flyout opening callback function
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comment is wrong

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed it. Thanks for the review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs-Review This Pull Request awaits the review of a maintainer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.