| |
| |
| |
| This package provide fixes in the kernel (console.c, keydoard.c and vt.c), |
| setfont and mapscrn utilities, and fixes to the loadkey utility. |
| setfont loads custom EGA/VGA fonts, mapscrn specifies screen output mapping, |
| and loadkeys with this fixes provides "AltGr-Lock" state of the keyboard, |
| and makes possible to specify which characters are alphabetic and therefore |
| should be affected by the CapsLock. |
| |
| make all - compile utilities and binary tables |
| make apply - apply cdiffs to the kernel code & .h files |
| make install - install utilities in the /etc directory |
| |
| Utilities make use of ioctl() entries added to the kernel as follows: |
| |
| "setfont" accepts binary font from the file specified as a paramter. |
| File size may be 2048, 3584 and 4096 bytes for 8x8, 8x14 and 8x16 |
| fonts respectively. |
| |
| "mapscrn" accepts a 256 byte translation table from the file specified as a |
| parameter and passes it to the "user definable" (fourth) mapping table |
| in the kernel. First 32 bytes of the file (control characters) are always |
| ignored. All screen output will be translated if a "\033(K" (or "\033)K") |
| sequence was outputted to select the "user definable" table. |
| |
| All this witchkraft with the output mapping is nesseccary because of |
| VGA architecture: it extends the character bitmap from 8 to 9 columns |
| for some interval of codes on the hardware level. This is appropriate |
| for certain graphic characters, but inappropriate if you have letters |
| in that place ot the character table. In the latter case, you can place |
| character bitmaps on not-extendable positions in the font table, and |
| use appropriate mapping table. This is done for Cyrillic character set |
| "koi8-r" (RFC1489). |
| |
| The fixes in loadkey utility are necessary because of two reasons. |
| First, non-Latin based character sets (such as Cyrillic) require a |
| special lock state for the keyboard. Current "shift-locks" implementation |
| in the keyboard driver is inconvenient, as it does not allow "switchback" |
| when the "shift" key is pressed while "shift-lock" is active. Second, |
| with non-ISO-8859 compliant character sets one cannot easily figure out |
| if a certain character is a "lowercase letter" and should therefore be |
| affected by CapsLock. A plus sign ('+') in front of the character |
| definition in the keymapping table is used to identify this character |
| as "affectable by CapsLock". Loadkeys utility treats lowercase latin |
| characters ('a'-'z') as affectable in any case. Effect of CapsLock is |
| to invert the "shift" state (unlike the original driver, where it always |
| "shifts up"). |
| |
| Note that if you need to make custom screen mapping default, you will |
| have to output the magic escape sequence ("\033(K" or "\033)K") to every |
| virtual screen in use. That can be done from /etc/profile. |