Keyman Documentation
repository·master·Indexed 19 days ago
https://github.com/keymanapp/keymanOpen-source cross-platform keyboard input solutions for various languages. Includes guides for building Keyman for Android (KMAPro), integrating the Keyman Engine for Android library, using KeyboardHarness for troubleshooting, and specifications for displayMap JSON files, keyboard_info schemas, and .keyman-touch-layout file formats.
What's inside Keyman
- The Keyman Engine for Windows consists of several build artifacts that handle keyboard processing, UI, and system integration. These components work together to capture and translate keystrokes, manage language switching, and interface with the Windows Text Services Framework (TSF).
Overview of Keyman Core API
masterKeyman Core is the component of the Keyman Engine responsible for implementing keyboarding rules. It is designed to be platform-independent and keyboard-format agnostic (supporting both KMN and LDML).
Note: This is an internal API intended exclusively for use within the Keyman Engine. It is currently used by Keyman for Linux, Windows, macOS, and Keyman Developer.
Overview of the Gesture Recognizer Module
masterThe Gesture Recognizer module is an internal component used by all of Keyman's Web-based On-Screen Keyboards (OSKs). Currently, it is only referenced byKeymanWeb(located in the/web/directory of this repository).Overview of $NAME keyboard
masterThis document serves as the template for the$NAME keyboarddocumentation. It provides a description of the keyboard's functionality, links to its dedicated homepage on the Keyman website, copyright information, and a list of supported platforms.Overview of Keyman
masterKeyman is an open-source platform that enables users to type in any language across multiple platforms, including Windows, macOS, Linux, iOS (iPhone/iPad), and Android. It also supports instant typing within web browsers via an online keyboard.
Developers can create custom keyboard layouts using Keyman Developer and share them with the community through the Keyman keyboards repository.
Overview of engine/dom-utils
masterThe
engine/dom-utilssubmodule provides a specialized subset of the Keyman Engine's Web-oriented code. Its primary purpose is to facilitate DOM-based layout interactions. It is designed as a standalone module to prevent entanglement between its various consumers, which include:- The public API for Keyman Engine for Web.
- Layout operations within the OSK (On-Screen Keyboard).
- Desktop UI modules that interface with Keyman Engine for Web.
- The element-attachment manager, specifically for determining tab order among attached elements.
Overview of the $NAME keyboard template
masterThe$NAME keyboardtemplate is a generated structure used by the Keyman Developer Command Line Compiler (kmc-generate) to create a new keyboard project. It serves as the base for keyboard definitions, containing metadata such as a description, a link to the keyboard's homepage on keyman.com, copyright information, and a list of supported platforms.What is Keyman?
masterKeyman is a keyboard application that remaps your hardware keyboard to virtual keyboards, enabling you to type in over 2000 languages across Windows applications and the Web. It is fully Unicode-compliant and works with standard hardware keyboards.
Key Capabilities:
- Broad Compatibility: Works in Windows programs (Word, Excel, Adobe InDesign, etc.), web browsers (Chrome, Firefox, Edge), and email services (Outlook, Gmail).
- Keyboard Access: Download existing keyboards from the Keyman Website or create custom ones using Keyman Developer.
- Open Source: Keyman is free and open source software.
Overview of @keymanapp/developer-utils
masterThe
@keymanapp/developer-utilspackage is a helper library designed specifically for use within@keymanapp/kmcand other internal@keymanappmodules. It provides shared utility functions to streamline development tasks across the ecosystem.Key features include:
spawnChild(): A utility for managing child processes.- Sentry integration: Helpers for error tracking and reporting.
- MIT license text validation: Utilities to ensure license compliance.
Important Usage Note: This library is not intended for separate use by external consumers. Because
developer/serverdepends on this module, adding extra dependencies to@keymanapp/developer-utilscan impact the bundling process for the developer server.What is keyman-system-service?
masterThekeyman-system-serviceis a DBus system service designed to provide access to/dev/input/*devices. It enables keyboard-related actions, such as toggling Caps Lock, which is particularly necessary when running in a Wayland environment, though it is also compatible with X11.Overview of Keyman Engine for Android
masterKeyman Engine for Android 19.0 is a Java library designed for Android 5.0 and later versions. It allows developers to implement fully customizable keyboard layouts either within a specific application (in-app) or as a system-wide keyboard.
Keyboard layouts can be authored using Keyman Developer or selected from an existing library of keyboard layouts.
Overview of CEF4Delphi
masterCEF4Delphi is an open-source project used to embed Chromium-based browsers into applications built with Delphi or Lazarus/FPC. It supports multiple platforms including Windows, Linux, and MacOS.
Key Features
- Framework Support: Includes components for VCL, FireMonkey (FMX), and Lazarus.
- Chromium Version: Uses CEF 89.0.18 (Chromium 89.0.4389.114).
- Compatibility:
- Delphi: Tested on 7, XE, 10, 10.2, 10.3, and 10.4.2.
- Lazarus/FPC: Tested on Lazarus 2.0.12 and FPC 3.2.0.
- OS: Windows 7 or newer is required for Windows components. For Windows XP/Vista support, use
OldCEF4Delphiinstead.