microsoft / microsoft/PowerToys
[Keyboard Manager] Add CLI configuration and profile management
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Description of the new feature / enhancement
Add a supported command-line interface for managing Keyboard Manager configurations and profiles.
Useful initial commands would include:
```console
powertoys keyboard-manager list
powertoys keyboard-manager export --output remaps.json
powertoys keyboard-manager import remaps.json
powertoys keyboard-manager activate
```
Import and activation should validate the configuration, report conflicts clearly, and notify the running Keyboard Manager instance to reload it. Machine-readable output and reliable exit codes should be supported for deployment tooling.
### Scenario when this would be used?
- Back up and restore remappings when moving to a new PC.
- Provision standard remappings through setup scripts, Intune, or other enterprise tooling.
- Switch between task-specific remapping profiles without editing each mapping manually.
### Supporting information
Related requests:
- #49508 requests deployment of a default configuration.
- #49486 requests Keyboard Manager profiles.
- #4649 tracks command-line access to PowerToys settings generally, but does not provide functional import, export, validation, or profile activation for Keyboard Manager.
Commands should follow `doc/devdocs/cli-conventions.md`.
Contributor guide
Research direction
Read doc/devdocs/cli-conventions.md first, then trace the existing Keyboard Manager configuration and profile entry points. Define how list, export, import, and activate should validate configurations, report conflicts, notify the running manager, and expose machine-readable output with reliable exit codes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- cli, desktop, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100