spiegel-keyman/linux
2020-07-23 17:36:06 +02:00
..
build/agent chore(linux): Update automatically installed dependencies 2020-06-18 10:24:19 +02:00
ibus-keyman chore(linux): Add license details for kmpdetails.* 2020-07-15 16:34:59 +02:00
ibus-kmfl Merge pull request #3176 from keymanapp/feat/issue-1596 2020-05-27 18:15:31 +02:00
keyman-config docs(linux): Update readme 2020-07-23 17:36:06 +02:00
kmflcomp chore(linux): Update maintainer 2020-05-26 09:05:07 +02:00
libkmfl feat(linux): Improve Linux package description 2020-06-22 14:30:04 +02:00
scim_kmfl_imengine [linux] remove autotool generated files 2018-09-12 11:04:28 +07:00
scripts feat(linux): Use staging URLs for alpha version 2020-07-17 19:22:51 +02:00
.editorconfig feat(linux): Add ability to configure keyboard options 2020-01-31 11:43:58 +07:00
.gitignore chore(linux): Update references from keyboardprocessor to desktop 2020-02-26 16:40:20 +07:00
.pbuilderrc fix(linux): Add eoan 2020-02-05 15:11:43 +01:00
history.md chore: merge stable history 2020-04-29 06:33:31 +10:00
Jenkinsfile feat(linux): Add focal as platform to build packages for 2020-03-17 11:01:41 +01:00
LICENSE.md describe dual licensing in LICENSE.md 2018-06-11 13:35:30 +07:00
Makefile don't do setup.py clean 2019-01-02 14:40:40 +07:00
README.md docs(linux): Add info how to run Linux unit tests 2020-06-17 18:08:12 +02:00
README.repo update some docs for ibus-keyman 2018-11-07 14:21:54 +07:00
VERSION chore(linux): use new version infrastructure 2020-01-31 06:09:17 +11:00

Keyman for Linux

Projects

  • keyman-config - km-config and some other tools to install, uninstall and view information about Keyman keyboard packages.
  • ibus-keyman - IBUS integration to use .kmx Keyman keyboards
  • kmflcomp - KMFL keyboard compiler
  • libkmfl - older KMFL core library
  • ibus-kmfl - IBUS integration to use KMFL
  • scim_kmfl_imengine - deprecated SCIM engine to use KMFL

See license information about licensing.

Linux Requirements/Setup

  • It is helpful to be using the packages.sil.org repo

  • Install packages required for building and developing KMFL and Keyman for Linux sudo apt install cdbs debhelper libx11-dev autotools-dev build-essential dh-autoreconf flex bison libibus-1.0-dev python3-setuptools meson libjson-glib-dev libgtk-3-dev libxml2-utils help2man python3-lxml python3-magic python3-numpy python3-pil python3-pip python3-qrcode python3-requests python3-requests-cache python3 python3-gi dconf-cli dconf-editor

Compiling from Command Line

Build script

Installing for ibus to use ibus-kmfl or ibus-keyman
  • The process to build and install everything is:

    • make reconf to create the build system and set the version
    • make fullbuild to configure and build
    • sudo make install to install to /usr/local
  • Some of the files must be installed to /usr/share/ so make install must be run as sudo.

    To do this run sudo make install

    • This will install to /usr/local

      • and /usr/share/ibus/component/kmfl.xml and /usr/share/kmfl/icons
      • and /usr/share/ibus/component/keyman.xml and /usr/share/keyman/icons
    • If you already have the ibus-kmfl package installed then it will move the file /usr/share/ibus/component/kmfl.xml to /usr/share/doc/ibus-kmfl/

    • If you already have the ibus-keyman package installed then it will move the file /usr/share/ibus/component/keyman.xml to /usr/share/doc/ibus-keyman/

  • run sudo make uninstall to uninstall everything and put it back again

Tmp install

Used by TC for validating PRs

Run make tmpinstall to build and install keyboardprocessor, kmflcomp, libkmfl, ibus-kmfl and ibus-keyman to /tmp/kmfl

This is only for testing the build, not for running ibus-kmfl or ibus-keyman in ibus

Manually

  • libkmfl requires kmfl.h header from kmflcomp
  • ibus-kfml requires kmfl.h and headers and lib from libkmfl
  • ibus-keyman requires headers and lib from keyboardprocessor

So

  • kmflcomp must be built and installed before libkmfl
  • libkmfl must be built and installed before ibus-kmfl
  • keyboardprocessor must be built before ibus-keyman

For each project run ./configure && make && make install.

You may prefer to create a different directory to build in and run configure from there e.g.

mkdir ../build-kmflcomp
cd ../build-kmflcomp
../kmflcomp/configure
make
make install

The install of ibus-kmfl doesn't install everything to the correct location for it to be used - to be fixed

Continuous integration

Teamcity PR builds will run make tmpinstall Master builds run make tmpinstall and create source packages Nightly builds upload the most recent new master build to https://downloads.keyman.com

Building packages

See Linux packaging doc for details on building Linux packages for Keyman.

Testing

The unit tests can be running with the following command:

cd linux/keyman-config
./run-tests.sh

Running Keyman for Linux

Setting up Ibus

Ibus should be running on a default install of Ubuntu

You may want to install extra packages to get other ibus input methods e.g ibus-unikey for VN

Run ibus restart after installing any of them

Getting a Keyman keyboard

  • After installing a Keyman keyboard you need to run ibus restart so that ibus will look for it. (TODO: double check this)

Activating a Keyman keyboard

GNOME3 (focal and bionic default)
  • Click the connection/sound/shutdown section in the top right. Then the tools icon for Settings.

  • In Language and Region click + to add a keyboard.

  • Click the 3 dots expander then search for "Other" and click it

  • The Keyman keyboards should be listed here to choose

  • Use Win-space to switch between keyboards.

Unity (xenial default)
  • Run Text Entry
  • Click + to add a keyboard.
  • In Choose an input source search for "Other" or the keyboard name, or "Ibus" to find Keyman keyboards.

Check Show current input source in the menu bar to see what keyboard you are using and have a menu for keyboards.

Use Win-space to switch between keyboards.

Cinnamon (wasta xenial default)
  • Open Menu and find IBus Preferencesand run it
  • Make sure Show icon on system tray is checked
  • Select the tab Input Method.
  • Click Add to add a keyman keyboard.
  • Click the 3 dots expander then search for "Other" and click it
  • The Keyman keyboards should be listed here to choose
MATE (alternative)
  • Open System-> Preferences -> Other -> IBus Preferences.
  • Make sure Show icon on system tray is checked
  • Select the tab Input Method.
  • Click Add to add a keyman keyboard.
  • Click the 3 dots expander then search for "Other" and click it
  • The Keyman keyboards should be listed here to choose