Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
Find a file
Marc Durdin 11043b62c9 fix(developer): get Test Mode working again
Relates to #5013.

This resolves the broken Test Mode with Keyman Core. Previously, Test
Mode just dumped the keyboard into Keyman for Windows, and let it do its
thing. Given that we no longer have the dependency on Keyman for
Windows, the Test window must use Keyman Core to process keystrokes, and
that means there are some differences in how Test Mode operates in 15.0:

* Behind the scenes, the Test mode is just the Debug mode with
  breakpoints and single step disabled, and the Debug Status window
  hidden
* Test mode requires debug information in the keyboard (see note below)
* You can always switch between Test and Debug mode
* Deadkeys are always shown in the debug window

Test Mode now requires debug information to be included in the keyboard
in order for deadkeys to be tracked correctly in the editor. While it
would be possible to remove the need for this, it does not add any
significant benefit to do so -- doing so would mean that the tester
would have less visibility into deadkeys, and complicate the Core
marker tracking in the debug window.

I considered removing Test Mode altogether, but it still feels like a
useful view for playing with a keyboard without all the debugging
paraphernalia cluttering the display. It's a little slower than full
native Keyman for Windows (aka the 14.0 Test Mode), because the debug
hooks are still running in the background, but it is quite usable.

Note the removal of `Application.ProcessMessages`. This resolves the
issue of keystrokes being swallowed by the debugger during
non-interactive debug runs, making rapid input work properly in both
Debug Mode and Test Mode.
2021-08-18 07:46:39 +10:00
.github chore: Add cherry-pick label for cherry-pick PRs 2021-04-23 12:14:28 +02:00
android Merge pull request #5541 from keymanapp/fix/android/back-destroy-progress-dialog 2021-08-06 10:28:06 +07:00
common Merge pull request #5564 from keymanapp/chore/core/uninstall 2021-08-09 08:15:20 +02:00
developer auto: increment master version to 15.0.96 2021-08-06 14:02:51 -04:00
docs chore(linux): Consolidate Debian source packages 2021-08-06 11:25:00 +02:00
ios Merge pull request #5486 from keymanapp/chore/crowdin-update-az 2021-08-05 07:51:55 +07:00
linux Merge pull request #5565 from keymanapp/docs/linux/ibus 2021-08-09 08:14:40 +02:00
mac Merge pull request #5324 from keymanapp/docs/shared-build-docs 2021-07-01 11:57:09 +10:00
oem/firstvoices fix(oem/fv/android): Update sentry-android-gradle-plugin 2021-08-04 10:38:42 +07:00
resources auto: increment master version to 15.0.96 2021-08-06 14:02:51 -04:00
web feat(web): setup build environment for manual tests 2021-08-16 10:33:16 +10:00
windows/src fix(developer): get Test Mode working again 2021-08-18 07:46:39 +10:00
.clang-format chore(common): Add C++ formatting rules 2021-07-29 18:50:25 +02:00
.editorconfig fix(linux): add more package requirements 2020-02-06 18:26:57 +01:00
.flake8 feat(linux): Install keyboard on Gnome 2020-06-24 19:13:40 +02:00
.gitignore chore(linux): Consolidate Debian source packages 2021-08-06 11:25:00 +02:00
configure-repo.sh feat(common): Support git worktree when configuring local hooks 2020-02-24 18:30:57 +01:00
crowdin.yml chore(common): Check in crowdin strings for Spanish (Latin America) 2021-06-11 07:33:56 +07:00
HISTORY.md auto: increment master version to 15.0.96 2021-08-06 14:02:51 -04:00
lerna.json auto: increment master version to 15.0.96 2021-08-06 14:02:51 -04:00
linux.code-workspace default platform and baselayout for linux 2018-12-18 15:49:56 +07:00
package-lock.json chore(android/engine): Cleanup regex 2021-08-02 09:43:49 +07:00
package.json chore(common): updates lerna to 4.0.0 2021-07-02 14:47:28 +07:00
README.md chore: Add localization progress badge 2021-02-04 11:40:34 +07:00
TIER.md chore: start history/version infrastructure 2020-01-29 08:54:32 +11:00
VERSION.md auto: increment master version to 15.0.96 2021-08-06 14:02:51 -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 1,500 languages!

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

Get Involved

Crowdin

Get involved

Development Status on status.keyman.com

Platform Alpha Beta Stable
Windows Alpha Beta Stable
macOS Alpha Beta Stable
Web Alpha Beta Stable
Android Alpha Beta Stable
iOS Alpha Beta Stable
Linux Alpha Beta Stable

Getting Started

Desktop Platforms

Web & Mobile Platforms

Release Types

Each platform maintains multiple types of releases:

  • Stable: A released version. On a stable or stable-<version> branch.
  • Beta: A version that is nearing full "stable" release. On the beta branch.
  • Alpha: Contains the very latest code. These versions are published daily whenever the code changes. On master branch.

License

Copyright (c) 2018-2021 SIL International. All rights reserved.

Licensed under the MIT License.

Keyman for Linux is licensed under the MIT License apart from ibus-kmfl which is licensed under the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Notes for Contributors

When cloning this repo for local development on a Windows machine, take care not to place it overly deep in your file system. Some of the paths for compilation can push character lengths around 160 characters long, while certain operations on Windows systems may be limited to paths of 260 characters or less. For example, git clean on Windows with msys is limited due to dependence on older Windows APIs.