feat(windows): Refactor the installation for keyboards to use a state machine.
- Dominant language
- Pascal
- Stars
- 534
- Forks
- 143
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 114
Description
### Is your feature request related to a problem? Please describe.
The Keyman for Windows installation for Keyboards is unwieldy to maintain and can be fragile. There are more than a few reasons that lead to this. The way languages and text input processors are registered in Windows. Security, operations that need to be run as an elevated user.
### Describe the solution you'd like
The problem and the steps involved lend themselves well to a state machine. Defining each state in the process and each event that drives the next piece of work to be completed. This can be laid out in a state transition matrix then implemented it should make it easier for developers to follow and also make the process more robust and more defined and consistent in handling error states.
Actually, I think this could be for the actual installation of Keyman itself as well.
- State Machine for Keyboards Install
- State Machine for Installing Keyman
### Related issues
_No response_
### Keyman apps
- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [ ] Keyman for Linux
- [ ] Keyman for macOS
- [X] Keyman for Windows
- [ ] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form
### Keyman version
17
### Operating system
Windows
Contributor guide
Research direction
No files, tests, or entry points are named. Start by mapping the existing Windows keyboard-installation steps, including language and text-input registration and elevated operations, then determine whether Keyman installation is also in scope. Done would require an agreed state-transition matrix and implemented state machines with defined error handling.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100