Termim

Introduction

Termim is a terminal input method: il allows to type strange languages, like Chinese, in standard Unicode compliant terminals. The master word for termim is simple. Termim does not rely on complex client/server protocols and keeps all its data himself. The only configuration required is “which keys do you want to use to change the language?” (and “where should the man page go?”). Termim is free software.

Quickstart

You want to try it fast? Follow these steps:

  • make sure you have gcc and perl;
  • download the latest tarball of termim;
  • tar -xfz termim-xxx.tar.gz
  • cd termim-xxx
  • make
  • make sure you are in an UTF-8 terminal (I will write a mini xterm-UTF8 HOWTO);
  • TERMIMRC=./termimrc ./termim
  • start any UTF-8 capable application and type, using F1, F2 e, F2 c, F2 g, F2 t, F2 a, F2 h, F3 c, F3 k, F3 h and F3 j to change the mode.

User documentation

The documentation is in the source tarball. There is an online rewrite of it.

Installation

System requirements

To build termim, you need a modern Unix operating system. Please note that, as far as termim is concerned, BSD are obsolete operating systems but are nevertheless supported. Termim has been successfuly tested under:

  • Linux (2.2 and 2.4, 2.0 will not work, glibc 2.2, dietlibc does not work)
  • Solaris (7 and 8)
  • FreeBSD (4.5)

You need also a reasonably modern C compiler; gcc 2.95 and 3 are ok, as Solaris C compiler.

A perl 5 interpreter is also required to convert dictionary files into C syntax.

Building termim

Read the INSTALL file. Edit the top of the Makefile to choose your compiler and compiler flags, and the paths. Type make. Test, type make install.

Expanding termim

Termim is designed so that adding new input methods is possible without changing the code (except registering it in the array of input methods). If you want to add support for your favorite language, read the API file. Patches are welcome.

Questions and answers

Why is termim binary so big?

For some languages, Chinese and Japanese are the first, termim needs dictionaries. These dictionaries are embedded in the binary. This has the adventage that the binary is self contained, and can be installed anywhere. If you are really short on disk space so you want to cut some languages, you will have to hack the source (it is easy).

Why do not use file loaded as needed so I get my memory back?

See previous question for the advantage of not using external files. Then remember that on modern operating systems, binaries are memory maped so that read-only data section do not eat any memory. Using external files would require in fact more memory.

When will be <insert your favorite language here> be available?

As soon as you code it, or at least provide enough information to code it. I like free software.

Download

The current version on 2003-06-11 is the 1.0.0.

Authors and copyright

The first author of termim is Nicolas George.

The Korean input methods have been written by Denis Auroux.

The Japanese input method have been written by Jean Marot.

Special thanks goes to Arthur Reutenauer for his advises and beta-testing of the tonepy input method.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.