microsoft / microsoft/PowerToys

Command Palette: Allow global command shortcuts to act as a toggle (open and close)

Open
#48,183 0 comments 1 reaction 0 assignees View on GitHub
Needs-Triage Product-Command Palette
Dominant language
C
Stars
139k
Forks
8.6k
PR merge metrics
PR metrics pending

Description

### Description of the new feature / enhancement

Currently, when a user assigns a dedicated global hotkey to a specific command inside the Command Palette (for example, setting `Win + Shift + K` to open "Search App"), this hotkey only functions as a one-way trigger.

Pressing the hotkey opens the specific command window immediately. However, pressing the exact same hotkey again while the window is active does not close or hide it.

### Scenario when this would be used?

This would significantly improve workflow efficiency and muscle memory.
For instance, a user might quickly press `Win + Shift + K` to look up an app, change their mind, and want to press `Win + Shift + K` again to instantly dismiss it, without having to move their hand to reach for the `Esc` key or use the mouse to click away.

### Supporting information

- This behavior is standard across many productivity launchers (like Raycast, or even PowerToys' own global launcher shortcut).
- Currently, users have to manually press `Esc` to close it, which breaks the seamless experience of using custom-mapped global hotkeys for individual extensions or commands.

Contributor guide

Open the contributing guide

Research direction

No file or test is named. Start by locating the Command Palette implementation that handles dedicated global command shortcuts, then trace how the palette opens and how Esc closes it. Done means pressing the same assigned shortcut while the command window is active hides it, while the existing open behavior remains intact.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.