1 fontopia: the console font editor
1.1 About fontopia
Fontopia is an easy-to-use, text-based, console font editor.
What this means in simple English is that you can edit the fonts
that your GNU/Linux kernel is using to display your text on
text-based (vs graphical) terminals.
Unlike other console text editors which usually work on one PSF
version, or work on unicode tables only, or allow very minimal glyph
editing, fontopia provides all these functions together:
- - It works on both PSF 1 & 2, you can even change file type and save it to
disk in the other version.
- - It allows exporting and importing of unicode tables from external files.
- - It provides a user-friendly, easy-to-use glyph editor.
- - It can easily change font metrics, e.g. length, width, height...
Console font files are commonly of PSF type (of which there are two
versions), or of CP type (legacy fonts). Fontopia works with PSF files
of both versions, as well as CP fonts, BDF files and raw font files.
1.2 What’s new:
- - We added the facility to export glyph data to a C source file as an array.
- - Work is ongoing on Windows FON and FNT files.
- - We added the Extended Glyph Operations window (accessed by pressing O)
and the Glyph Info window (accessed by pressing G).
1.4 WARNING:
- There is a major downside currently: fontopia doesn’t work with unicode
sequences properly (at least not in all cases). If you export a unicode
table, edit it, and then import it to a font file, you should be safe.
- Note that if you changed the font version from CP to any other version,
only the ACTIVE font will be changed, as the other font formats (PSF,
Raw, BDF) don’t support multiple fonts inside the same font file. In this
case, you will need to open the original CP file multiple times, every
time select a different font size (by using ’1’-’4’ number keys) and
convert to the new font version, then reopen the original CP file, select
another font size, convert it, and so on.
1.5 Package dependencies
Fontopia needs the GnuDOS and ncurses packages in order to run. Furthermore,
if you are going to compile Fontopia from the source, you will need the
following header files: dialogs.h, kbd.h and screen.h. These files are part of
the GnuDOS package. If you don’t have GnuDOS installed on your system,
you can download the sources from https://ftp.gnu.org/gnu/gnudos/,
compile and install them, then retry running or compiling Fontopia.
Alternatively, if you are using an RPM-based distro, you can download and
install the RPM from places like: https://pkgs.org/download/gnudos.
Additionally, Fedora, CentOS and RHEL users can use yum/dnf to install
GnuDOS from the official repos. (Note: if you are installing GnuDOS
from an RPM repo, and you want to compile Fontopia from the source, you
will need to install the ’gnudos-devel’ package in addition to the ’gnudos’
package. The former package includes the above header files, which are
needed to compile Fontopia from the source).
1.6 Navigation
Using the editor is very easy:
- Navigate the glyphs on the right side window using the arrow keys.
Edit a single glyph using ENTER (or TAB).
- Navigate the bits that form a single bit (on the left side window)
using arrow keys. Press ENTER or SPACE to set/unset the desired bit. Go
back to right window (glyph list) using TAB.
- To zoom in (make the glyph on the left look bigger), press Z.
- To zoom out, press X.
- To open a new file, press CTRL+O.
- To create a new font from scratch, press CTRL+N.
- To save your work, press CTRL+S.
- To save with a new filename, press CTRL+D (aka Save As..).
- To quit the editor, press CTRL+Q.
- To show help, press CTRL+H.
- To copy a glyph, press CTRL+C.
- To cut a glyph, press CTRL+X.
- To paste a glyph, press CTRL+V.
- To show about dialog box, press A.
- To switch buffer mode (on/off), press CTRL+B.
- To clear a glyph (i.e. remove all bits), press C.
- To invert a glyph, press D.
- To export font unicode table (by default to a file with same original
file name plus .tab extension), press E.
- To flip a glyph horizontally, press H.
- To import unicode table from another file, press I.
- To show these keys without the extra jargon, press K.
- To show font metrics window, press M.
- To show the extended glyph operations window, press O.
- To change codepage of a CP font, press P.
If font is in BDF format, P shows properties (or metadata).
- To remove unicode table from font, press CTRL+R.
- To set a glyph (i.e. set all bits), press S.
- To show font unicode table, press U.
- To flip a glyph vertically, press V.
- To export font glyphs in textual format (by default to a file with
same original file name plus .glyph extension), press W.
You can alternatively export glyphs to a C source file by pressing CTRL+W.
- If editing a CP font and you want to change the active font (e.g.
edit the 8x8 font instead of the 16x8 font you are currently editing)
press any key from ’1’ to ’4’ and the respective font will be the
active font to be edited. You can go back and forth by using the
number keys.
The unicode values that are mapped to a specific glyph are shown on the
status bar (the bottom strip) to the right side.
That should make you ready to move around and edit your fonts. Have fun!.
1.7 Buffer mode
We know editing font files is a delicate and error-prone task, more so when
working with small tiny fragile things like console fonts. For this we added
buffering functionality to fontopia.
What the buffer is, simply, a way to do all your work on your font, editing
and cutting and scaling and whatsoever, and saving the font with the same
name you intended to, but adding a tilde ’~’ to the end, same like backup
files used by other programs (like gedit for example).
When you are happy with your work and you want to transfer it to the final
font file, turn off buffering mode and hit ^S and your file will be saved.