keymanapp / keymanapp/keyman

feat: Support Incremental Keyboard Extensions

Open
#16,079 1 comment 0 reactions 0 assignees View on GitHub
common/ feat
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Is your feature request related to a problem? Please describe.

I'll describe the real-world problem that this feature request comes from. A user is most comfortable using the SIL Ethiopic Power-G Keyboard, but wants to type special Ge'ez symbols that are supported by the GFF Ge'ez Keyboard. Switching between keyboards would be very frequent, undesirable, and would negatively impact productivity.

### Describe the solution you'd like

What the user wishes for is a version of the SIL Ethiopic Power-G keyboard that includes input of the special characters. The special characters, in turn, would not be desirable for regular users, so it would be better to create a variant of the SIL Ethiopic Power-G keyboard.

This leads to a proliferation of keyboards. There would be some benefit if a .kmx file could be created that contained _only_ the input rules for the special characters, and Keyman could select this .kmx file as an additive extension to the SIL Ethiopic Power-G, or any other Ethiopic keyboard, for that matter. Thus, the keyboard extension works like a loadable module to extend an active keyboard. A warning could appear if a rule conflict occurs, and the user could elect to override the conflict with the extension.

I'm expecting this feature request to be low priority, unless this type of modularity is part of the LDML framework.

### Describe alternatives you've considered

Proliferation of keyboards.

### Related issues

_No response_

### Keyman apps

- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [x] Keyman for Linux
- [x] Keyman for macOS
- [x] Keyman for Windows
- [ ] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form

### Keyman version

Any

### Operating system

Windows, Mac, Linux

### Device

Laptop, Desktop

### Target application

Any

### Browser

Any

### Keyboard name

Any

### Keyboard version

Any

### Language name

Any

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.