diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 107 |
1 files changed, 107 insertions, 0 deletions
@@ -0,0 +1,107 @@ +ttf-console-fonts, by B. Watson <yalhcru@gmail.com>. + +Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +ttf-console-fonts is a collection of Linux console fonts, converted from +various TrueType fonts found in a typical Linux install. + +No TTF fonts are included here. Instead, the ones installed on your system +(usually in /usr/share/fonts/TTF) are used. Also, I don't include prebuilt +console fonts because I'm not so sure the licensing allows it (dammit, +I'm a doc... uh, programmer, not a lawyer). + +The name is slightly misleading: obviously the console doesn't support +TTF, only bitmap fonts in PSF format. What this package does is convert +various TTFs into the PSF (aka .psfu) bitmapped font format used by +the kernel. + +Notice that these are framebuffer fonts. Pretty much everyone these +days is likely to be using the framebuffer console (thanks to kernel +modesetting and Xorg's requirement for it). If you're somehow still using +a VGA textmode console, only fonts 8 or 9 pixels wide are supported. +For this package, that means the ones with "8x" in their filenames. + +If the converted fonts don't look the same to you on the console as the +original fonts do in X, that's because X and most modern X applications +do subpixel rendering for antialiasing. The Linux console doesn't support +this at all. + +Another difference between TTF and console fonts: only 512 glyphs are +allowed per console font. This means Unicode support will be limited. +The generated fonts include the full ASCII set, plus Latin-1 (aka +ISO-8859-1) and at least partial support for Latin-2. If your requirements +are different, change SETS in conv.sh (read the bdf2psf documentation, +and possibly the source code, to understand how this stuff works). One +useful piece of information: the same glyph can represent more than one +Unicode codepoint (if they have the same appearance, e.g. C in Latin +and Cyrillic). + +Requirements: + - bdf2psf + - otf2bdf + - psftools + +For Slackware, the above are available on SlackBuilds.org. For Debian +or Ubuntu, try apt-getting them. + +"Core system" requirements (included in Slackware, may need installing +if you're on Debian/etc): + + - fontconfig + - freetype2 + - perl + - stuff like coreutils and bash + - whatever fonts are listed in the file 'fonts', of course. + +To build the fonts, simply run "make". If you get errors, especially +"command not found" or "no such file or directory", you're missing a +requirement (see above). + +After they're built, the fonts will have filenames like: + +dejavusansmono-8x12.psfu.gz + +The "8x12" is the pixel size (NOT the point size). + +If you're running in the console, you can test out the fonts by loading +them with "setfont". If the results look OK, you can install the fonts via +"make install" (if you're making a distro package, DESTDIR is supported). + +On Slackware, you can edit /etc/rc.d/rc.font to set the default system +font to whichever one you like best. Don't forget to make rc.font +executable. I have no idea how to set the default console font on other +distributions (sorry). + +If you want to try converting other fonts, edit the file "fonts". The font +names there are whatever "fc-list" calls the font. You can probably use +wildcards or inexact matches (fc-list is pretty user-friendly). Whatever +fonts you choose *must* be TrueType or OpenType (.ttf or .otf). They +also *must* be "monospace" or "fixed width". Trying to convert +proportional/variable-width fonts will "work", but the result won't be +very pleasing to look at. + +If you don't like the sizes I picked, you can set SIZES in the +environment. It's a space-separated list of point sizes. Example: + +SIZES="6 9 12 15" make + +Don't get too crazy with the cheez-wiz: the kernel (or at least the +setfont command) has a font height limit of 32 rows. And in my testing, I +found that fonts 31 or 32 rows tall would load, but displayed incorrectly. +The practical limit (for my system at least) seems to be 30. + +The point sizes might be a bit different than they are in X. This is +because Xorg's Xrandr extension is smart enough to know your monitor's +actual DPI, and will scale TTFs to the correct size. The otf2bdf utility +used here could theoretically do the same thing, but it doesn't: it +just assumes 100x100 DPI. If your monitor doesn't have square pixels, +this will be even more noticeable. + +If you're wondering how many rows/columns of text each font will give you, +the calculation is simple enough: find out your framebuffer resolution +(e.g. by running 'fbset' with no arguments), and divide the width of +the fb by the width of the font (e.g. 1920/15 = 128, throw away any +remainder). Do the same calculation for the height (e.g. 1080/27 = 40). +Or, you could just load the font, then: + +kill -WINCH $$; echo $COLUMNS $LINES |