1. Restoring corrupted textmode fonts. If XFree86 corrupts your textmode font, try putting restorefont in your path and using the shell script runx to run X. runx saves the VGA font data in /tmp/fontdata, and restores it when you exit X. Note that this doesn't help with syncing problems. A more rigorous alternative is to run the 'savetextmode' script before running X, and 'textmode' after. This will restore the textmode registers and the VGA palette in addition to the VGA font. 2. Changing the textmode font. The VGA font format: offset 0-31 character 0 ... ... 8164-8195 character 255 Each row of a character bitmap is stored as a byte (8 pixels). The space that is left from the 32-byte buffer for each character is ignored, e.g. a 16-line font uses only offsets 0-15 of each character. Linux text resolutions: 80x25 16 line font 400 scanlines 80x28 14 line font 400 scanlines 80x50 8 line font 400 scanlines The font sizes and resolutions of extended textmodes depend on the video card type and BIOS: 132x25 14 line font 350 scanlines (ugly) 132x25 16 line font 400 scanlines 132x43 8 line font 350 scanlines (use fix132x43 to fix/improve) 132x50 8 line font 400 scanlines To load a font into video memory, use restorefont -r fontname Using a font that has less lines per character than the textmode works, but the characters are smaller. Using a font that is bigger than the textmode font results in the bottom part of characters being cut off. I've included sample fonts with 8, 14 and 16 line characters. The convfont program can be used to convert fonts straightforwardly stored character-after-character (i.e. each character only uses 8/14/whatever bytes), to the 32-byte per character format that restorefont requires. 3. Setting the VGA palette 'restorepalette' sets the standard VGA palette; this can be useful if it is somehow messed up. With a filename argument a custom palette can be loaded (added by Charles Blake, chuckb@alice.wonderland.caltech.edu). The changes allow a user to set up a file that looks like this one: 0 0 0 0 # black THESE COLOR MAP DEFINITIONS ARE 1 0 0 42 # blue THE SAME AS THE DEFAULT VGA ONES 2 0 42 0 # green 3 0 42 42 # cyan ALTER TO SUITE PERSONAL TASTES 4 42 0 0 # red 5 42 0 42 # magenta 6 42 21 0 # brown 7 42 42 42 # white 8 21 21 21 # bright black 9 21 21 63 # bright blue 10 21 63 21 # bright green 11 21 63 63 # bright cyan 12 63 21 21 # bright red 13 63 21 63 # bright magenta 14 63 63 21 # bright brown 15 63 63 63 # bright white Then run the command "restorepalette pathname". The inline comments are the only kind allowed, as I use a little fscanf() trick to get them. Blank lines are ok, but not pure comment lines. See the comments in my code, also. This allows people to set up custom palettes for use in virtual console text modes. I use it all the time. When combined with a color-syntax editor like jed-0.97+ or color-ls, etc, being able to choose your own text-mode palette is quite a bonus. I set mine up via "restorepalette /etc/palette" in my /etc/rc. If the program is given the correct permissions, then individual users can have "restorepalette ~/.palette" or some such thing in their shell startup files. Of course, it shouldn't be done when starting remote shells or when under X, so some kind of test that TERM is a virtual console is needed for that case. References The national/fontpak packages, which include kernel patches, allow different textmode fonts to be used in different virtual consoles. These have been superseded by the kbd package (in the kernel since pl15).