.. -*- mode: rst; coding: utf-8 -*- .. role:: filename(literal) .. default-role:: filename ============================================== Lucida Sans Typewriter Console Fonts for Linux ============================================== .. contents:: Introduction ============ This package contains console fonts for Linux directly based on the Lucida Sans Typewriter bitmap glyphs supplied with the X11 Window System. Each font contains 256 glyphs covering many Western European languages. The following font files are included: * `lucida-10x16.psf` — 10×16 pixels, based on `upstream/bh-lucidatypewriter-75dpi/lutRS14.bdf` * `lucida-12x20.psf` — 12×20 pixels, based on `upstream/bh-lucidatypewriter-75dpi/lutRS18.bdf` * `lucida-14x24.psf` — 14×24 pixels, based on `upstream/bh-lucidatypewriter-100dpi/lutRS14.bdf` * `lucida-16x30.psf` — 16×30 pixels, based on `upstream/bh-lucidatypewriter-100dpi/lutRS19.bdf` Note that these fonts require a framebuffer-style console: traditional VGA consoles can only display fonts that are eight pixels wide. Unicode coverage ================ All fonts contain the same Unicode mapping table and cover the following single-byte encodings (code pages): * **ascii** (US English) * **iso-8859-1** (Latin-1 Western European) * **iso-8859-9** (Latin-5 Turkish) * **iso-8859-15** (Latin-9 Western European) * **cp850** (DOS Latin-1 Western European) (four characters missing) * **cp857** (DOS Turkish) (three characters missing) * **windows-1252** (Windows Western European) * **windows-1254** (Windows Turkish) Also included are special VT100 characters used by Curses, including box drawing glyphs, and various symbols used in typography. See the section on `Utility programs`_ in this document for additional details on coverage. Installation ============ To create (or recreate) the binary PSF Linux console fonts shipped as part of this package, use the supplied Makefile by running:: make You can verify that the created binary fonts match what is distributed by the released version of this package; each line of the output should end with ``OK``:: make check To use a particular font, such as `lucida-16x30.psf`, on the current Linux console, run the ``setfont`` utility program while in the current directory:: setfont lucida-16x30.psf Note that running ``setfont`` in this way only affects the *current* console, not any other consoles, and only until the next ``setfont`` invocation or until the computer is rebooted. To use a particular font as the default on *all* consoles, follow the steps appropriate for your Linux distribution. Instructions are included for Debian, Ubuntu, Fedora, Red Hat Enterprise Linux, CentOS and OpenSUSE, as well as distributions based on these. If these instructions do not work for you or are incorrect or obsolete, please contact the author of this package; see `Feedback`_ for details. For Debian-based distributions ------------------------------ These instructions apply to Debian, Ubuntu and any distribution based on these. Note that these steps must be done as root (system administrator). 1. Copy the font files to the `/etc/console-setup` directory:: cp -p *.psf /etc/console-setup 2. Modify the configuration file `/etc/default/console-setup` with a text editor. Comment out the lines with ``CODESET``, ``FONTFACE`` and ``FONTSIZE`` by placing “``#``” at the beginning of those lines, and insert a line with a relevant ``FONT`` declaration:: # CODESET="guess" # FONTFACE="Fixed" # FONTSIZE="8x16" FONT="/etc/console-setup/lucida-16x30.psf" 3. Recreate the file `/etc/console-setup/cached_setup_font.sh` while logged into a console:: /etc/init.d/console-setup.sh force-reload 4. On current Ubuntu-based systems, the previous step may trigger a bug. Manually edit `/etc/console-setup/cached_setup_font.sh` and remove the duplicate listing of your selected font from the ``setfont`` command line. 5. Recreate the file `/boot/initrd.img`:: update-initramfs -u 6. Reboot your computer. You should now see your selected font in use on all Linux consoles. For Fedora-based distributions ------------------------------ These instructions apply to Fedora, Red Hat Enterprise Linux, CentOS and any distribution based on these. Note that these steps must be done as root (system administrator). 1. Copy the font files to the `/lib/kbd/consolefonts` system directory:: cp -p *.psf /lib/kbd/consolefonts 2. If the file `/etc/vconsole.conf` exists, edit the ``FONT`` line in that file and set it to your preferred font:: FONT="lucida-16x30" If the file does not exist, create it and add that line to it. 3. Rebuild the initramfs kernel files:: dracut --regenerate-all --force 4. Reboot your computer and enjoy. For OpenSUSE-based distributions -------------------------------- These instructions apply to OpenSUSE and any distributions based on it. Note that these steps must be done as root (system administrator). 1. Copy the font files to the `/usr/share/kbd/consolefonts` system directory:: cp -p *.psf /usr/share/kbd/consolefonts 2. If the file `/etc/vconsole.conf` exists, edit the ``FONT`` line in that file and set it to your preferred font:: FONT="lucida-16x30" If the file does not exist, create it and add that line to it. 3. If the line ``FONT_UNIMAP=`` is present in `/etc/vconsole.conf`, remove it entirely. 4. Rebuild the initramfs kernel files:: dracut --regenerate-all --force 5. Reboot your computer and enjoy. Utility programs ================ This font package includes utility programs from the console-fonts-utils package. Five of these convert PSF and other binary fonts to and from a text representation, allowing easy font editing using an ordinary text editor. Another five applications are included to further work with the text representation of a font. These programs are located in the `utils` directory; see `utils/README` for more information. Four of these programs in particular may prove very useful: * ``psftx-codechart`` — Generate a PDF font coverage codechart * ``psftx-screenshot`` — Generate a simulated screenshot image * ``psftx-sampler`` — Generate a text output font coverage sampler * ``psftx-encodings`` — Check PSFTX for charmap encodings coverage To generate PDF codecharts from the fonts included in this package, use the supplied Makefile by running ``make pdfs``. You will need the reportlab Python package installed to be able to do so. To generate simulated screenshot PNG images of the fonts, use the supplied Makefile by running ``make images``; this requires the Pillow Python package to be installed. To generate UTF-8 sample strings that can be displayed by a font, run the ``psftx-sampler`` utility program:: ./utils/psftx-sampler lucida-16x30.psftx To check the details of character encodings, run ``psftx-encodings``:: ./utils/psftx-encodings lucida-16x30.psftx Glyph designs ============= As mentioned in the `Introduction`_, this package contains console fonts that are directly based on the Lucida Sans Typewriter bitmap glyphs supplied with the X11 Window System. These bitmap glyphs are distributed in their entirety with this package in the `upstream` directory; `upstream/COPYING` contains the licence under which this is done. In particular, the following is a list of the Bitmap Distribution Format (BDF) font files distributed in that subdirectory, along with the font weight, point size and nominal glyph size of each font (“…” represents “upstream/bh-lucidatypewriter”): * `…-75dpi/lutRS08.bdf` — Medium, 8pt, 5 × 11 pixels * `…-75dpi/lutRS10.bdf` — Medium, 10pt, 6 × 12 pixels * `…-75dpi/lutRS12.bdf` — Medium, 12pt, 8 × 14 pixels * `…-75dpi/lutRS14.bdf` — Medium, 14pt, 10 × 16 pixels [#n1]_ * `…-75dpi/lutRS18.bdf` — Medium, 18pt, 12 × 20 pixels [#n1]_ * `…-75dpi/lutRS19.bdf` — Medium, 19pt, 13 × 23 pixels * `…-75dpi/lutRS24.bdf` — Medium, 24pt, 16 × 28 pixels .. * `…-75dpi/lutBS08.bdf` — Bold, 8pt, 5 × 11 pixels * `…-75dpi/lutBS10.bdf` — Bold, 10pt, 6 × 12 pixels * `…-75dpi/lutBS12.bdf` — Bold, 12pt, 8 × 14 pixels * `…-75dpi/lutBS14.bdf` — Bold, 14pt, 10 × 16 pixels * `…-75dpi/lutBS18.bdf` — Bold, 18pt, 12 × 20 pixels * `…-75dpi/lutBS19.bdf` — Bold, 19pt, 13 × 23 pixels * `…-75dpi/lutBS24.bdf` — Bold, 24pt, 16 × 28 pixels .. * `…-100dpi/lutRS08.bdf` — Medium, 8pt, 8 × 13 pixels * `…-100dpi/lutRS10.bdf` — Medium, 10pt, 9 × 17 pixels * `…-100dpi/lutRS12.bdf` — Medium, 12pt, 11 × 19 pixels * `…-100dpi/lutRS14.bdf` — Medium, 14pt, 13 × 23 pixels [#n1]_ * `…-100dpi/lutRS18.bdf` — Medium, 18pt, 16 × 29 pixels * `…-100dpi/lutRS19.bdf` — Medium, 19pt, 16 × 30 pixels [#n1]_ * `…-100dpi/lutRS24.bdf` — Medium, 24pt, 23 × 39 pixels .. * `…-100dpi/lutBS08.bdf` — Bold, 8pt, 8 × 12 pixels * `…-100dpi/lutBS10.bdf` — Bold, 10pt, 10 × 17 pixels * `…-100dpi/lutBS12.bdf` — Bold, 12pt, 11 × 19 pixels * `…-100dpi/lutBS14.bdf` — Bold, 14pt, 14 × 23 pixels * `…-100dpi/lutBS18.bdf` — Bold, 18pt, 17 × 29 pixels * `…-100dpi/lutBS19.bdf` — Bold, 19pt, 18 × 30 pixels * `…-100dpi/lutBS24.bdf` — Bold, 24pt, 24 × 39 pixels .. [#n1] Used as the source of console fonts in this package. The bold font variants have not been used in this package: such fonts are less useful in a console environment where only one font can be active at a time for any given console. Fonts larger than 32 pixels wide or high cannot be used as Linux console fonts. The smaller fonts have either poor resolution of glyphs in general, or poor resolution of accents above letters, and have thus been ignored. The remaining fonts have been carefully examined for their suitability as console fonts, with the most aesthetically pleasing variants chosen: * `…-75dpi/lutRS14.bdf` (10 × 16) → `lucida-10x16.psftx` * `…-75dpi/lutRS18.bdf` (12 × 20) → `lucida-12x20.psftx` * `…-100dpi/lutRS14.bdf` (13 × 23) → `lucida-14x24.psftx` [#n2]_ * `…-100dpi/lutRS19.bdf` (16 × 30) → `lucida-16x30.psftx` .. [#n2] One extra row of pixels has been added to the bottom of each glyph and one extra column inserted to the left, to make the font use even-sized glyphs. All glyphs have been converted directly from the BDF font, as commented in each PSFTX source file. Thirteen glyphs are not present in the upstream fonts; the designs in the console fonts have been based on the Lucida Sans Typewriter OT font purchased from the TeX Users Group, or else designed from scratch to match the general look and feel of Lucida Sans Typewriter: * U+03C0 GREEK SMALL LETTER PI * U+2190 LEFTWARDS ARROW * U+2191 UPWARDS ARROW * U+2192 RIGHTWARDS ARROW * U+2193 DOWNWARDS ARROW * U+23BA HORIZONTAL SCAN LINE-1 * U+23BB HORIZONTAL SCAN LINE-3 * U+23BC HORIZONTAL SCAN LINE-7 * U+23BD HORIZONTAL SCAN LINE-9 * U+25A0 BLACK SQUARE * U+25C6 BLACK DIAMOND * U+2E41 REVERSED COMMA * U+2E42 DOUBLE LOW-REVERSED-9 QUOTATION MARK (The first 11 of these characters are required for full VT100 emulation as used by the Curses library.) In addition, U+FFFD REPLACEMENT CHARACTER is also missing: the glyph for U+0000 (char0) is used instead. Finally, the upstream glyphs for U+0030 DIGIT ZERO are almost identical to the glyphs for U+004F LATIN CAPITAL LETTER O. For this reason, the Lucida Sans Typewriter OT glyph ``zero.dot`` is used instead. Feedback ======== Your comments, suggestions, corrections and enhancements are always warmly welcomed! Please send these to: :Postal: | John Zaitseff, | The ZAP Group Australia, | Unit 6, 116 Woodburn Road, | Berala, NSW, 2141, | Australia :Email: | J.Zaitseff@zap.org.au :Web: | https://www.zap.org.au/projects/console-fonts-lucida/ :FTP: | https://ftp.zap.org.au/pub/fonts/console-fonts-lucida/ | ftp://ftp.zap.org.au/pub/fonts/console-fonts-lucida/ :Git: | https://www.zap.org.au/git-browser/console-fonts-lucida.git | https://git.zap.org.au/git/console-fonts-lucida.git | git://git.zap.org.au/data/git/console-fonts-lucida.git Copyright ========= **Copyright © 2017–24, John Zaitseff.** The Lucida Sans Typewriter Console Fonts package is free software that is distributed under the terms of the GNU General Public License. You can redistribute it and/or modify it under the terms of that License as published by the Free Software Foundation, either version 3 or (at your option) any later version. This font package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in the file `COPYING` for more details.