keymanapp / keymanapp/keyman

feat(windows): Install keyboards and registering TIPs identified only by BCP47 tag - proof of concept

Open
#12,510 1 comment 0 reactions 1 assignee Claimed by @rc-swag View on GitHub
external feat m:bcp47 windows/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

An upcoming change to Windows 11 improves the way TIPs is registered with both the language and the keyboard ID. This will mean no more issues with LCID and transient IDs for unsupported languages. This feature is available in the insider edition of Windows 11 behind a feature flag.

This issue is to change Keyman to use this update using the `InstallLayoutOrTip`. It does not need to support the current implementation using PowerShell cmd line calls.

- [ ] Remove transient language integration
- [ ] Use InstallLayoutOrTip and not powershell to install (InstallLayoutOrTip accepts BCP-47 tag directly)
- [ ] Handle bcp47-only TIPs (and avoid use of LCIDs entirely)
- [ ] Update Keyman keyboard installs to always use 00000409 base keyboard
- [ ] Investigate - Question: is it possible to register the TIP system-wide as an 'any language' TIP?
- [ ] Document use of VIVETOOL in this issue

This replaces the need for the ticket increasing the Transient language ids to [9422](https://github.com/keymanapp/keyman/issues/9422)
Extra notes:

- input profiles identified by bcp47
- improving installation to prevent arbitrary keyboards from appearing (e.g. kbdus)
- HKL unique per IM, which means changes to HKL encodings
- InstallLayoutOrTip TIPstring extending to support bcp47:{guid}{guid},{base-klid}, plus non-default base keyboard klid, plus hotkey

To turn the featur on use Vivetool /enable /id:34912776
https://www.makeuseof.com/enable-new-keyboard-layouts-windows-11/

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.