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
sosssego
78f5b4c3a4
[Analyzers][CPP] turn on Warning 4100 ( #21449 )
...
* Analyzers CPP
Changing the warning level from 3 to 4.
change some project files to make them use the warning config in cpp props file.
* Analyzers C++ turn on warning 4706
Change Cpp.Build.props file to enable 4706
fix BugReportTool code to get rid of 4706
* Turn on warning 4100 and fix the code
* Follow c++ core guidelines
* Adapting to PR comments
2022-11-09 14:41:14 +00:00
sosssego
19c4255c7d
[Analyzers][CPP]Turn on C26451 and fix code ( #21230 )
...
* Turn on rule as error and fixing code
* Add packages to external include paths
* Disable warrnings on external code.
2022-10-25 17:33:23 +01:00
Jaime Bernardo
567cc50fb7
[Runner]remove hotkeyEx when disabling a module ( #15944 )
2022-02-02 12:17:37 +00:00
Jaime Bernardo
f647223e94
[Shortcut Guide] Activate with Windows key press ( #13342 )
...
* [Shortcut Guide] Activate with Windows key press
* fix spellchecker
* pr comments: fix search and add lock
* Add activation method combo box
* fix spellchecker issue for customized
* Standardize centralized hotkeys file names
* Add warning when using the long win key method
* Address PR feedback on text
* More PR feedback
2021-09-23 14:23:22 +01:00
Mykhailo Pylyp
601da71f15
[Shortcut Guide] Move into separate process ( #11359 )
2021-05-20 15:07:34 +03:00
Mykhailo Pylyp
9a3896f48a
logs ( #10462 )
2021-03-26 19:17:26 +02: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
Divyansh Srivastava
280d1907d8
Non localized module name ( #7170 )
...
* Added get_key to powertoysmodule interface
* Replace get_name with get_key
* Implement get_key function in modules
* Make key global constant in each module
* Update settings v1 to use key to load and save files
* Fixed fancyzones and preview pane unit tests
* Removed setings unit test as the case is not covered anymore
* Add constant files for modules and use it to reference module key
* Add constant string files to colorpicker, launcher and shortcut guide
* correct sunction signature in settings helper
* Fix powerpreview merge conflicts
* nit fix with include statement location
* add check for fields in from_json_string
* Updated preview pane tests with correct from_json_string signature
* Correct Image resizer naming
* Roll back changes for adding check for property and version
* Fix image resizer not working
2020-10-19 16:07:02 -07: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
vldmr11080
3aa7a52c21
[FancyZones] Initial improvements in FancyZones exception handling ( #6063 )
...
* Initial improvements in FancyZones exception handling
* Add callback
* Disable FancyZones if error durign loading data occurrs
* Remove logs
* Add resource strings
* Add 1sec retry when failure during initialization occurs
* Rephrase error descriptions
* Error handling during loading of module in runner
* Pass error handling on the runner
* Remove unneeded string
* Remove unnedeed changes
2020-09-18 15:18:01 +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
Josh Soref
0bcaa13056
Spelling: ... runner settings ( #3783 )
...
* spelling: default
* spelling: elevated
* spelling: instance
* spelling: relative
2020-05-27 17:06:50 +02:00
Nghia M. Luong
c768b6bd0c
Remove unused headers ( #2471 )
2020-04-30 20:14: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
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