monokern and termk
A project to create a kerned monospace font for terminals and code.
What is it?
monokern is an experimental kerning technique for monospace; termk is a monokerned VT52 terminal emulator.
"Wait, did you say kerned monospace?" Yes, I did - and that's not as ridiculous as it sounds. The alignment of columnar and tabular text that monospace provides relies not on the spacing itself being constant, but of the sum of the spacing over longer runs being constant. Thus, so long as a narrow pair-kerning is balanced out by a wide pair-kerning nearby, tables will remain aligned.
The basic idea behind monokern is deviation kerning: any individual character is permitted to deviate a fixed amount from its grid position. In the initial experiments, this is 1px, because we're working with a small font just 6px wide.
Where is it?
monokern lives on github. There is also a branch 'vt100' with the beginnings of a VT100/ANSI terminal implementation, but that's not really usable at present due to the hideous complexity of VT100 escape sequences.
What are its dependencies?
monokern/termk requires SDL 1.2 and (for compiling) SDL development files as well. On Debian systems install the following packages:
What does it look like?
|The test text "kern king", in termk.||A bash session in termk.||termk displaying kern.c source.|
|Ligatures and other glyph variants.|