Git Product home page Git Product logo

kterm's Introduction

Build Status Coverity Status

# kterm

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.

On Kindle menu pops up on two fingers tap in the terminal window. On other devices on right button mouse click.

Keyboard XML config <nodes> 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

Command line options:

$ ./kterm -h
Usage: kterm [OPTIONS]
        -c <0|1>      color scheme (0 light, 1 dark)
        -d            debug mode
        -e <command>  execute command in kterm
        -E <var>      set environment variable
        -f <family>   font family
        -h            show this message
        -k <0|1>      keyboard off/on
        -l <path>     keyboard layout config path
        -o <U|R|L>    screen orientation (up, right, left)
        -s <size>     font size
        -t <encoding> terminal encoding
        -u <B|I|U>    cursor shape (block, I-beam, underline)
        -v            print version and exit

For a list of what constitutes valid encodings, check this list or the list returned by iconv -l.

Screenshots

kterm reversed color scheme kterm hidden keyboard kterm landscape mode

Changelog

  • 2.6: option for setting cursor shape (by efskap)
  • 2.5: option for setting terminal encoding (by deuill)
  • 2.4: fix: some special keys won't work, add path to terminfo in Kindle start script
  • 2.3: fix: issue with uneven keyboard rows height, unresponsivness when popup menu is cancelled, autotools build and other minor bugs
  • 2.2: fix launching kterm with hidden keyboard; add config/command line option for screen rotation (screen orientation will also be restored to initial value after quitting kterm); fix flickering at start; remove unneeded files from kindle package, add high resolution key images; some other minor issues
  • 2.1: mainly small bugfixes, compilation warnings
  • 2.0: major rewrite; added native keyboard which replaces matchbox keyboard - better stability, easier to compile and maintain; updated to build on modern frameworks; added autotools project; option to rotate screen on Kindle; option to add environment variables on command line
  • 0.7: keyboard layout for Paperwhite (by nasser), also larger labels for Touch keyboard
  • 0.6: parameter for choosing different keyboard layout from config and command line; new keyboard layout for Touch and Paperwhite (by cubemike99 and DuckieTigger)
  • 0.5: support for mouse events (for ncurses apps etc)
  • 0.4: added command line options(see kterm -h), fixed colors
  • 0.3: xterm-like "-e" option support (by Fvek), simple config file added, removed bug with blocked key-up event when quiting with exit command (traced by aditya3098)
  • 0.2: patch for matchbox-keyboard to get rid of absolute paths in config file
  • 0.1: first release

Building

  • dependencies: GTK+ version 2 or 3 (use --enable-gtk3), VTE, optionally dbus for Kindle screen rotation
  • $ ./autogen.sh
  • $ ./configure
  • $ make
  • $ sudo make install
  • for Kindle build use --enable-kindle --sysconfdir=/mnt/us/extensions/kterm configure options. If you are cross-compiling run make dist-kindle instead of make install. It will create zip package in build directory.

Packages

License

  • GPL version 3 or (at your option) any later version

kterm's People

Contributors

bfabiszewski avatar efskap avatar deuill avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.