Return to BSD News archive
Newsgroups: comp.os.386bsd.development Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!news.Hawaii.Edu!ames!hookup!news.kei.com!MathWorks.Com!solaris.cc.vt.edu!uunet!zib-berlin.de!news.belwue.de!fht-mannheim!roxi.rz.fht-mannheim.de!duz From: duz@roxi.rz.fht-mannheim.de (Dirk Zoller) Subject: FreeBSD, syscons: fixed german keyb. Sender: news@roxi.rz.fht-mannheim.de (NEWS - system account) Organization: Fachhochschule fuer Technik, Mannheim (FRG) Date: Wed, 24 Aug 94 20:21:24 CET X-Newsreader: TIN [version 1.2 PL2] Message-ID: <1994Aug24.202124.17041@roxi.rz.fht-mannheim.de> Lines: 154 Hello together, und natuerlich speziell alle deutschen User, sometimes I use the wonderful FreeBSD only on the console, not with X. Unfortunately several keys don't work right on my german keyboard. Probably this is the case with all german MF-2 keyboards. Of course Soren is not to blame since he probably had no german keyboard at hand. I studied the source a little and tried to improve. I do not quite understand the meaning of the spcl and flags columns. Nevertheless with the following `german.iso' copied in the place /usr/src/share/syscons/keymaps things get much better: Please include this (or something better) in the distribution. ============================================================================== /* * This program is free software; you can do with it as you see fit, * as long as you leave this header intact. * * This program 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. * * Soren Schmidt Email: sos@kmd-ac.dk * Tritonvej 36 UUCP: ...uunet!dkuug!kmd-ac!sos * DK9210 Aalborg SO Phone: +45 9814 8076 * * fixed by duz 23Aug94 */ keymap_t keymap = { 107, /* german iso8859 keymap */ /* alt * scan cntrl alt alt cntrl * code base shift cntrl shift alt shift cntrl shift spcl flgs * --------------------------------------------------------------------------- */ /* sc=00 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, 0xFF, 0x00, /* sc=01 */ 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, /* sc=02 */ '1', '!', NOP, NOP, '`', '`', NOP, NOP, 0x33, 0x00, /* sc=03 */ '2', '"', 0x00, 0x00, '@', '@', 0x00, 0x00, 0x00, 0x00, /* sc=04 */ '3', '§', NOP, NOP, '3', '§', NOP, NOP, 0x33, 0x00, /* sc=05 */ '4', '$', NOP, NOP, '4', '$', NOP, NOP, 0x33, 0x00, /* sc=06 */ '5', '%', NOP, NOP, '5', '%', NOP, NOP, 0x33, 0x00, /* sc=07 */ '6', '&', 0x1E, 0x1E, '6', '&', 0x1E, 0x1E, 0x00, 0x00, /* sc=08 */ '7', '/', 0x1B, 0x1B, '{', '{', 0x1B, 0x1B, 0x00, 0x00, /* sc=09 */ '8', '(', NOP, NOP, '[', '[', NOP, NOP, 0x33, 0x00, /* sc=0a */ '9', ')', 0x1D, 0x1D, ']', ']', 0x1D, 0x1D, 0x00, 0x00, /* sc=0b */ '0', '=', NOP, NOP, '}', '}', NOP, NOP, 0x33, 0x00, /* sc=0c */ 'ß', '?', NOP, NOP, '\\', '|', NOP, NOP, 0x33, 0x00, /* sc=0d */ '\'', '`', NOP, NOP, '\''', '`', NOP, NOP, 0x33, 0x00, /* sc=0e */ 0x08, 0x08, 0x7F, 0x7F, 0x08, 0x08, 0x7F, 0x7F, 0x00, 0x00, /* sc=0f */ 0x09, 0x09, NOP, NOP, 0x09, 0x09, NOP, NOP, 0x77, 0x00, /* sc=10 */ 'q', 'Q', 0x11, 0x11, 'q', 'Q', 0x11, 0x11, 0x00, 0x01, /* sc=11 */ 'w', 'W', 0x17, 0x17, 'w', 'W', 0x17, 0x17, 0x00, 0x01, /* sc=12 */ 'e', 'E', 0x05, 0x05, 'e', 'E', 0x05, 0x05, 0x00, 0x01, /* sc=13 */ 'r', 'R', 0x12, 0x12, 'r', 'R', 0x12, 0x12, 0x00, 0x01, /* sc=14 */ 't', 'T', 0x14, 0x14, 't', 'T', 0x14, 0x14, 0x00, 0x01, /* sc=15 */ 'z', 'Z', 0x1A, 0x1A, 'z', 'Z', 0x1A, 0x1A, 0x00, 0x01, /* sc=16 */ 'u', 'U', 0x15, 0x15, 'u', 'U', 0x15, 0x15, 0x00, 0x01, /* sc=17 */ 'i', 'I', 0x09, 0x09, 'i', 'I', 0x09, 0x09, 0x00, 0x01, /* sc=18 */ 'o', 'O', 0x0F, 0x0F, 'o', 'O', 0x0F, 0x0F, 0x00, 0x01, /* sc=19 */ 'p', 'P', 0x10, 0x10, 'p', 'P', 0x10, 0x10, 0x00, 0x01, /* sc=1a */ 'ü', 'Ü', 0x1B, 0x1B, 'ü', 'Ü', 0x1B, 0x1B, 0x00, 0x01, /* sc=1b */ '+', '*', 0x1D, 0x1D, '~', '~', 0x1D, 0x1D, 0x00, 0x00, /* sc=1c */ 0x0D, 0x0D, 0x0A, 0x0A, 0x0D, 0x0D, 0x0A, 0x0A, 0x00, 0x00, /* sc=1d */ LCTR, LCTR, LCTR, LCTR, LCTR, LCTR, LCTR, LCTR, 0xFF, 0x00, /* sc=1e */ 'a', 'A', 0x01, 0x01, 'a', 'A', 0x01, 0x01, 0x00, 0x01, /* sc=1f */ 's', 'S', 0x13, 0x13, 's', 'S', 0x13, 0x13, 0x00, 0x01, /* sc=20 */ 'd', 'D', 0x04, 0x04, 'd', 'D', 0x04, 0x04, 0x00, 0x01, /* sc=21 */ 'f', 'F', 0x06, 0x06, 'f', 'F', 0x06, 0x06, 0x00, 0x01, /* sc=22 */ 'g', 'G', 0x07, 0x07, 'g', 'G', 0x07, 0x07, 0x00, 0x01, /* sc=23 */ 'h', 'H', 0x08, 0x08, 'h', 'H', 0x08, 0x08, 0x00, 0x01, /* sc=24 */ 'j', 'J', 0x0A, 0x0A, 'j', 'J', 0x0A, 0x0A, 0x00, 0x01, /* sc=25 */ 'k', 'K', 0x0B, 0x0B, 'k', 'K', 0x0B, 0x0B, 0x00, 0x01, /* sc=26 */ 'l', 'L', 0x0C, 0x0C, 'l', 'L', 0x0C, 0x0C, 0x00, 0x01, /* sc=27 */ 'ö', 'Ö', NOP, NOP, 'ö', 'Ö', NOP, NOP, 0x33, 0x01, /* sc=28 */ 'ä', 'Ä', NOP, NOP, 'ä', 'Ä', NOP, NOP, 0x33, 0x01, /* sc=29 */ '^', '°', NOP, NOP, '^', '°', NOP, NOP, 0x00, 0x00, /* sc=2a */ LSH, LSH, LSH, LSH, LSH, LSH, LSH, LSH, 0xFF, 0x00, /* sc=2b */ '<', '>', NOP, NOP, '|', '|', NOP, NOP, 0x00, 0x00, /* sc=2c */ 'y', 'Y', 0x19, 0x19, 'y', 'Y', 0x19, 0x19, 0x00, 0x01, /* sc=2d */ 'x', 'X', 0x18, 0x18, 'x', 'X', 0x18, 0x18, 0x00, 0x01, /* sc=2e */ 'c', 'C', 0x03, 0x03, 'c', 'C', 0x03, 0x03, 0x00, 0x01, /* sc=2f */ 'v', 'V', 0x16, 0x16, 'v', 'V', 0x16, 0x16, 0x00, 0x01, /* sc=30 */ 'b', 'B', 0x02, 0x02, 'b', 'B', 0x02, 0x02, 0x00, 0x01, /* sc=31 */ 'n', 'N', 0x0E, 0x0E, 'n', 'N', 0x0E, 0x0E, 0x00, 0x01, /* sc=32 */ 'm', 'M', 0x0D, 0x0D, 'm', 'M', 0x0D, 0x0D, 0x00, 0x01, /* sc=33 */ ',', ';', NOP, NOP, ',', ';', NOP, NOP, 0x33, 0x00, /* sc=34 */ '.', ':', NOP, NOP, '.', ':', NOP, NOP, 0x33, 0x00, /* sc=35 */ '-', '_', 0x1F, 0x1F, '-', '_', 0x1F, 0x1F, 0x00, 0x00, /* sc=36 */ RSH, RSH, RSH, RSH, RSH, RSH, RSH, RSH, 0xFF, 0x00, /* sc=37 */ '*', '*', 0x0A, 0x0A, '*', '*', 0x0A, 0x0A, 0x33, 0x00, /* sc=38 */ LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, 0xFF, 0x00, /* sc=39 */ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 0x00, 0x00, /* sc=3a */ CLK, CLK, CLK, CLK, CLK, CLK, CLK, CLK, 0xFF, 0x00, /* sc=3b */ F( 1), F(13), F(25), F(37), S( 1), S(11), S( 1), S(11), 0xFF, 0x00, /* sc=3c */ F( 2), F(14), F(26), F(38), S( 2), S(12), S( 2), S(12), 0xFF, 0x00, /* sc=3d */ F( 3), F(15), F(27), F(39), S( 3), S(13), S( 3), S(13), 0xFF, 0x00, /* sc=3e */ F( 4), F(16), F(28), F(40), S( 4), S(14), S( 4), S(14), 0xFF, 0x00, /* sc=3f */ F( 5), F(17), F(29), F(41), S( 5), S(15), S( 5), S(15), 0xFF, 0x00, /* sc=40 */ F( 6), F(18), F(30), F(42), S( 6), S(16), S( 6), S(16), 0xFF, 0x00, /* sc=41 */ F( 7), F(19), F(31), F(43), S( 7), S( 7), S( 7), S( 7), 0xFF, 0x00, /* sc=42 */ F( 8), F(20), F(32), F(44), S( 8), S( 8), S( 8), S( 8), 0xFF, 0x00, /* sc=43 */ F( 9), F(21), F(33), F(45), S( 9), S( 9), S( 9), S( 9), 0xFF, 0x00, /* sc=44 */ F(10), F(22), F(34), F(46), S(10), S(10), S(10), S(10), 0xFF, 0x00, /* sc=45 */ NLK, NLK, 0x13, 0x13, NLK, NLK, 0x13, 0x13, 0xCC, 0x00, /* sc=46 */ SLK, SLK, 0x7F, 0x7F, SLK, SLK, 0x7F, 0x7F, 0xCC, 0x00, /* sc=47 */ F(49), '7', '7', '7', '7', '7', '7', '7', 0x80, 0x02, /* sc=48 */ F(50), '8', '8', '8', '8', '8', '8', '8', 0x80, 0x02, /* sc=49 */ F(51), '9', '9', '9', '9', '9', '9', '9', 0x80, 0x02, /* sc=4a */ F(52), '-', 0x1F, 0x1F, '-', '-', '-', '-', 0x80, 0x02, /* sc=4b */ F(53), '4', '4', '4', '4', '4', '4', '4', 0x80, 0x02, /* sc=4c */ F(54), '5', '5', '5', '5', '5', '5', '5', 0x80, 0x02, /* sc=4d */ F(55), '6', 0x1E, 0x1E, '6', '6', '6', '6', 0x80, 0x02, /* sc=4e */ F(56), '+', '+', '+', '+', '+', '+', '+', 0x80, 0x02, /* sc=4f */ F(57), '1', '1', '1', '1', '1', '1', '1', 0x80, 0x02, /* sc=50 */ F(58), '2', '2', '2', '2', '2', '2', '2', 0x80, 0x02, /* sc=51 */ F(59), '3', '3', '3', '3', '3', '3', '3', 0x80, 0x02, /* sc=52 */ F(60), '0', '0', '0', '0', '0', '0', '0', 0x80, 0x02, /* sc=53 */ 0x7F, '.', 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x02, /* sc=54 */ 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, /* sc=55 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, 0xFF, 0x00, /* sc=56 */ NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, 0xFF, 0x00, /* sc=57 */ F(11), F(23), F(35), F(47), S(11), S(11), S(11), S(11), 0xFF, 0x00, /* sc=58 */ F(12), F(24), F(36), F(48), S(12), S(12), S(12), S(12), 0xFF, 0x00, /* sc=59 */ 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0xFF, 0x02, /* sc=5a */ RCTR, RCTR, RCTR, RCTR, RCTR, RCTR, RCTR, RCTR, 0xFF, 0x00, /* sc=5b */ '/', '/', '/', '/', '/', '/', '/', '/', 0x00, 0x02, /* sc=5c */ '*', '*', '*', '*', '*', '*', '*', '*', 0x00, 0x02, /* sc=5d */ RALT, RALT, RALT, RALT, RALT, RALT, RALT, RALT, 0xFF, 0x00, /* sc=5e */ F(49), '7', '7', '7', '7', '7', '7', '7', 0x80, 0x02, /* sc=5f */ F(50), '8', '8', '8', '8', '8', '8', '8', 0x80, 0x02, /* sc=60 */ F(51), '9', '9', '9', '9', '9', '9', '9', 0x80, 0x02, /* sc=61 */ F(53), '4', '4', '4', '4', '4', '4', '4', 0x80, 0x02, /* sc=62 */ F(55), '6', '6', '6', '6', '6', '6', '6', 0x80, 0x02, /* sc=63 */ F(57), '1', '1', '1', '1', '1', '1', '1', 0x80, 0x02, /* sc=64 */ F(58), '2', '2', '2', '2', '2', '2', '2', 0x80, 0x02, /* sc=65 */ F(59), '3', '3', '3', '3', '3', '3', '3', 0x80, 0x02, /* sc=66 */ F(60), '0', '0', '0', '0', '0', '0', '0', 0x80, 0x02, /* sc=67 */ F(54), '5', '5', '5', '5', '5', '5', '5', 0x80, 0x02, /* sc=68 */ SLK, SLK, SLK, SLK, SLK, SLK, SLK, SLK, 0xFF, 0x00, /* sc=69 */ 'ß', NOP, NOP, NOP, NOP, NOP, NOP, NOP, 0xFF, 0x00, /* sc=6a */ '§', NOP, NOP, NOP, NOP, NOP, NOP, NOP, 0xFF, 0x00, }; ============================================================================== Best regards Dirk --- duz@roxi.rz.fht-mannheim.de <Dirk Zoller> "Software is neither science nor engineering. It's really an obscure form of poetry."