Kterm – terminal emulator with embedded keyboard

This is a simple GTK+ terminal emulator with embedded virtual keyboard. It is based on VteTerminal library. Some initial settings may be defined in kterm.conf file. Keyboard layouts are defined in xml config files. The keyboard config files follow the same rules as matchbox keyboard configs (backward compatible with kterm 1.x which used embedded matchbox keyboard).

Kterm has been developed for Kindle Touch. It is reported to also work on Paperwhites. Generally it should work on any platform which supports GTK+, either version 2 or 3.

Run kterm -h for all command line options

On Kindle menu pops up on two fingers tap in the terminal window. On other devices on right button mouse click. I don't think I will add many more features, as it is to be simple.

I prepared binary package for download. You should use this package with Unified Applications Launcher. First install the launcher then unzip my package to extensions folder. Then start launcher and choose kterm from menu.

If you want to build it yourself clone kterm from github and follow instructions in README. You will need GTK+ and VTE libraries.


kindle terminal emulator kterm screenshot kindle terminal emulator kterm screenshot


Keyboard config

Keyboard XML config may be easily customized. It contains nodes for each row and key. See example. It supports following tags and attributes:

<layout> - layout

<row> - row

<space> - empty spacer

<key> - key, attributes:

• extended = [true|false], optional, if true only visible in landscape mode, defaults to false;

• fill = [true|false], optional, if true button will expand to use all available space, defaults to false;

• width = [width in kterm units], optional, 1000 is standard width, 2000 will be double width key and so on; defaults to 1000;

• obey-caps = [true|false], optional, should button change on caps lock press, defaults to false;

<default> - default variant (no modifier)

<shifted> - shifted variant (shift/caps lock modifier pressed)

<mod1> - mod1 variant (mod1 modifier pressed)

<mod2> - mod2 variant (mod2 modifier pressed)

<mod3> - mod3 variant (mod3 modifier pressed)

• attributes for all variant nodes (default, shifted, …):

• display = [character|image:/path/to/image], required, character to display or image path (absolute must start with slash, otherwise relative to config);

• action = [character|special name|modifier:name], required for keys with image label, modifiers, special buttons, character sent to terminal, name of special action, or name of modifier, defaults to display attribute value;

• for a list of special key names see this lookup table; valid modifier keys are: shift, caps, ctrl, alt, mod1, mod2, mod3



Some useful terminal programs built for Kindle Touch 5.1–5.3.

By the way, kterm should work on any unix machine with GTK+ and libVTE. Here is a screenshot from OS X.

terminal emulator with embedded keyboard