Home

Awesome

Open Source Keyman keyboards

Table of Contents

File Layout

Keyboards are grouped into three folders:

Within each of the folders, keyboards are further grouped by first letter or by prefix, where multiple keyboards share the same prefix indicating provenance, for example sil or gff.

Contributing

Tool

Get the latest version of Keyman Developer to start the journey of keyboard development.

Standard keyboard design

A good way to start creating a keyboard is to plan out the requirements of the keyboard ahead and decide on the keyboard's language, target users, usability, structure, and many more steps that can be carried out further along the process. To ensure that the keyboard is up to standard, start by implementing the D.I.S.C.U.S. method. Find out more!

Keyboard submission guidelines

Please make sure the keyboard and the package compile successfully before making a keyboard submission. If there are warning messages, try to address all of them; if there are errors, those must be corrected before submission. Help on this: Compiler Messages

Publish your keyboard

When a keyboard is ready to submit, please confirm that the folders and files are consistent to the repository. For more clarification:

After two to three rounds of confirmation and testing, you are welcome to create a Pull Request

Modify a keyboard

To update a keyboard in this repository, follow these steps:

  1. Create a fork from this repository (Update your fork of the keyboards repository if you already have one)
  1. Download a copy of the latest files that are in your forked repository as a ZIP file.
  1. Update the keyboard files on your computer with Keyman Developer and/or a text editor
  1. Submit your updates as a new pull request

Include font files

If the fonts are used on multiple keyboards, the font files must be placed under the shared folder. Follow through this documentation. However, if you are editing the keyboard package within the folders of the forked repository (skip step 2 above) only specifying the existing shared-font location in the package is necessary.

Documentation

If the guides are not enough to provide you with a complete keyboard, don't be afraid to explore the main keyboard and keyman developer help pages!

Building Keyboards

Prerequisites

Windows:

Linux:

macOS:

Build instructions

./build.sh can be used to build all the keyboards from the command line.

Common build.sh parameters

Summary:
  Build Keyman keyboards

Script Identifier:
  /c/Projects/keyman/keyboards

Usage:
  build.sh [options...] [action][:target]...

Actions:
  clean                      remove build/ folder and build artifacts
  configure                  install dependencies, e.g. npm
  build                      build target(s)
  test                       run automated tests

Targets:
  :project                   this project

Options:
  --silent, -s               Suppress unnecessary messages
  --keyboard, -k KEYBOARD    Build specific targets only, e.g. release/ or release/a/ or release/a/anii/, comma separated
  --verbose, -v              Verbose logging
  --debug, -d                Debug build
  --color                    Force colorized output
  --no-color                 Never use colorized output
  --help, -h                 Show this help

Dependencies:
  This module has no dependencies

* Specify action:target to run a specific action against a specific :target.
* If action is specified without a target suffix, it will be applied to all :targets.
* If :target is specified without an action prefix, build:target will be inferred.
* If no action, :target, or action:target entries are specified, build will run on all :targets.

Deprecated Keyboards

If a keyboard has been replaced by another keyboard, include a DEPRECATED.md file in the folder referencing the new keyboard name.

Common Links

Community

We appreciate the effort of reaching out about any issue or suggestion that is beneficial for the community. Share with us on our community site.