Shawn Yuan
75526b9580
[Feature] PowerToys hotkey conflict detection ( #41029 )
...
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Implements comprehensive hotkey conflict detection and resolution system
for PowerToys, providing real-time conflict checking and centralized
management interface.
## PR Checklist
- [ ] **Closes:** #xxx
- [x] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json )
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs )
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml )
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml )
- [x] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys )
and link it here: [Shortcut conflict detction dev
spec](https://github.com/MicrosoftDocs/windows-dev-docs/pull/5519 )
## TODO Lists
- [x] Add real-time hotkey validation functionality to the hotkey dialog
- [x] Immediately detect conflicts and update shortcut conflict status
after applying new shortcuts
- [x] Return conflict list from runner hotkey conflict detector for
conflict checking.
- [x] Implement the Tooltip for every shortcut control
- [x] Add dialog UI for showing all the shortcut conflicts
- [x] Support changing shortcut directly inside the shortcut conflict
window/dialog, no need to nav to the settings page.
- [x] Redesign the `ShortcutConflictDialogContentControl` to align with
the spec
- [x] Add navigating and changing hotkey auctionability to the
`ShortcutConflictDialogContentControl`
- [x] Add telemetry. Impemented in [another
PR](https://github.com/shuaiyuanxx/PowerToys/pull/47 )
## Shortcut Conflict Support Modules

<details>
<summary>Demo videos</summary>
https://github.com/user-attachments/assets/476d992c-c6ca-4bcd-a3f2-b26cc612d1b9
https://github.com/user-attachments/assets/1c1a2537-de54-4db2-bdbf-6f1908ff1ce7
https://github.com/user-attachments/assets/9c992254-fc2b-402c-beec-20fceef25e6b
https://github.com/user-attachments/assets/d66abc1c-b8bf-45f8-a552-ec989dab310f
</details>
<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Manually validation performed.
---------
Signed-off-by: Shawn Yuan <shuaiyuan@microsoft.com >
Signed-off-by: Shuai Yuan <shuai.yuan.zju@gmail.com >
Co-authored-by: Niels Laute <niels.laute@live.nl >
2025-08-20 09:31:52 +08:00
Mykhailo Pylyp
601da71f15
[Shortcut Guide] Move into separate process ( #11359 )
2021-05-20 15:07:34 +03:00
Enrico Giordani
dbda4d50bd
[runner] rename 'module' variables ( #8999 )
...
rename all occurrences of 'module' to 'pt_module' to prevent intellisense error
2021-01-08 19:26:38 +01:00
Andrey Nekrasov
212ea2de30
common: refactor common library pt2 ( #8588 )
...
- remove common lib
- split settings, remove common-md
- move ipc interop/kb_layout to interop
- rename core -> settings, settings -> old_settings
- os-detect header-only; interop -> PowerToysInterop
- split notifications, move single-use headers where they're used
- winstore lib
- rename com utils
- rename Updating and Telemetry projects
- rename core -> settings-ui and remove examples folder
- rename settings-ui folder + consisent common/version include
2020-12-15 15:16:09 +03:00
Ivan Stošić
b266e336b5
[Launcher] Use a keyboard hook in the runner to invoke the Launcher ( #6660 )
...
* Added a keyboard hook to the runner
* Update RootKeyboardHook
* Enable reading the whole JsonObject property
* Renamed RootKeyboardHook to CentralizedKeyboardHook
* Fixed build break, changed callback return type to bool
* Added Hotkey struct which somehow went missing
+ Cherry-pick fixes
* Reorganized the kb hook
* Basic version works
* Various fixes
* Finishing touches
* Fix potential threading issue
* int -> size_t
* Add default initializers to the Hotkey struct
* Added a suggested comment
* Unified a constant
* Use C# classes instead of native calls for sync
* Added a claryfing comment
* Use std::move
* Renamed a method
* Possible fix for compilation errors
* Fix a regression
* Show a message on failure
* Added DISABLE_LOWLEVEL_HOOK support
* Allow running Launcher as standalone
* Rename string constants
2020-09-21 12:44:16 +02:00
Andrey Nekrasov
49b56d9b52
PowerToys interface: remove powertoys events and system_menu_helper functionality ( #5323 )
2020-07-31 14:06:13 +03:00
Andrey Nekrasov
8c6085b933
Runner: move Launcher to its own folder and simplify dll loading ( #4379 )
2020-06-22 13:01:33 +03:00
stefansjfw
5a5b5292a1
Order PowerToys aplhabetically Settings ( #1706 )
...
* Order PowerToys aplhabetically in both Settings list and General Settings enable's list
* Remove uneeded include
2020-03-26 11:51:05 +01:00
Andrey Nekrasov
0ac6c01d65
runner: simplify powertoy_module interface ( #1560 )
2020-03-13 12:55:15 +03:00
Enrico Giordani
415a0cdf28
Coding style (runner) ( #1013 )
2019-12-26 17:26:11 +01:00
yuyoyuppe
7357e40d3f
Use WinRT JSON parser instead of custom cpprestsdk solution ( #822 )
2019-12-06 11:40:23 +03:00
vldmr11080
be86cd4028
Customize system menu items through dedicated API ( #677 )
...
Document new interface changes.
2019-11-12 11:48:14 +01:00
Enrico Giordani
a07a42624b
Telemetry events
...
* Don't trace event on exit
change 'PowertoyModuleDeleter' to not call 'module->disable();' before 'module->destroy();' so the module can distinguish between being turned off and PowerToys exiting.
Code formatting.
* uppercase for event name
* Trace on/off event for ShortcutGuide module
* Trace the 'hide' event only if the guide was visible
'on_hide()' is invoked when the module is turned off, in that case don't trace the hide event.
* Remove spaces in data field names
Remove 'ShowGuide' event since it's not providing any useful data.
* Include build number in version number
2019-10-22 08:11:23 +02:00
Bartosz Sosnowski
8ac6db8b5a
Fix cppcheck reported issues ( #333 )
...
Fixes: https://github.com/microsoft/PowerToys/issues/266
2019-09-11 12:38:20 +02:00
Bartosz Sosnowski
8431b80e48
FancyZones and Shortcut Guide initial commit
...
Co-authored-by: Alexis Campailla <alexis@janeasystems.com >
Co-authored-by: Bret Anderson <bretan@microsoft.com >
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com >
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com >
Co-authored-by: Jeff Bogdan <jeffbog@microsoft.com >
Co-authored-by: March Rogers <marchr@microsoft.com >
Co-authored-by: Mike Harsh <mharsh@microsoft.com >
Co-authored-by: Nachum Bundak <Nachum.Bundak@microsoft.com >
Co-authored-by: Oliver Jones <ojones@microsoft.com >
Co-authored-by: Patrick Little <plittle@microsoft.com >
2019-09-05 18:12:40 +02:00