microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
109.76k stars 6.46k forks source link

[Feature-Request][PT Run] Display available action keys preview #11591

Closed XspeedPL closed 9 months ago

XspeedPL commented 3 years ago

Provide a description of the new feature / enhancement

I've been using PowerToys primarily for its Run module and I am loving it so far.

However, I find myself often forgetting what the action keys are, and I thought it would be a good idea to have an option to display a compact list of them, for example when the text box is empty.

I think new users would greatly benefit from a feature like this, helping them get used to this amazing productivity tool.

crutkas commented 3 years ago

Neat idea!

htcfreek commented 3 years ago

We could create a plugin that reacts on the query action key: (or ak: as short version).

Or we use ? as action key.

XspeedPL commented 3 years ago

We could create a plugin that reacts on the query action key: (or ak: as short version).

I see where you're coming from with this idea, since it would mesh nicely with the plugin architecture. But the original thought was to help forgetful people that can't remember any of them in the first place :)

Or we use ? as action key.

It is used as default of file search as far as I remember.

niels9001 commented 3 years ago

We could show this whenever the TextBox is empty?

Our an additional flyout that can also be invoked separately- gives us a bit more UX freedom as well.

XspeedPL commented 3 years ago

Maybe something simple, like pressing backspace when the text box is already empty, so it doesn't constantly show up in your face

niels9001 commented 3 years ago

Here's a working PoC showing the action keys whenever the search box is empty (and tweaking the overall design). You can try it out by using this branch: https://github.com/microsoft/PowerToys/tree/users/niels9001%2Frun-cheatsheet

PT cheatsheet

I don't think this should be shown at all times, some possibilities:

Happy to hear your thoughts on this.

htcfreek commented 3 years ago

Here's a working PoC showing the action keys whenever the search box is empty (and tweaking the overall design). You can try it out by using this branch: https://github.com/microsoft/PowerToys/tree/users/niels9001%2Frun-cheatsheet

PT cheatsheet

I don't think this should be shown at all times, some possibilities:

  • Make it a setting (hide / show it whenever searchbox is empty)
  • Put a button into the searchbar that allows you to collapse/enable this pane
  • Make it a character / plugin - but I think this goes against what this is meant for: instruct what you can do. Therefore, this panel should be visible

Happy to hear your thoughts on this.

Great work.

I think it should be a settings and maybee a button. But not an activation key.

@niels9001

XspeedPL commented 3 years ago

I am against an activation key as well.

Navigation through the list is a must, if we take lower screen resolutions or future possibility of new plugins being made.

Maybe also selecting a plugin could expand the item view and display a longer description of that plugin?

Also also, extra buttons on the bar sound like trouble. Either users will be forced to use a mouse (ugh) or tab navigation will have to be implemented that also somehow takes the plugin list into consideration.

crutkas commented 3 years ago

My suggestion is default to display on first launch.

Options

niels9001 commented 3 years ago

@XspeedPL @crutkas But what about scenarios where you want to quickly look up that specific action key? It would be a pain to either go to the docs (current) or open settings, enable the overview.

Isn't this (way) simpler and also more intuitive:

PT Run plugins

Clicking on the button shows the list of action keys. We hide it on TextChanged? This way it's always accessible, we avoid any UI clutter and don't make things more difficult with settings. Keyboard navigation should work fine as well with this model (hitting tab once to navigate to the ? button)

XspeedPL commented 3 years ago

So in a typical scenario, to use the feature an user has to do the following:

  1. Standard open Alt + Space
  2. Tab to the ? button
  3. Press Space / Enter to press the button
  4. Tab back to the text box
  5. Actually start typing the command

I guess it's okay, but no matter what will be done, there always will be someone unsatisfied :P So, in my opinion as well, having options is a good idea.

niels9001 commented 3 years ago

So in a typical scenario, to use the feature an user has to do the following:

  1. Standard open Alt + Space
  2. Tab to the ? button
  3. Press Space / Enter to press the button
  4. Tab back to the text box
  5. Actually start typing the command

I guess it's okay, but no matter what will be done, there always will be someone unsatisfied :P So, in my opinion as well, having options is a good idea.

I think we can optimize it:

  1. Alt + Space to open Run
  2. Tab to the ? button (when focused, it will open the panel reducing the need to click space or enter).
  3. Focused will be set to the TextBox again, so entering any character will close the panel and will continue the current behavior. E.g. entering the action keyword.
XspeedPL commented 3 years ago

That sounds great! Only thing left then is to inform users that pressing Tab is a possible action in the view. Either in settings or maybe like a small text above the box "Press Tab to display action keys"

XspeedPL commented 3 years ago

@niels9001 any updates? If you don't have time, maybe you could point me to a fork with your prototype to continue?

ipsquiggle commented 3 years ago

For what it's worth, I naively tried typing a ? to get something like this to show up as my very first instinctual attempt to recall the commands.

Truly, anything at all would be better than nothing! I'd even settle for a list in the main PowerToys settings windows. :)

dougwl commented 2 years ago

@niels9001 suggestion (tab to show) is already something pretty cool. I've made this comment in another duplicate thread, but, what about using the 'down' arrow key? When displaying results from a search, we already expect to use the arrow keys for navigation, so maybe using it when the field is empty would feel more organic? And instead of a button inside the box, maybe use a small legend outside of it, something like 'Show Hints (Tab)' aligned to the right corner, just bellow the magnifying glass.

This are just suggestions to foment a little the discussion, but having this feature in any manner is something that my ADHD brain would gladly accept.

sba923 commented 2 years ago

Happy to hear your thoughts on this.

Press one of: backspace, space on the empty box?

sba923 commented 2 years ago

My suggestion is default to display on first launch.

That's not enough IMVHO. My memory's failing me, so I won't remember. Especially since I'm a hibernation-not-shutdown-and-restart-everything-every-time-you-need-the-PC kinda guy, so the "first launch" of PowerToys Run is very seldom.

b1tles commented 2 years ago

Great idea! This is a must-have feature of every app that relies on keyboard shortcuts.

I find myself ending up on https://docs.microsoft.com/en-us/windows/powertoys/run#direct-activation-commands every time I want to be efficient in finding things... which is quite inefficient, I must say :)

stefansjfw commented 9 months ago

The work associated with this issue has been released as part of the 0.76 sprint. Please update PowerToys to the latest. https://github.com/microsoft/PowerToys/releases

sba923 commented 9 months ago

Indeed, 0.76 gives us just what we wanted:

image