There are several shared libraries installed by the Linux Console Tools. They were at first meant just to share code between the various utilities (kbd has lots of duplicated code), but they could be used as a base to build new tools.
However, they are not yet ready for production use (hence the version number 0.0.0), and are not complete yet. The are however more coherent today than they used to be not so long ago.
Stability of the libraries' structure and APIs is a major requirement for the upcoming 1.0 release.
Figure 1. Theoretical stacking of the libs
+----------------------------+ | Tools | | +------------+ | | | libctutils | | +------+---+ +---+--------+ | libcfont | | libconsole | +----------+----+------------+ | libctgeneric | +----------------------------+ |
This library contains various generic facilities used throughout the other libs and tools. They are of general interest and I hope most this stuff will one day make its way to an existing general purpose utility-library. Any offers welcomed.
These facilities include:
File-finding function using path and suffixes, featuring auto-decompression using multiple compressor programs, and magic-number-based filetype identification.
Unicode data type and utility functions.
Safety wrappers around standard C functions.
An stdio wrapper emulating fseek() on non-seekable IO streams (eg. pipes) when meaningful.
This library is a collection of:
wrappers around the kernel-level functionnalities, which should be as kernel-version-independant as reasonable;
higher-level interfaces to these functionnalities.
Currently, the following APIs are provided:
Font loading and retrieving (to/from data structures)
SFM loading and retrieving (to/from data structures)
ACM loading and retrieving (to/from files)
Console manipulation
Keysym manipulation (no influence on console itself; should be put somewhere else, libctutils seems a good candidate).
This library is meant to provide a high-level interface to console-font file-handling. It also exports the lower-level functions used to construct higher-level ones.
It defines two basic "font objects" allowing to handle in a somewhat object-oriented way simple fonts (one set of glyphs) and font groups (several set of glyphs, representing the same set of characters at different sizes).
For now, not all formats supported for reading are supported for writing yet.