Activation
Press and Hold Win Key
Press and hold the Windows key (
Win) for the configured duration (default: 900ms).The guide only appears when you hold the Win key without pressing other keys. If you press another key immediately, the normal Windows shortcut executes instead.
How It Works
Activation Detection
From source/src/modules/ShortcutGuide/ShortcutGuide/shortcut_guide.cpp:90-116:
- Windows key press and hold
- No other modifier keys pressed (Shift, Ctrl, Alt)
- Held for configured duration threshold
Window Context Detection
Shortcut Guide intelligently detects the active window to show relevant shortcuts. From source/src/modules/ShortcutGuide/ShortcutGuide/shortcut_guide.cpp:28-86:
Window Eligibility
Window Eligibility
The guide checks if shortcuts apply to the current window:Excluded Windows:
- Child windows (
WS_CHILD) - Disabled windows (
WS_DISABLED) - Tool windows (
WS_EX_TOOLWINDOW) - Non-activating windows (
WS_EX_NOACTIVATE) - System windows (Taskbar, Start Menu)
- Cortana/Search UI
WS_MAXIMIZEBOX- Can be maximizedWS_MINIMIZEBOX- Can be minimizedWS_THICKFRAME- Resizable
Displayed Shortcuts
Shortcut Guide organizes shortcuts into categories:Windows Snap Shortcuts
Snap Left
Win + ← - Snap window to left halfSnap Right
Win + → - Snap window to right halfMaximize
Win + ↑ - Maximize windowMinimize/Restore
Win + ↓ - Minimize or restore window- Quarter Snapping
- Multi-Monitor
Combine arrow keys for quarter-screen snap:
Win + ←thenWin + ↑- Top-left quarterWin + ←thenWin + ↓- Bottom-left quarterWin + →thenWin + ↑- Top-right quarterWin + →thenWin + ↓- Bottom-right quarter
Snap shortcuts only appear when the active window supports snapping (has maximize/minimize/resize capabilities).
Desktop & Taskbar Shortcuts
| Shortcut | Action |
|---|---|
Win + D | Show/Hide desktop |
Win + M | Minimize all windows |
Win + Home | Minimize all except active window |
Win + , | Peek at desktop |
Win + T | Cycle through taskbar apps |
Win + [Number] | Launch taskbar app at position |
Win + B | Focus system tray |
Virtual Desktop Shortcuts
| Shortcut | Action |
|---|---|
Win + Ctrl + D | Create new virtual desktop |
Win + Ctrl + F4 | Close current desktop |
Win + Ctrl + ← | Switch to left desktop |
Win + Ctrl + → | Switch to right desktop |
Win + Tab | Open Task View |
System Shortcuts
| Shortcut | Action |
|---|---|
Win + A | Open Action Center |
Win + S | Open Search |
Win + I | Open Settings |
Win + X | Open Quick Link menu |
Win + L | Lock computer |
Win + R | Open Run dialog |
Win + E | Open File Explorer |
Win + K | Open Connect pane |
Win + P | Project display mode |
Win + U | Open Accessibility settings |
Win + V | Open Clipboard history |
Win + . or Win + ; | Open emoji picker |
Application Shortcuts
| Shortcut | Action |
|---|---|
Win + Shift + S | Screenshot (Snipping Tool) |
Win + PrtScn | Full screenshot to Pictures |
Win + G | Open Xbox Game Bar |
Win + Alt + R | Record screen |
Win + H | Voice typing |
Win + Shift + V | Cycle notification focus |
Features
Visual Design
Overlay Appearance
Overlay Appearance
The Shortcut Guide overlay features:
- Semi-transparent dark background
- Keyboard layout visualization
- Highlighted available shortcuts
- Action descriptions next to each key
- Theme-aware colors (light/dark mode)
- Smooth fade-in/fade-out animations
/src/modules/ShortcutGuide/ShortcutGuide/overlay_window.cppD2D Rendering
Shortcut Guide uses Direct2D for smooth rendering: From source files:- SVG graphics:
/src/modules/ShortcutGuide/ShortcutGuide/d2d_svg.cpp - Text rendering:
/src/modules/ShortcutGuide/ShortcutGuide/d2d_text.cpp - Window rendering:
/src/modules/ShortcutGuide/ShortcutGuide/d2d_window.cpp
Animation System
Smooth Animations
Smooth Animations
Shortcut Guide includes an animation system for smooth appearance/disappearance:
- Fade-in when Win key held
- Fade-out when released or Esc pressed
- Immediate response to Win key release
- Smooth transitions
/src/modules/ShortcutGuide/ShortcutGuide/animation.cppKeyboard Hook
Low-level keyboard hook monitors key events:/src/modules/ShortcutGuide/ShortcutGuide/shortcut_guide.cpp:128-150
Configuration
Press Duration
Adjust Duration
Configure “Press duration before showing” (default: 900ms).
- Shorter (500ms): Quick access, may activate accidentally
- Longer (1500ms): Deliberate activation, requires longer hold
Overlay Opacity
Adjust background transparency:- Higher opacity: Easier to read, blocks more of screen
- Lower opacity: Less obtrusive, can see through to content
Theme
Shortcut Guide automatically adapts to Windows theme:- Light mode: Light background, dark text
- Dark mode: Dark background, light text
Use Cases
Learning Windows Shortcuts
Learning Windows Shortcuts
For New Users:
- Discover available Windows shortcuts without searching documentation
- Learn keyboard-driven workflows gradually
- Reference guide always available with Win key hold
- Contextual shortcuts based on active window
Productivity Power Users
Productivity Power Users
For Experts:
- Quick reference for less-common shortcuts
- Discover shortcuts you didn’t know existed
- Verify exact key combinations
- Teach shortcuts to others by showing overlay
Training & Support
Training & Support
For Trainers:
- Visual aid when teaching Windows
- Show available shortcuts during presentations
- Help users remember key combinations
- Reduce need for printed shortcut references
Accessibility
Accessibility
For Accessible Workflows:
- Reduce reliance on mouse
- Discover keyboard alternatives to mouse actions
- Learn system-wide keyboard navigation
- Support for users with motor impairments
Advanced Features
Context-Aware Display
Shortcut Guide intelligently shows/hides shortcuts based on window state:- Snappable Windows
- Non-Snappable Windows
- Desktop/Taskbar Focus
When active window supports snapping:
- Shows all snap shortcuts (arrows, maximize, minimize)
- Displays multi-monitor move shortcuts
- Shows quarter-snap combinations
/src/modules/ShortcutGuide/ShortcutGuide/shortcut_guide.cpp:74-84:
Start Visible Mode
Shortcut Guide can launch in “always visible” mode for testing: Implementation:/src/modules/ShortcutGuide/ShortcutGuide/start_visible.cpp
Developer/Testing Mode
Developer/Testing Mode
When launched with start-visible flag:
- Overlay appears immediately on startup
- Stays visible without holding Win key
- Useful for testing visual changes
- Helpful for taking screenshots/documentation
Troubleshooting
Overlay Not Appearing
Overlay Not Appearing
Checklist:
- Ensure Shortcut Guide is enabled in PowerToys Settings
- Verify you’re holding Win key (not just tapping)
- Check press duration setting isn’t too long
- Don’t press other keys while holding Win
- Ensure PowerToys is running
Shortcuts Not Working
Shortcuts Not Working
Possible Causes:
- Some shortcuts may be disabled by Group Policy
- Windows version may not support certain shortcuts
- Third-party software may override shortcuts
- Active window may not support specific shortcuts (e.g., snap)
Overlay Closes Immediately
Overlay Closes Immediately
Reasons:
- Releasing Win key too quickly
- Another application capturing Win key
- Keyboard hardware sending multiple key events
- Press duration setting too short
Wrong Shortcuts Displayed
Wrong Shortcuts Displayed
Context Issues:
- Overlay shows shortcuts for detected window context
- Some applications may not be detected correctly
- System windows may show limited shortcuts
Performance
Resource Usage
System Impact
System Impact
Shortcut Guide is lightweight:
- Minimal CPU usage when idle (keyboard hook only)
- Direct2D rendering for efficient graphics
- Quick overlay rendering (less than 16ms)
- Small memory footprint
- No background processing when not active
Hide Window Types
From source, the overlay can be hidden via:Keyboard Shortcuts Reference
Complete Shortcut List
Shortcut Guide displays shortcuts from these categories:- Window Management (when applicable)
- Desktop & Taskbar (always shown)
- Virtual Desktops (Windows 10+)
- System Functions (always shown)
- Applications (context-aware)
Source Code
Location:/src/modules/ShortcutGuide/ShortcutGuide/
- Main logic:
shortcut_guide.cpp - Overlay window:
overlay_window.cpp - D2D rendering:
d2d_window.cpp,d2d_svg.cpp,d2d_text.cpp - Animation:
animation.cpp - Start visible mode:
start_visible.cpp - Native event handling:
native_event_waiter.cpp
Module Interface
Documentation:/src/modules/ShortcutGuide/ShortcutGuideModuleInterface/README.md