Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
Find a file
Marc Durdin 91cd73602a fix(developer): rwrite ldml visual keyboard compiler
The visual keyboard compiler was never finished in 17.0. This rewrites
it to:

1. Use the kmxplus data rather than reading from xml directly
2. Fill in `visualkeyboard.header.kbdname`
3. Support modifiers
4. Handle encoded characters like `\u{1234}`
5. Handle string variables like `${one}`*

Additional unit tests have been added to verify the behavior of the
visual keyboard compiler in more detail.

* String variable tests will be enabled in next commit (which is a
cherry-pick of #12404).

Other fixes:

1. The LDML XML reader was relying on its input being a Node.js `Buffer`
   even though it was declared `Uint8Array`, as it implicitly used
   `Buffer.toString()` to do text conversion. (`Buffer` subclasses from
   `Uint8Array`). This breaks when using `Uint8Array` directly and means
   we had an implicit dependency on Node.js. See also #12331.
2. XML errors were not captured in the LDML XML reader. See also #12331.
3. The unused and unfinished touch-layout-compiler.ts and
   keymanweb-compiler.ts have been removed along with corresponding unit
   tests and fixtures. These will be replaced by Core implementations;
   see #12291.

Fixes: #12395
Cherry-pick-of: #12402
2024-09-12 10:02:18 +07:00
.github chore(linux): remove Ubuntu 23.10 Mantic 2024-07-24 10:14:31 +02:00
android refactor(android): Move Sentry and Apk to publish task 2024-09-11 09:13:41 +07:00
common fix(developer): rwrite ldml visual keyboard compiler 2024-09-12 10:02:18 +07:00
core fix(core): properly support 'other' modifier state with uint32_t type 2024-08-26 10:26:34 +07:00
developer fix(developer): rwrite ldml visual keyboard compiler 2024-09-12 10:02:18 +07:00
docs fix(core): serialize tests for core/wasm on mac agents 2024-06-18 07:50:54 +10:00
ios change(ios): defer registration of fonts past initialization 2024-08-21 10:37:54 +07:00
linux fix(linux): add keymanFacename to .ldml file 2024-08-29 20:14:19 +07:00
mac fix(mac): check for macOS 11 for PostEvent access 2024-09-05 09:26:56 +07:00
oem/firstvoices refactor(android): Move Sentry and Apk to publish task 2024-09-11 09:13:41 +07:00
resources chore(common): allow build agents to automatically select emsdk version 2024-08-21 15:13:43 +02:00
web Merge pull request #12240 from keymanapp/fix/web/cherry-pick/doc-keyboard-spacebar-scaling 2024-08-23 08:18:59 +07:00
windows chore(common): Update Crowdin strings for Portuguese 2024-07-18 08:49:15 -05:00
.clang-format chore(common): Add C++ formatting rules 2021-07-29 18:50:25 +02:00
.editorconfig chore(linux): Address a few more lintian warnings 2022-03-15 15:32:10 +01:00
.eslintrc.cjs chore(developer): add eslint devDependency for kmc 2023-04-25 13:44:56 +07:00
.flake8 chore(linux): Add integration tests for ibus-keyman 2021-11-04 09:22:28 +01:00
.gitignore feat(developer): remove kmcomp 2023-09-09 17:47:15 +02:00
.nycrc.json feat(developer): fixup and prepare build scripts and docs for kmc 2022-09-19 06:36:06 +10:00
.shellcheckrc chore(linux): Properly fix shellcheck SC1091 warnings 2023-05-11 11:59:15 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-10-08 10:46:53 +11:00
configure-repo.sh chore: update docs and non-standard readlink refs 2023-02-22 10:41:54 +07:00
CONTRIBUTING.md chore(linux): Break long lines in CONTRIBUTING.md 2024-02-20 16:23:18 +01:00
crowdin.yml chore(common): Update Kannada strings 2023-02-07 21:39:23 +07:00
HISTORY.md auto: increment stable-17.0 version to 17.0.330 2024-09-08 22:08:43 -04:00
LICENSE.md chore: license date 2022-03-15 13:59:27 +11:00
package-lock.json fix(developer): rwrite ldml visual keyboard compiler 2024-09-12 10:02:18 +07:00
package.json chore(common): use node v18.17.0 2024-08-01 05:12:51 +07:00
README.md Update README.md 2021-10-08 18:06:46 +11:00
TIER.md chore: stable-17.0 2024-05-15 10:08:03 +07:00
tsconfig.base.json chore: fixup js imports for schema validators 2023-10-07 06:46:10 +07:00
tsconfig.json chore(web): Merge branch 'feature-gestures' into chore/merge-master-into-feature-gestures 2023-10-12 10:31:56 +07:00
VERSION.md auto: increment stable-17.0 version to 17.0.330 2024-09-08 22:08:43 -04:00

Keyman

Keyman makes it possible for you to type in any language on Windows, macOS, Linux, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. Create keyboard layouts with Keyman Developer and share them with the community in the keyboards repository. The Keyman Community have already contributed keyboard layouts for over 2,000 languages!

License

Copyright (c) SIL International.

Keyman is an open source project distributed under the MIT license.

Get Involved

Development Status

Important Links