Quick and dirty uuterm README file:
First and foremost, uuterm is EXPERIMENTAL software. It lacks many
features expected of a terminal emulator, and may even crash or do bad
things, though it seems to be behaving pretty well these days.
Both Linux-fbcon and X11 versions of uuterm are available, each
optimized for the nature of the environment it runs in. Porting the
fbcon version to other framebuffer devices (wscons, PC hardware, SDL,
...) is left as an easy exercise for the reader.
With that said, building is just a matter of running "make". If you
need special CFLAGS options or a nondefault compiler (CC), put them in
a file named config.mak and they will automatically be used. Should be
self-explanatory. You can also disable uuterm-fb here if you're not
To start using uuterm, simply run "uuterm-fb" or "uuterm-x11" with the
TERM environment variable set to "linux", or "uuterm" if you install
the provided uuterm.ti terminfo file, and the UUTERM_FONT environment
variable set to a valid pathname to a UCF font file:
A simple 'VGA' fallback font with ASCII and linedrawing characters is
built into uuterm, but in order to appreciate uuterm you need a real
font. uuterm uses 'UCF' (U**code/Ucs/Universal/... Charcell Font) font
files. The code to generate UCF fonts is not yet mature, but some
samples (and the extremely ugly compiler) may be found at:
See the README file there for information on available fonts and how
to make new fonts. The "compiled" directory there contains precompiled
fonts, of which the latest version of "ytty" should be the most
complete and ready-to-use.
By default uuterm runs the default SHELL when started. If you want it
to directly run another program, simply put the name of the program on
the command line, followed by any arguments.
The idea of uuterm:
Use of any/all of the world's scripts and languages on *nix should not
be limited to fancy gui applications. Proper rendering of text is
needed all the way down to the console level, and it should not depend
on huge library frameworks or outline fonts.
In this light, uuterm is an experiment to demonstrate that supporting
"complex" scripts need not be complex; all that's needed is some
natural, logical extensions to ancient bitmap font technology to
account for the fact that glyphs and characters are not the same
While display in uuterm is already very "advanced" by terminal
emulator standards, keyboard support is moderately poor. The X11
version of uuterm now supports XIM input methods, but without
on-the-spot or over-the-spot preedit. The Linux-fbcon version does not
support any input methods directly (although uim-fep could be used)
and relies on the console keymap to convert keycodes to characters.
- Indic scripts are _almost_ supported by the UCF font system alone,
but need some minor additional support for reordering. This will be
implemented in the near future, if all goes well. However, some
scripts (at least Kannada and Malayalam) may need revisions to the
wcwidth definitions in order to have any hope of correct display,
due to characters with extremely wide glyphs with comparable
complexity (in vertical stroke count) to ideographic characters.
- RTL/bidi scripts will not render properly. I personally don't
believe there is any sane way to render them properly at the
terminal level, but I will eventually implement algorithms that
might work reasonably for some users. For the time being,
180°-rotated glyphs will be provided for a minimal level of
- All other (LTR) scripts should be fully supported using the
"advanced" combining and contextual glyph-selection abilities of the
UCF font format (details to come later, along with tools).