Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
Find a file
Marc Durdin f9fa1a685e fix(developer): support Windows and Unicode names in .ttf
The ttfmeta library is extremely rudimentary. It does next to no error
checking, and supports only a small part of the TTF spec. It did not
support NAME platforms 0 or 3 (the most common platform, Windows), and
these are encoded in UTF-16BE. This patch adds support for those
platforms and throws if an unsupported platform/encoding is encountered.

Now, the ttfmeta library is unsupported and gone (#11630). It is based
on another library, ttfinfo, last updated 11 years ago. This is not
great. But the other Node libraries that I located introduce further
dependencies or complex builds (e.g. WASM) and that's not great either,
for a function used only in one place in our build environment.

https://learn.microsoft.com/en-us/typography/opentype/spec/name

The test-font-family.ts runs a basic test against Lateef font, and has
a skipped test that can be run (with minor edits) against all fonts in
the keyboard repository. I have done this to verify that there are no
fonts that return errors, but have disabled this test for deployment for
now.

Fixes: #11625
2024-05-31 15:24:47 +07:00
.github fix(linux): Don't clean workdir after checkout in API verification 2024-05-28 16:32:05 +02:00
android Merge pull request #11508 from keymanapp/fix/android/show-banner-null-guard 2024-05-30 13:59:44 +07:00
common Merge pull request #11611 from keymanapp/chore/windows/support-port-in-httpuploader 2024-05-31 13:07:46 +07:00
core Merge branch 'feat/core/9467-devolve-regex-to-js-epic-ldml' into feat/core/9467-devolve-norm-to-js2-epic-ldml 2024-05-25 05:41:01 +07:00
developer fix(developer): support Windows and Unicode names in .ttf 2024-05-31 15:24:47 +07:00
docs docs(common): update min emscripten version in docs to 3.1.46 2024-05-24 14:52:31 +07:00
ios Merge pull request #11613 from keymanapp/fix/ios/11602-file-error-on-startup 2024-05-31 07:58:21 +07:00
linux Merge pull request #10637 from keymanapp/chore/linux/10626_apichecks 2024-05-21 19:03:36 +02:00
mac Merge branch 'master' into chore/mac/main-build.sh-rework 2024-05-30 09:52:25 +07:00
oem/firstvoices Merge pull request #11524 from keymanapp/fix/windows/oem-build-sh 2024-05-24 12:22:11 +07:00
resources chore: Apply suggestions from code review 2024-05-30 12:30:33 +10:00
web Merge pull request #11600 from keymanapp/fix/web/osk.hide-event-param 2024-05-30 15:50:52 +07:00
windows Merge pull request #11524 from keymanapp/fix/windows/oem-build-sh 2024-05-24 12:22:11 +07: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 chore(developer): minor cleanup on scripts 2024-05-20 06:35:11 +07: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(common): update labels to include change, style 2024-05-24 09:43:10 +07:00
crowdin.yml chore(common): Update Kannada strings 2023-02-07 21:39:23 +07:00
HISTORY.md auto: increment master version to 18.0.45 2024-05-24 14:05:27 -04:00
LICENSE.md chore: license date 2022-03-15 13:59:27 +11:00
package-lock.json fix(developer): bundle ttfmeta library internally with kmc-keyboard-info 2024-05-31 14:54:09 +07:00
package.json chore(web): centralizes on a single @types/node, as it caused a TS typing conflict 2024-05-15 16:00:35 +07:00
README.md Update README.md 2021-10-08 18:06:46 +11:00
TIER.md chore: revert tier and version 2024-03-01 13:36:32 +07:00
tsconfig.base.json chore(web): updates all KMW-related projects to TS 5.4.5 2024-05-15 16:00:34 +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 master version to 18.0.45 2024-05-24 14:05:27 -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