# About

uim-fep is the bridge for inputting text on console applications.

# From README

uim-fep is a FEP (Front End Processer).

## How to USE

Set the environment variable LANG. You can use also LC_ALL or LC_CTYPE.

Ex.1 example using sh

    $ LANG=ja_JP.eucjp ; export LANG
 
Ex.2 example using csh

    % setenv LANG ja_JP.utf8

and exec uim-fep.

    $ uim-fep

If you want yo know the key binds, see the manual of uim.

### Environment variables

* TERM

  Set the terminal name in terminfo/termcap.
  You must set this variable correctly otherwise fail to use uim-fep.
* SHELL

  Set the program name after uim-fep execed.
  You can specify both relative path and absolute path.
* UIM_FEP

  Set the name of conversion engine. E.G. anthy, skk, ...
* LC_ALL LC_CTYPE LANG

  Detecting the language and encoding in accordance with this order.
* TMP

  The directory to put socket which is for communicating with uim-fep-tick.
  If this variable not defined, /tmp will be used.
* WINDOW

  This is shown when you use backtick
* UIM_FEP_PID

  PID (Process ID) of uim-fep.
* UIM_FEP_GETMODE

  The file where the mode of uim-fep is written
* UIM_FEP_SETMODE

  If you write the mode to this file, uim-fep's mode will change.

    $ echo 0 > $UIM_FEP_SETMODE

* LIBUIM_USER_SCM_FILE

  Set the path of the uim's configuration file.
  In default, uim-fep uses ~/.uim

### Options

Options are given priority over environment variables if conflicted.

* -u [skk/anthy/canna/tcode/tutcode/prime]

  You can set conversion engine name.
* -s [lastline/backtick/none]

  Set the location where status line is displayed
    Also you can use abbreviated opsions -sl, -sb, -sn.
* -b `<file>`

  Set the socket path which is used by backtik.
  When you set relative path, its base path is $TMP or /tmp
* -w `<num>`

  Width of status line. This variable is used if it's in from 1 to width of terminal.
  
* -t `<seconds>`

  When you are using rsh,  you may not use some keys such as "`F1`",
  "`up`", "`<Alt>a`". This problem is caused because escape-sequence
  doesn't be committed at once.
  You can solve this problem by setting the waiting time after
  inputting escape.
  In default, waiting time is zero second.

  Example: Set the waiting time 0.1 second

    $ uim-fep -t 0.1

* -e command arg1 arg2 ...

  Specify the command to run.
* -h This option show help messages.
* -v This option show version.

### How to use backtick

First, put your uim-fep-tick to the directory in the PATH list.
Second, in ~/.screenrc, write down following lines,

    backtick 0 0 0 uim-fep-tick
    hardstatus alwayslastline "%0`"

last, exec uim-fep in the window of screen with -s option,

    $ uim-fep -s backtick

* Options of uim-fep-tick
  * -s `<file>`

    You can specify the socket path.
    When you set relative path, its base path is $TMP or /tmp
  * -h Display the help message
  * -v Display the version info of uim-fep
* You can run uim-fep by the multiple windows in screen
* uim-fep-tick is executed by screen, environment variables of screen is taken over.

### Misc
* If you want to use Alt key, you should setup like follows.

  If you use mlterm, please add the following line to ~/.mlterm/main

```
mod_meta_mode=esc
```

  If you use kterm, please add the following line to~/.Xresource or ~/.Xdefaults

```
KTerm*EightBitInput: false
```

* Some terminals accept "`<Alt>F1`", "`<Alt>right`" correctly
* You cannot input "`shift-space`"
* cannot input "`<Control>L`" of prime-wide-latin-key?
* You cannot input "`shift-backspace`"
* If you set nr-candidate-max to 0, you can indicate many candidate at one time.
 
  Examples:
```scheme
    (define skk-nr-candidate-max 0)
    (define anthy-nr-candidate-max 0)
    (define prime-nr-candidate-max 0)
```
