#! /usr/bin/awk -f BEGIN { print "// EAK (Easy Access, Internet, Multimedia, PDA) keyboards"; print "// Created by Stanislav Brabec "; print "// Based on LinEAK project"; print "// fix manually Media, Close, Stop etc. - can be Audio or non-audio"; print "// fix manually Standby/Sleep, Power/PowerOff/WakeUp/Resume"; print "// one key has undefined code (?101), few has redundant codes (, etc.)"; print ""; # $Xorg: xfree86,v 1.3 2000/08/17 19:54:37 cpqbld Exp $ # $XFree86: xc/programs/xkbcomp/keycodes/xfree86,v 3.17 2001/11/30 12:12:04 eich Exp $ # "standard" XFree86 codes # It seems that the "default" must be the first entry in the file. #default xkb_keycodes "xfree86" { # include "xfree86(basic)" codes[51] = ""; codes[94] = ""; #}; #xkb_keycodes "basic" { # minimum= 8; # maximum= 255; codes[49] = ""; codes[10] = ""; codes[11] = ""; codes[12] = ""; codes[13] = ""; codes[14] = ""; codes[15] = ""; codes[16] = ""; codes[17] = ""; codes[18] = ""; codes[19] = ""; codes[20] = ""; codes[21] = ""; codes[22] = ""; codes[23] = ""; codes[24] = ""; codes[25] = ""; codes[26] = ""; codes[27] = ""; codes[28] = ""; codes[29] = ""; codes[30] = ""; codes[31] = ""; codes[32] = ""; codes[33] = ""; codes[34] = ""; codes[35] = ""; codes[36] = ""; codes[66] = ""; codes[38] = ""; codes[39] = ""; codes[40] = ""; codes[41] = ""; codes[42] = ""; codes[43] = ""; codes[44] = ""; codes[45] = ""; codes[46] = ""; codes[47] = ""; codes[48] = ""; codes[50] = ""; codes[52] = ""; codes[53] = ""; codes[54] = ""; codes[55] = ""; codes[56] = ""; codes[57] = ""; codes[58] = ""; codes[59] = ""; codes[60] = ""; codes[61] = ""; codes[62] = ""; codes[64] = ""; codes[37] = ""; codes[65] = ""; codes[109] = ""; codes[113] = ""; # Microsoft keyboard extra keys codes[115] = ""; codes[116] = ""; codes[117] = ""; codes[9] = ""; codes[67] = ""; codes[68] = ""; codes[69] = ""; codes[70] = ""; codes[71] = ""; codes[72] = ""; codes[73] = ""; codes[74] = ""; codes[75] = ""; codes[76] = ""; codes[95] = ""; codes[96] = ""; codes[111] = ""; codes[92] = ""; codes[78] = ""; codes[110] = ""; codes[114] = ""; codes[106] = ""; codes[97] = ""; codes[99] = ""; codes[107] = ""; codes[103] = ""; codes[105] = ""; codes[98] = ""; codes[100] = ""; codes[104] = ""; codes[102] = ""; codes[77] = ""; codes[112] = ""; codes[63] = ""; codes[82] = ""; codes[79] = ""; codes[80] = ""; codes[81] = ""; codes[86] = ""; codes[83] = ""; codes[84] = ""; codes[85] = ""; codes[87] = ""; codes[88] = ""; codes[89] = ""; codes[108] = ""; codes[90] = ""; codes[91] = ""; codes[118] = ""; codes[119] = ""; codes[120] = ""; codes[121] = ""; codes[122] = ""; codes[123] = ""; # Keys that are generated on Japanese keyboards # alias = ; # Hankaku_Zenkaku toggle # alias = ; # Hiragana_Katakana toggle # alias = ; # backslash/underscore codes[129] = ""; # Henkan codes[131] = ""; # Muhenkan codes[133] = ""; # Yen # Keys that are generated on Japanese and Brazillian keyboards # alias = ; # Extended keys that may be generated on "Internet" keyboards. # These are not standardised, hence the meaningless names. # The entries commented out are never generated because the raw codes # in those positions are already used for well-defined keys. # alias = ; codes[130] = ""; # alias = ; codes[132] = ""; # alias = ; codes[134] = ""; codes[135] = ""; codes[136] = ""; codes[137] = ""; codes[138] = ""; codes[139] = ""; codes[140] = ""; codes[141] = ""; codes[142] = ""; codes[143] = ""; codes[144] = ""; codes[145] = ""; codes[146] = ""; codes[147] = ""; codes[148] = ""; codes[149] = ""; codes[150] = ""; codes[151] = ""; codes[152] = ""; codes[153] = ""; codes[154] = ""; codes[155] = ""; # codes[156] = ""; # codes[157] = ""; codes[158] = ""; codes[159] = ""; codes[160] = ""; codes[161] = ""; codes[162] = ""; codes[163] = ""; codes[164] = ""; codes[165] = ""; codes[166] = ""; codes[167] = ""; codes[168] = ""; codes[169] = ""; # codes[170] = ""; codes[171] = ""; codes[172] = ""; codes[173] = ""; codes[174] = ""; codes[175] = ""; codes[176] = ""; codes[177] = ""; codes[178] = ""; codes[179] = ""; codes[180] = ""; # codes[181] = ""; # codes[182] = ""; # codes[183] = ""; # codes[184] = ""; codes[185] = ""; codes[186] = ""; codes[187] = ""; codes[188] = ""; # codes[189] = ""; # codes[190] = ""; # codes[191] = ""; # codes[192] = ""; # codes[193] = ""; codes[194] = ""; codes[195] = ""; codes[196] = ""; codes[197] = ""; # codes[198] = ""; # codes[199] = ""; # codes[200] = ""; # codes[201] = ""; codes[202] = ""; # codes[203] = ""; # codes[204] = ""; # codes[205] = ""; # codes[206] = ""; # codes[207] = ""; # codes[208] = ""; # codes[209] = ""; # codes[210] = ""; # codes[211] = ""; codes[212] = ""; codes[213] = ""; codes[214] = ""; codes[215] = ""; codes[216] = ""; codes[217] = ""; codes[218] = ""; # codes[219] = ""; # codes[220] = ""; # codes[221] = ""; codes[222] = ""; codes[223] = ""; codes[224] = ""; codes[225] = ""; codes[226] = ""; codes[227] = ""; codes[228] = ""; codes[229] = ""; codes[230] = ""; codes[231] = ""; codes[232] = ""; codes[233] = ""; codes[234] = ""; codes[235] = ""; codes[236] = ""; codes[237] = ""; codes[238] = ""; codes[239] = ""; codes[240] = ""; codes[241] = ""; codes[242] = ""; codes[243] = ""; codes[244] = ""; codes[245] = ""; codes[246] = ""; codes[247] = ""; codes[248] = ""; codes[249] = ""; codes[250] = ""; codes[251] = ""; codes[252] = ""; codes[253] = ""; codes[254] = ""; codes[255] = ""; # Other codes never generated. The XFree86 ddx never generates # these codes. # codes[93] = ""; # codes[124] = ""; # codes[125] = ""; # codes[126] = ""; # codes[127] = ""; # codes[128] = ""; # indicator 1 = "Caps Lock"; # indicator 2 = "Num Lock"; # indicator 3 = "Scroll Lock"; # alias = ; #}; # What keyboard is this? #xkb_keycodes "102" { # include "xfree86(xfree86)" # There will be warnings from xkbcomp because of multiple definitions. codes[122] = ""; codes[123] = ""; codes[121] = ""; codes[118] = ""; codes[131] = ""; codes[135] = ""; codes[119] = ""; codes[129] = ""; codes[130] = ""; codes[134] = ""; codes[128] = ""; codes[132] = ""; codes[120] = ""; codes[133] = ""; codes[125] = ""; codes[124] = ""; #}; # For japanese 106 keyboard. by tsuka(tsuka@kawalab.dnj.ynu.ac.jp) # # All of the keycodes here are now in the basic "xfree86" set. # #xkb_keycodes "jp106" { # include "xfree86(xfree86)" #}; # For brazilian ABNT2 keyboard. by Ricardo Y. Igarashi(iga@that.com.br) #xkb_keycodes "abnt2" { # include "xfree86(basic)" codes[94] = ""; codes[51] = ""; #}; } function keycode(code) { ret=codes[code]; if (! ret) { return ""; } else { return ret; } } function xname(string) { gsub ("[Ww]eb(-|/|)", "", string); string="XF86"toupper(substr(string,1,1)) substr(string,2); string=gensub ("(Mute|Play|Stop|Prev|Next|Media)", "Audio\\1", "g", string); gsub ("Volumeup", "AudioRaiseVolume", string); gsub ("Volumedown", "AudioLowerVolume", string); gsub ("Volume\\+", "AudioRaiseVolume", string); gsub ("Volume[-_]down", "AudioLowerVolume", string); gsub ("Volume[-_]up", "AudioRaiseVolume", string); gsub ("Vol-down", "AudioLowerVolume", string); gsub ("Vol-up", "AudioRaiseVolume", string); gsub ("Volume-", "AudioLowerVolume", string); gsub ("AudioSong", "Audio", string); gsub ("Song", "Audio", string); gsub ("AudioPrevious", "AudioPrev", string); gsub ("Screensaver", "ScreenSaver", string); gsub ("Www", "WWW", string); gsub ("Home", "HomePage", string); gsub ("Vendorhome", "VendorHome", string); gsub ("Lightbulb", "LightBulb", string); gsub ("Mycomputer", "MyComputer", string); gsub ("Myhome", "HomePage", string); gsub ("E(-|)mail", "Mail", string); gsub ("Play(-|_|)pause", "PlayPause", string); gsub ("Fast(-|_|)forward", "FastForward", string); gsub ("Wake$", "WakeUp", string); gsub ("Wake-up", "WakeUp", string); gsub ("Wakeup", "WakeUp", string); gsub ("Poweroff", "PowerOff", string); gsub ("Scroll-down", "ScrollDown", string); gsub ("Scroll-up", "ScrollUp", string); gsub ("Scrolldown", "ScrollDown", string); gsub ("Scrollup", "ScrollUp", string); gsub ("Zoomin", "ZoomIn", string); gsub ("Zoomout", "ZoomOut", string); gsub ("XF86Help", "Help", string); gsub ("Userdefine", "User", string); gsub ("Free", "User", string); gsub ("Back/next", "BackNext", string); gsub ("Applicationleft", "ApplicationLeft", string); gsub ("Applicationright", "ApplicationRight", string); gsub ("Officehome", "OfficeHome", string); gsub ("Taskpane", "TaskPane", string); gsub ("Mysites", "MySites", string); gsub ("Wheelbutton", "WheelButton", string); gsub ("Itouch", "ITouch", string); gsub ("Scrollclick", "ScrollClick", string); gsub ("Gobackarrow", "Back", string); gsub ("Goforward", "Forward", string); gsub ("Mypages", "MyPages", string); gsub ("Multimediaprog", "MultimediaProg", string); gsub ("Stop-eject", "StopEject", string); gsub ("Splitscreen", "SplitScreen", string); gsub ("Dos", "DOS", string); gsub ("CdOpen", "Eject", string); gsub ("windows", "Windows", string); gsub ("_track", "", string); gsub ("shopping", "Shopping", string); gsub ("_track", "", string); gsub ("support", "Support", string); gsub ("button", "Button", string); gsub ("book", "Book", string); gsub ("_", "", string); return string; } function filled(string,len,inits) { lng=int((length(string)+inits)/8); len-=lng; if (len<0) { len=0; } str=""; for (i=0;i