# Keysyms.pm semi-automatically derived from: # $XConsortium: keysymdef.h,v 1.21 94/08/28 16:17:06 rws Exp $ # #********************************************************** #Copyright (c) 1987, 1994 X Consortium # #Permission is hereby granted, free of charge, to any person obtaining #a copy of this software and associated documentation files (the #"Software"), to deal in the Software without restriction, including #without limitation the rights to use, copy, modify, merge, publish, #distribute, sublicense, and/or sell copies of the Software, and to #permit persons to whom the Software is furnished to do so, subject to #the following conditions: # #The above copyright notice and this permission notice shall be included #in all copies or substantial portions of the Software. # #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS #OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF #MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. #IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR #OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, #ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR #OTHER DEALINGS IN THE SOFTWARE. # #Except as contained in this notice, the name of the X Consortium shall #not be used in advertising or otherwise to promote the sale, use or #other dealings in this Software without prior written authorization #from the X Consortium. # # #Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts # # All Rights Reserved # #Permission to use, copy, modify, and distribute this software and its #documentation for any purpose and without fee is hereby granted, #provided that the above copyright notice appear in all copies and that #both that copyright notice and this permission notice appear in #supporting documentation, and that the name of Digital not be #used in advertising or publicity pertaining to distribution of the #software without specific, written prior permission. # #DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING #ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL #DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR #ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, #WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, #ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS #SOFTWARE. # #***************************************************************** package X11::Keysyms; use Carp; $VERSION = 0.01; sub import { my($pkg, $var, @x) = @_; my($into) = caller(); croak "Need the name of a variable to import into" unless $var; $var =~ s/^%//; my(%KL); if (@x) { @KL{@x} = (1) x @x; } else { @KL{'MISCELLANY', 'XKB_KEYS', 'LATIN1', 'LATIN2', 'LATIN3', 'LATIN4', 'GREEK'} = (1) x 7; } local(*Keysyms) = *{"${into}::$var"}; # print STDERR "Exporting into ${into}::$var\n"; $Keysyms{"VoidSymbol"} = 0xFFFFFF; # void symbol #ifdef XK_MISCELLANY # # * TTY Functions, cleverly chosen to map to ascii, for convenience of # * programming, but could have been arbitrary (at the cost of lookup # * tables in client code. if ($KL{'MISCELLANY'}) { $Keysyms{"BackSpace"} = 0xFF08; # back space, back char $Keysyms{"Tab"} = 0xFF09; $Keysyms{"Linefeed"} = 0xFF0A; # Linefeed, LF $Keysyms{"Clear"} = 0xFF0B; $Keysyms{"Return"} = 0xFF0D; # Return, enter $Keysyms{"Pause"} = 0xFF13; # Pause, hold $Keysyms{"Scroll_Lock"} = 0xFF14; $Keysyms{"Sys_Req"} = 0xFF15; $Keysyms{"Escape"} = 0xFF1B; $Keysyms{"Delete"} = 0xFFFF; # Delete, rubout # International & multi-key character composition $Keysyms{"Multi_key"} = 0xFF20; # Multi-key character compose # Japanese keyboard support $Keysyms{"Kanji"} = 0xFF21; # Kanji, Kanji convert $Keysyms{"Muhenkan"} = 0xFF22; # Cancel Conversion $Keysyms{"Henkan_Mode"} = 0xFF23; # Start/Stop Conversion $Keysyms{"Henkan"} = 0xFF23; # Alias for Henkan_Mode $Keysyms{"Romaji"} = 0xFF24; # to Romaji $Keysyms{"Hiragana"} = 0xFF25; # to Hiragana $Keysyms{"Katakana"} = 0xFF26; # to Katakana $Keysyms{"Hiragana_Katakana"} = 0xFF27; # Hiragana/Katakana toggle $Keysyms{"Zenkaku"} = 0xFF28; # to Zenkaku $Keysyms{"Hankaku"} = 0xFF29; # to Hankaku $Keysyms{"Zenkaku_Hankaku"} = 0xFF2A; # Zenkaku/Hankaku toggle $Keysyms{"Touroku"} = 0xFF2B; # Add to Dictionary $Keysyms{"Massyo"} = 0xFF2C; # Delete from Dictionary $Keysyms{"Kana_Lock"} = 0xFF2D; # Kana Lock $Keysyms{"Kana_Shift"} = 0xFF2E; # Kana Shift $Keysyms{"Eisu_Shift"} = 0xFF2F; # Alphanumeric Shift $Keysyms{"Eisu_toggle"} = 0xFF30; # Alphanumeric toggle # 0xFF31 thru 0xFF3F are under XK_KOREAN # Cursor control & motion $Keysyms{"Home"} = 0xFF50; $Keysyms{"Left"} = 0xFF51; # Move left, left arrow $Keysyms{"Up"} = 0xFF52; # Move up, up arrow $Keysyms{"Right"} = 0xFF53; # Move right, right arrow $Keysyms{"Down"} = 0xFF54; # Move down, down arrow $Keysyms{"Prior"} = 0xFF55; # Prior, previous $Keysyms{"Page_Up"} = 0xFF55; $Keysyms{"Next"} = 0xFF56; # Next $Keysyms{"Page_Down"} = 0xFF56; $Keysyms{"End"} = 0xFF57; # EOL $Keysyms{"Begin"} = 0xFF58; # BOL # Misc Functions $Keysyms{"Select"} = 0xFF60; # Select, mark $Keysyms{"Print"} = 0xFF61; $Keysyms{"Execute"} = 0xFF62; # Execute, run, do $Keysyms{"Insert"} = 0xFF63; # Insert, insert here $Keysyms{"Undo"} = 0xFF65; # Undo, oops $Keysyms{"Redo"} = 0xFF66; # redo, again $Keysyms{"Menu"} = 0xFF67; $Keysyms{"Find"} = 0xFF68; # Find, search $Keysyms{"Cancel"} = 0xFF69; # Cancel, stop, abort, exit $Keysyms{"Help"} = 0xFF6A; # Help $Keysyms{"Break"} = 0xFF6B; $Keysyms{"Mode_switch"} = 0xFF7E; # Character set switch $Keysyms{"script_switch"} = 0xFF7E; # Alias for mode_switch $Keysyms{"Num_Lock"} = 0xFF7F; # Keypad Functions, keypad numbers cleverly chosen to map to ascii $Keysyms{"KP_Space"} = 0xFF80; # space $Keysyms{"KP_Tab"} = 0xFF89; $Keysyms{"KP_Enter"} = 0xFF8D; # enter $Keysyms{"KP_F1"} = 0xFF91; # PF1, KP_A, ... $Keysyms{"KP_F2"} = 0xFF92; $Keysyms{"KP_F3"} = 0xFF93; $Keysyms{"KP_F4"} = 0xFF94; $Keysyms{"KP_Home"} = 0xFF95; $Keysyms{"KP_Left"} = 0xFF96; $Keysyms{"KP_Up"} = 0xFF97; $Keysyms{"KP_Right"} = 0xFF98; $Keysyms{"KP_Down"} = 0xFF99; $Keysyms{"KP_Prior"} = 0xFF9A; $Keysyms{"KP_Page_Up"} = 0xFF9A; $Keysyms{"KP_Next"} = 0xFF9B; $Keysyms{"KP_Page_Down"} = 0xFF9B; $Keysyms{"KP_End"} = 0xFF9C; $Keysyms{"KP_Begin"} = 0xFF9D; $Keysyms{"KP_Insert"} = 0xFF9E; $Keysyms{"KP_Delete"} = 0xFF9F; $Keysyms{"KP_Equal"} = 0xFFBD; # equals $Keysyms{"KP_Multiply"} = 0xFFAA; $Keysyms{"KP_Add"} = 0xFFAB; $Keysyms{"KP_Separator"} = 0xFFAC; # separator, often comma $Keysyms{"KP_Subtract"} = 0xFFAD; $Keysyms{"KP_Decimal"} = 0xFFAE; $Keysyms{"KP_Divide"} = 0xFFAF; $Keysyms{"KP_0"} = 0xFFB0; $Keysyms{"KP_1"} = 0xFFB1; $Keysyms{"KP_2"} = 0xFFB2; $Keysyms{"KP_3"} = 0xFFB3; $Keysyms{"KP_4"} = 0xFFB4; $Keysyms{"KP_5"} = 0xFFB5; $Keysyms{"KP_6"} = 0xFFB6; $Keysyms{"KP_7"} = 0xFFB7; $Keysyms{"KP_8"} = 0xFFB8; $Keysyms{"KP_9"} = 0xFFB9; # # * Auxilliary Functions; note the duplicate definitions for left and right # * function keys; Sun keyboards and a few other manufactures have such # * function key groups on the left and/or right sides of the keyboard. # * We've not found a keyboard with more than 35 function keys total. $Keysyms{"F1"} = 0xFFBE; $Keysyms{"F2"} = 0xFFBF; $Keysyms{"F3"} = 0xFFC0; $Keysyms{"F4"} = 0xFFC1; $Keysyms{"F5"} = 0xFFC2; $Keysyms{"F6"} = 0xFFC3; $Keysyms{"F7"} = 0xFFC4; $Keysyms{"F8"} = 0xFFC5; $Keysyms{"F9"} = 0xFFC6; $Keysyms{"F10"} = 0xFFC7; $Keysyms{"F11"} = 0xFFC8; $Keysyms{"L1"} = 0xFFC8; $Keysyms{"F12"} = 0xFFC9; $Keysyms{"L2"} = 0xFFC9; $Keysyms{"F13"} = 0xFFCA; $Keysyms{"L3"} = 0xFFCA; $Keysyms{"F14"} = 0xFFCB; $Keysyms{"L4"} = 0xFFCB; $Keysyms{"F15"} = 0xFFCC; $Keysyms{"L5"} = 0xFFCC; $Keysyms{"F16"} = 0xFFCD; $Keysyms{"L6"} = 0xFFCD; $Keysyms{"F17"} = 0xFFCE; $Keysyms{"L7"} = 0xFFCE; $Keysyms{"F18"} = 0xFFCF; $Keysyms{"L8"} = 0xFFCF; $Keysyms{"F19"} = 0xFFD0; $Keysyms{"L9"} = 0xFFD0; $Keysyms{"F20"} = 0xFFD1; $Keysyms{"L10"} = 0xFFD1; $Keysyms{"F21"} = 0xFFD2; $Keysyms{"R1"} = 0xFFD2; $Keysyms{"F22"} = 0xFFD3; $Keysyms{"R2"} = 0xFFD3; $Keysyms{"F23"} = 0xFFD4; $Keysyms{"R3"} = 0xFFD4; $Keysyms{"F24"} = 0xFFD5; $Keysyms{"R4"} = 0xFFD5; $Keysyms{"F25"} = 0xFFD6; $Keysyms{"R5"} = 0xFFD6; $Keysyms{"F26"} = 0xFFD7; $Keysyms{"R6"} = 0xFFD7; $Keysyms{"F27"} = 0xFFD8; $Keysyms{"R7"} = 0xFFD8; $Keysyms{"F28"} = 0xFFD9; $Keysyms{"R8"} = 0xFFD9; $Keysyms{"F29"} = 0xFFDA; $Keysyms{"R9"} = 0xFFDA; $Keysyms{"F30"} = 0xFFDB; $Keysyms{"R10"} = 0xFFDB; $Keysyms{"F31"} = 0xFFDC; $Keysyms{"R11"} = 0xFFDC; $Keysyms{"F32"} = 0xFFDD; $Keysyms{"R12"} = 0xFFDD; $Keysyms{"F33"} = 0xFFDE; $Keysyms{"R13"} = 0xFFDE; $Keysyms{"F34"} = 0xFFDF; $Keysyms{"R14"} = 0xFFDF; $Keysyms{"F35"} = 0xFFE0; $Keysyms{"R15"} = 0xFFE0; # Modifiers $Keysyms{"Shift_L"} = 0xFFE1; # Left shift $Keysyms{"Shift_R"} = 0xFFE2; # Right shift $Keysyms{"Control_L"} = 0xFFE3; # Left control $Keysyms{"Control_R"} = 0xFFE4; # Right control $Keysyms{"Caps_Lock"} = 0xFFE5; # Caps lock $Keysyms{"Shift_Lock"} = 0xFFE6; # Shift lock $Keysyms{"Meta_L"} = 0xFFE7; # Left meta $Keysyms{"Meta_R"} = 0xFFE8; # Right meta $Keysyms{"Alt_L"} = 0xFFE9; # Left alt $Keysyms{"Alt_R"} = 0xFFEA; # Right alt $Keysyms{"Super_L"} = 0xFFEB; # Left super $Keysyms{"Super_R"} = 0xFFEC; # Right super $Keysyms{"Hyper_L"} = 0xFFED; # Left hyper $Keysyms{"Hyper_R"} = 0xFFEE; # Right hyper } #endif # XK_MISCELLANY # # * ISO 9995 Function and Modifier Keys # * Byte 3 = 0xFE #ifdef XK_XKB_KEYS if ($KL{'XKB_KEYS'}) { $Keysyms{"ISO_Lock"} = 0xFE01; $Keysyms{"ISO_Level2_Latch"} = 0xFE02; $Keysyms{"ISO_Level3_Shift"} = 0xFE03; $Keysyms{"ISO_Level3_Latch"} = 0xFE04; $Keysyms{"ISO_Level3_Lock"} = 0xFE05; $Keysyms{"ISO_Group_Shift"} = 0xFF7E; # Alias for mode_switch $Keysyms{"ISO_Group_Latch"} = 0xFE06; $Keysyms{"ISO_Group_Lock"} = 0xFE07; $Keysyms{"ISO_Next_Group"} = 0xFE08; $Keysyms{"ISO_Next_Group_Lock"} = 0xFE09; $Keysyms{"ISO_Prev_Group"} = 0xFE0A; $Keysyms{"ISO_Prev_Group_Lock"} = 0xFE0B; $Keysyms{"ISO_First_Group"} = 0xFE0C; $Keysyms{"ISO_First_Group_Lock"} = 0xFE0D; $Keysyms{"ISO_Last_Group"} = 0xFE0E; $Keysyms{"ISO_Last_Group_Lock"} = 0xFE0F; $Keysyms{"ISO_Left_Tab"} = 0xFE20; $Keysyms{"ISO_Move_Line_Up"} = 0xFE21; $Keysyms{"ISO_Move_Line_Down"} = 0xFE22; $Keysyms{"ISO_Partial_Line_Up"} = 0xFE23; $Keysyms{"ISO_Partial_Line_Down"} = 0xFE24; $Keysyms{"ISO_Partial_Space_Left"} = 0xFE25; $Keysyms{"ISO_Partial_Space_Right"} = 0xFE26; $Keysyms{"ISO_Set_Margin_Left"} = 0xFE27; $Keysyms{"ISO_Set_Margin_Right"} = 0xFE28; $Keysyms{"ISO_Release_Margin_Left"} = 0xFE29; $Keysyms{"ISO_Release_Margin_Right"} = 0xFE2A; $Keysyms{"ISO_Release_Both_Margins"} = 0xFE2B; $Keysyms{"ISO_Fast_Cursor_Left"} = 0xFE2C; $Keysyms{"ISO_Fast_Cursor_Right"} = 0xFE2D; $Keysyms{"ISO_Fast_Cursor_Up"} = 0xFE2E; $Keysyms{"ISO_Fast_Cursor_Down"} = 0xFE2F; $Keysyms{"ISO_Continuous_Underline"} = 0xFE30; $Keysyms{"ISO_Discontinuous_Underline"} = 0xFE31; $Keysyms{"ISO_Emphasize"} = 0xFE32; $Keysyms{"ISO_Center_Object"} = 0xFE33; $Keysyms{"ISO_Enter"} = 0xFE34; $Keysyms{"dead_grave"} = 0xFE50; $Keysyms{"dead_acute"} = 0xFE51; $Keysyms{"dead_circumflex"} = 0xFE52; $Keysyms{"dead_tilde"} = 0xFE53; $Keysyms{"dead_macron"} = 0xFE54; $Keysyms{"dead_breve"} = 0xFE55; $Keysyms{"dead_abovedot"} = 0xFE56; $Keysyms{"dead_diaeresis"} = 0xFE57; $Keysyms{"dead_abovering"} = 0xFE58; $Keysyms{"dead_doubleacute"} = 0xFE59; $Keysyms{"dead_caron"} = 0xFE5A; $Keysyms{"dead_cedilla"} = 0xFE5B; $Keysyms{"dead_ogonek"} = 0xFE5C; $Keysyms{"dead_iota"} = 0xFE5D; $Keysyms{"dead_voiced_sound"} = 0xFE5E; $Keysyms{"dead_semivoiced_sound"} = 0xFE5F; $Keysyms{"First_Virtual_Screen"} = 0xFED0; $Keysyms{"Prev_Virtual_Screen"} = 0xFED1; $Keysyms{"Next_Virtual_Screen"} = 0xFED2; $Keysyms{"Last_Virtual_Screen"} = 0xFED4; $Keysyms{"Terminate_Server"} = 0xFED5; $Keysyms{"Pointer_Left"} = 0xFEE0; $Keysyms{"Pointer_Right"} = 0xFEE1; $Keysyms{"Pointer_Up"} = 0xFEE2; $Keysyms{"Pointer_Down"} = 0xFEE3; $Keysyms{"Pointer_UpLeft"} = 0xFEE4; $Keysyms{"Pointer_UpRight"} = 0xFEE5; $Keysyms{"Pointer_DownLeft"} = 0xFEE6; $Keysyms{"Pointer_DownRight"} = 0xFEE7; $Keysyms{"Pointer_Button_Dflt"} = 0xFEE8; $Keysyms{"Pointer_Button1"} = 0xFEE9; $Keysyms{"Pointer_Button2"} = 0xFEEA; $Keysyms{"Pointer_Button3"} = 0xFEEB; $Keysyms{"Pointer_Button4"} = 0xFEEC; $Keysyms{"Pointer_Button5"} = 0xFEED; $Keysyms{"Pointer_DblClick_Dflt"} = 0xFEEE; $Keysyms{"Pointer_DblClick1"} = 0xFEEF; $Keysyms{"Pointer_DblClick2"} = 0xFEF0; $Keysyms{"Pointer_DblClick3"} = 0xFEF1; $Keysyms{"Pointer_DblClick4"} = 0xFEF2; $Keysyms{"Pointer_DblClick5"} = 0xFEF3; $Keysyms{"Pointer_Drag_Dflt"} = 0xFEF4; $Keysyms{"Pointer_Drag1"} = 0xFEF5; $Keysyms{"Pointer_Drag2"} = 0xFEF6; $Keysyms{"Pointer_Drag3"} = 0xFEF7; $Keysyms{"Pointer_Drag4"} = 0xFEF8; $Keysyms{"Pointer_EnableKeys"} = 0xFEF9; $Keysyms{"Pointer_Accelerate"} = 0xFEFA; $Keysyms{"Pointer_DfltBtnNext"} = 0xFEFB; $Keysyms{"Pointer_DfltBtnPrev"} = 0xFEFC; } #endif # # * 3270 Terminal Keys # * Byte 3 = 0xFD #ifdef XK_3270 if ($KL{'3270'}) { $Keysyms{"3270_Duplicate"} = 0xFD01; $Keysyms{"3270_FieldMark"} = 0xFD02; $Keysyms{"3270_Right2"} = 0xFD03; $Keysyms{"3270_Left2"} = 0xFD04; $Keysyms{"3270_BackTab"} = 0xFD05; $Keysyms{"3270_EraseEOF"} = 0xFD06; $Keysyms{"3270_EraseInput"} = 0xFD07; $Keysyms{"3270_Reset"} = 0xFD08; $Keysyms{"3270_Quit"} = 0xFD09; $Keysyms{"3270_PA1"} = 0xFD0A; $Keysyms{"3270_PA2"} = 0xFD0B; $Keysyms{"3270_PA3"} = 0xFD0C; $Keysyms{"3270_Test"} = 0xFD0D; $Keysyms{"3270_Attn"} = 0xFD0E; $Keysyms{"3270_CursorBlink"} = 0xFD0F; $Keysyms{"3270_AltCursor"} = 0xFD10; $Keysyms{"3270_KeyClick"} = 0xFD11; $Keysyms{"3270_Jump"} = 0xFD12; $Keysyms{"3270_Ident"} = 0xFD13; $Keysyms{"3270_Rule"} = 0xFD14; $Keysyms{"3270_Copy"} = 0xFD15; $Keysyms{"3270_Play"} = 0xFD16; $Keysyms{"3270_Setup"} = 0xFD17; $Keysyms{"3270_Record"} = 0xFD18; $Keysyms{"3270_ChangeScreen"} = 0xFD19; $Keysyms{"3270_DeleteWord"} = 0xFD1A; $Keysyms{"3270_ExSelect"} = 0xFD1B; $Keysyms{"3270_CursorSelect"} = 0xFD1C; $Keysyms{"3270_PrintScreen"} = 0xFD1D; $Keysyms{"3270_Enter"} = 0xFD1E; } #endif # # * Latin 1 # * Byte 3 = 0 #ifdef XK_LATIN1 if ($KL{'LATIN1'}) { $Keysyms{"space"} = 0x020; $Keysyms{"exclam"} = 0x021; $Keysyms{"quotedbl"} = 0x022; $Keysyms{"numbersign"} = 0x023; $Keysyms{"dollar"} = 0x024; $Keysyms{"percent"} = 0x025; $Keysyms{"ampersand"} = 0x026; $Keysyms{"apostrophe"} = 0x027; $Keysyms{"quoteright"} = 0x027; # deprecated $Keysyms{"parenleft"} = 0x028; $Keysyms{"parenright"} = 0x029; $Keysyms{"asterisk"} = 0x02a; $Keysyms{"plus"} = 0x02b; $Keysyms{"comma"} = 0x02c; $Keysyms{"minus"} = 0x02d; $Keysyms{"period"} = 0x02e; $Keysyms{"slash"} = 0x02f; $Keysyms{"0"} = 0x030; $Keysyms{"1"} = 0x031; $Keysyms{"2"} = 0x032; $Keysyms{"3"} = 0x033; $Keysyms{"4"} = 0x034; $Keysyms{"5"} = 0x035; $Keysyms{"6"} = 0x036; $Keysyms{"7"} = 0x037; $Keysyms{"8"} = 0x038; $Keysyms{"9"} = 0x039; $Keysyms{"colon"} = 0x03a; $Keysyms{"semicolon"} = 0x03b; $Keysyms{"less"} = 0x03c; $Keysyms{"equal"} = 0x03d; $Keysyms{"greater"} = 0x03e; $Keysyms{"question"} = 0x03f; $Keysyms{"at"} = 0x040; $Keysyms{"A"} = 0x041; $Keysyms{"B"} = 0x042; $Keysyms{"C"} = 0x043; $Keysyms{"D"} = 0x044; $Keysyms{"E"} = 0x045; $Keysyms{"F"} = 0x046; $Keysyms{"G"} = 0x047; $Keysyms{"H"} = 0x048; $Keysyms{"I"} = 0x049; $Keysyms{"J"} = 0x04a; $Keysyms{"K"} = 0x04b; $Keysyms{"L"} = 0x04c; $Keysyms{"M"} = 0x04d; $Keysyms{"N"} = 0x04e; $Keysyms{"O"} = 0x04f; $Keysyms{"P"} = 0x050; $Keysyms{"Q"} = 0x051; $Keysyms{"R"} = 0x052; $Keysyms{"S"} = 0x053; $Keysyms{"T"} = 0x054; $Keysyms{"U"} = 0x055; $Keysyms{"V"} = 0x056; $Keysyms{"W"} = 0x057; $Keysyms{"X"} = 0x058; $Keysyms{"Y"} = 0x059; $Keysyms{"Z"} = 0x05a; $Keysyms{"bracketleft"} = 0x05b; $Keysyms{"backslash"} = 0x05c; $Keysyms{"bracketright"} = 0x05d; $Keysyms{"asciicircum"} = 0x05e; $Keysyms{"underscore"} = 0x05f; $Keysyms{"grave"} = 0x060; $Keysyms{"quoteleft"} = 0x060; # deprecated $Keysyms{"a"} = 0x061; $Keysyms{"b"} = 0x062; $Keysyms{"c"} = 0x063; $Keysyms{"d"} = 0x064; $Keysyms{"e"} = 0x065; $Keysyms{"f"} = 0x066; $Keysyms{"g"} = 0x067; $Keysyms{"h"} = 0x068; $Keysyms{"i"} = 0x069; $Keysyms{"j"} = 0x06a; $Keysyms{"k"} = 0x06b; $Keysyms{"l"} = 0x06c; $Keysyms{"m"} = 0x06d; $Keysyms{"n"} = 0x06e; $Keysyms{"o"} = 0x06f; $Keysyms{"p"} = 0x070; $Keysyms{"q"} = 0x071; $Keysyms{"r"} = 0x072; $Keysyms{"s"} = 0x073; $Keysyms{"t"} = 0x074; $Keysyms{"u"} = 0x075; $Keysyms{"v"} = 0x076; $Keysyms{"w"} = 0x077; $Keysyms{"x"} = 0x078; $Keysyms{"y"} = 0x079; $Keysyms{"z"} = 0x07a; $Keysyms{"braceleft"} = 0x07b; $Keysyms{"bar"} = 0x07c; $Keysyms{"braceright"} = 0x07d; $Keysyms{"asciitilde"} = 0x07e; $Keysyms{"nobreakspace"} = 0x0a0; $Keysyms{"exclamdown"} = 0x0a1; $Keysyms{"cent"} = 0x0a2; $Keysyms{"sterling"} = 0x0a3; $Keysyms{"currency"} = 0x0a4; $Keysyms{"yen"} = 0x0a5; $Keysyms{"brokenbar"} = 0x0a6; $Keysyms{"section"} = 0x0a7; $Keysyms{"diaeresis"} = 0x0a8; $Keysyms{"copyright"} = 0x0a9; $Keysyms{"ordfeminine"} = 0x0aa; $Keysyms{"guillemotleft"} = 0x0ab; # left angle quotation mark $Keysyms{"notsign"} = 0x0ac; $Keysyms{"hyphen"} = 0x0ad; $Keysyms{"registered"} = 0x0ae; $Keysyms{"macron"} = 0x0af; $Keysyms{"degree"} = 0x0b0; $Keysyms{"plusminus"} = 0x0b1; $Keysyms{"twosuperior"} = 0x0b2; $Keysyms{"threesuperior"} = 0x0b3; $Keysyms{"acute"} = 0x0b4; $Keysyms{"mu"} = 0x0b5; $Keysyms{"paragraph"} = 0x0b6; $Keysyms{"periodcentered"} = 0x0b7; $Keysyms{"cedilla"} = 0x0b8; $Keysyms{"onesuperior"} = 0x0b9; $Keysyms{"masculine"} = 0x0ba; $Keysyms{"guillemotright"} = 0x0bb; # right angle quotation mark $Keysyms{"onequarter"} = 0x0bc; $Keysyms{"onehalf"} = 0x0bd; $Keysyms{"threequarters"} = 0x0be; $Keysyms{"questiondown"} = 0x0bf; $Keysyms{"Agrave"} = 0x0c0; $Keysyms{"Aacute"} = 0x0c1; $Keysyms{"Acircumflex"} = 0x0c2; $Keysyms{"Atilde"} = 0x0c3; $Keysyms{"Adiaeresis"} = 0x0c4; $Keysyms{"Aring"} = 0x0c5; $Keysyms{"AE"} = 0x0c6; $Keysyms{"Ccedilla"} = 0x0c7; $Keysyms{"Egrave"} = 0x0c8; $Keysyms{"Eacute"} = 0x0c9; $Keysyms{"Ecircumflex"} = 0x0ca; $Keysyms{"Ediaeresis"} = 0x0cb; $Keysyms{"Igrave"} = 0x0cc; $Keysyms{"Iacute"} = 0x0cd; $Keysyms{"Icircumflex"} = 0x0ce; $Keysyms{"Idiaeresis"} = 0x0cf; $Keysyms{"ETH"} = 0x0d0; $Keysyms{"Eth"} = 0x0d0; # deprecated $Keysyms{"Ntilde"} = 0x0d1; $Keysyms{"Ograve"} = 0x0d2; $Keysyms{"Oacute"} = 0x0d3; $Keysyms{"Ocircumflex"} = 0x0d4; $Keysyms{"Otilde"} = 0x0d5; $Keysyms{"Odiaeresis"} = 0x0d6; $Keysyms{"multiply"} = 0x0d7; $Keysyms{"Ooblique"} = 0x0d8; $Keysyms{"Ugrave"} = 0x0d9; $Keysyms{"Uacute"} = 0x0da; $Keysyms{"Ucircumflex"} = 0x0db; $Keysyms{"Udiaeresis"} = 0x0dc; $Keysyms{"Yacute"} = 0x0dd; $Keysyms{"THORN"} = 0x0de; $Keysyms{"Thorn"} = 0x0de; # deprecated $Keysyms{"ssharp"} = 0x0df; $Keysyms{"agrave"} = 0x0e0; $Keysyms{"aacute"} = 0x0e1; $Keysyms{"acircumflex"} = 0x0e2; $Keysyms{"atilde"} = 0x0e3; $Keysyms{"adiaeresis"} = 0x0e4; $Keysyms{"aring"} = 0x0e5; $Keysyms{"ae"} = 0x0e6; $Keysyms{"ccedilla"} = 0x0e7; $Keysyms{"egrave"} = 0x0e8; $Keysyms{"eacute"} = 0x0e9; $Keysyms{"ecircumflex"} = 0x0ea; $Keysyms{"ediaeresis"} = 0x0eb; $Keysyms{"igrave"} = 0x0ec; $Keysyms{"iacute"} = 0x0ed; $Keysyms{"icircumflex"} = 0x0ee; $Keysyms{"idiaeresis"} = 0x0ef; $Keysyms{"eth"} = 0x0f0; $Keysyms{"ntilde"} = 0x0f1; $Keysyms{"ograve"} = 0x0f2; $Keysyms{"oacute"} = 0x0f3; $Keysyms{"ocircumflex"} = 0x0f4; $Keysyms{"otilde"} = 0x0f5; $Keysyms{"odiaeresis"} = 0x0f6; $Keysyms{"division"} = 0x0f7; $Keysyms{"oslash"} = 0x0f8; $Keysyms{"ugrave"} = 0x0f9; $Keysyms{"uacute"} = 0x0fa; $Keysyms{"ucircumflex"} = 0x0fb; $Keysyms{"udiaeresis"} = 0x0fc; $Keysyms{"yacute"} = 0x0fd; $Keysyms{"thorn"} = 0x0fe; $Keysyms{"ydiaeresis"} = 0x0ff; } #endif # XK_LATIN1 # # * Latin 2 # * Byte 3 = 1 #ifdef XK_LATIN2 if ($KL{'LATIN2'}) { $Keysyms{"Aogonek"} = 0x1a1; $Keysyms{"breve"} = 0x1a2; $Keysyms{"Lstroke"} = 0x1a3; $Keysyms{"Lcaron"} = 0x1a5; $Keysyms{"Sacute"} = 0x1a6; $Keysyms{"Scaron"} = 0x1a9; $Keysyms{"Scedilla"} = 0x1aa; $Keysyms{"Tcaron"} = 0x1ab; $Keysyms{"Zacute"} = 0x1ac; $Keysyms{"Zcaron"} = 0x1ae; $Keysyms{"Zabovedot"} = 0x1af; $Keysyms{"aogonek"} = 0x1b1; $Keysyms{"ogonek"} = 0x1b2; $Keysyms{"lstroke"} = 0x1b3; $Keysyms{"lcaron"} = 0x1b5; $Keysyms{"sacute"} = 0x1b6; $Keysyms{"caron"} = 0x1b7; $Keysyms{"scaron"} = 0x1b9; $Keysyms{"scedilla"} = 0x1ba; $Keysyms{"tcaron"} = 0x1bb; $Keysyms{"zacute"} = 0x1bc; $Keysyms{"doubleacute"} = 0x1bd; $Keysyms{"zcaron"} = 0x1be; $Keysyms{"zabovedot"} = 0x1bf; $Keysyms{"Racute"} = 0x1c0; $Keysyms{"Abreve"} = 0x1c3; $Keysyms{"Lacute"} = 0x1c5; $Keysyms{"Cacute"} = 0x1c6; $Keysyms{"Ccaron"} = 0x1c8; $Keysyms{"Eogonek"} = 0x1ca; $Keysyms{"Ecaron"} = 0x1cc; $Keysyms{"Dcaron"} = 0x1cf; $Keysyms{"Dstroke"} = 0x1d0; $Keysyms{"Nacute"} = 0x1d1; $Keysyms{"Ncaron"} = 0x1d2; $Keysyms{"Odoubleacute"} = 0x1d5; $Keysyms{"Rcaron"} = 0x1d8; $Keysyms{"Uring"} = 0x1d9; $Keysyms{"Udoubleacute"} = 0x1db; $Keysyms{"Tcedilla"} = 0x1de; $Keysyms{"racute"} = 0x1e0; $Keysyms{"abreve"} = 0x1e3; $Keysyms{"lacute"} = 0x1e5; $Keysyms{"cacute"} = 0x1e6; $Keysyms{"ccaron"} = 0x1e8; $Keysyms{"eogonek"} = 0x1ea; $Keysyms{"ecaron"} = 0x1ec; $Keysyms{"dcaron"} = 0x1ef; $Keysyms{"dstroke"} = 0x1f0; $Keysyms{"nacute"} = 0x1f1; $Keysyms{"ncaron"} = 0x1f2; $Keysyms{"odoubleacute"} = 0x1f5; $Keysyms{"udoubleacute"} = 0x1fb; $Keysyms{"rcaron"} = 0x1f8; $Keysyms{"uring"} = 0x1f9; $Keysyms{"tcedilla"} = 0x1fe; $Keysyms{"abovedot"} = 0x1ff; } #endif # XK_LATIN2 # # * Latin 3 # * Byte 3 = 2 #ifdef XK_LATIN3 if ($KL{'LATIN3'}) { $Keysyms{"Hstroke"} = 0x2a1; $Keysyms{"Hcircumflex"} = 0x2a6; $Keysyms{"Iabovedot"} = 0x2a9; $Keysyms{"Gbreve"} = 0x2ab; $Keysyms{"Jcircumflex"} = 0x2ac; $Keysyms{"hstroke"} = 0x2b1; $Keysyms{"hcircumflex"} = 0x2b6; $Keysyms{"idotless"} = 0x2b9; $Keysyms{"gbreve"} = 0x2bb; $Keysyms{"jcircumflex"} = 0x2bc; $Keysyms{"Cabovedot"} = 0x2c5; $Keysyms{"Ccircumflex"} = 0x2c6; $Keysyms{"Gabovedot"} = 0x2d5; $Keysyms{"Gcircumflex"} = 0x2d8; $Keysyms{"Ubreve"} = 0x2dd; $Keysyms{"Scircumflex"} = 0x2de; $Keysyms{"cabovedot"} = 0x2e5; $Keysyms{"ccircumflex"} = 0x2e6; $Keysyms{"gabovedot"} = 0x2f5; $Keysyms{"gcircumflex"} = 0x2f8; $Keysyms{"ubreve"} = 0x2fd; $Keysyms{"scircumflex"} = 0x2fe; } #endif # XK_LATIN3 # # * Latin 4 # * Byte 3 = 3 #ifdef XK_LATIN4 if ($KL{'LATIN4'}) { $Keysyms{"kra"} = 0x3a2; $Keysyms{"kappa"} = 0x3a2; # deprecated $Keysyms{"Rcedilla"} = 0x3a3; $Keysyms{"Itilde"} = 0x3a5; $Keysyms{"Lcedilla"} = 0x3a6; $Keysyms{"Emacron"} = 0x3aa; $Keysyms{"Gcedilla"} = 0x3ab; $Keysyms{"Tslash"} = 0x3ac; $Keysyms{"rcedilla"} = 0x3b3; $Keysyms{"itilde"} = 0x3b5; $Keysyms{"lcedilla"} = 0x3b6; $Keysyms{"emacron"} = 0x3ba; $Keysyms{"gcedilla"} = 0x3bb; $Keysyms{"tslash"} = 0x3bc; $Keysyms{"ENG"} = 0x3bd; $Keysyms{"eng"} = 0x3bf; $Keysyms{"Amacron"} = 0x3c0; $Keysyms{"Iogonek"} = 0x3c7; $Keysyms{"Eabovedot"} = 0x3cc; $Keysyms{"Imacron"} = 0x3cf; $Keysyms{"Ncedilla"} = 0x3d1; $Keysyms{"Omacron"} = 0x3d2; $Keysyms{"Kcedilla"} = 0x3d3; $Keysyms{"Uogonek"} = 0x3d9; $Keysyms{"Utilde"} = 0x3dd; $Keysyms{"Umacron"} = 0x3de; $Keysyms{"amacron"} = 0x3e0; $Keysyms{"iogonek"} = 0x3e7; $Keysyms{"eabovedot"} = 0x3ec; $Keysyms{"imacron"} = 0x3ef; $Keysyms{"ncedilla"} = 0x3f1; $Keysyms{"omacron"} = 0x3f2; $Keysyms{"kcedilla"} = 0x3f3; $Keysyms{"uogonek"} = 0x3f9; $Keysyms{"utilde"} = 0x3fd; $Keysyms{"umacron"} = 0x3fe; } #endif # XK_LATIN4 # # * Katakana # * Byte 3 = 4 #ifdef XK_KATAKANA if ($KL{'KATAKANA'}) { $Keysyms{"overline"} = 0x47e; $Keysyms{"kana_fullstop"} = 0x4a1; $Keysyms{"kana_openingbracket"} = 0x4a2; $Keysyms{"kana_closingbracket"} = 0x4a3; $Keysyms{"kana_comma"} = 0x4a4; $Keysyms{"kana_conjunctive"} = 0x4a5; $Keysyms{"kana_middledot"} = 0x4a5; # deprecated $Keysyms{"kana_WO"} = 0x4a6; $Keysyms{"kana_a"} = 0x4a7; $Keysyms{"kana_i"} = 0x4a8; $Keysyms{"kana_u"} = 0x4a9; $Keysyms{"kana_e"} = 0x4aa; $Keysyms{"kana_o"} = 0x4ab; $Keysyms{"kana_ya"} = 0x4ac; $Keysyms{"kana_yu"} = 0x4ad; $Keysyms{"kana_yo"} = 0x4ae; $Keysyms{"kana_tsu"} = 0x4af; $Keysyms{"kana_tu"} = 0x4af; # deprecated $Keysyms{"prolongedsound"} = 0x4b0; $Keysyms{"kana_A"} = 0x4b1; $Keysyms{"kana_I"} = 0x4b2; $Keysyms{"kana_U"} = 0x4b3; $Keysyms{"kana_E"} = 0x4b4; $Keysyms{"kana_O"} = 0x4b5; $Keysyms{"kana_KA"} = 0x4b6; $Keysyms{"kana_KI"} = 0x4b7; $Keysyms{"kana_KU"} = 0x4b8; $Keysyms{"kana_KE"} = 0x4b9; $Keysyms{"kana_KO"} = 0x4ba; $Keysyms{"kana_SA"} = 0x4bb; $Keysyms{"kana_SHI"} = 0x4bc; $Keysyms{"kana_SU"} = 0x4bd; $Keysyms{"kana_SE"} = 0x4be; $Keysyms{"kana_SO"} = 0x4bf; $Keysyms{"kana_TA"} = 0x4c0; $Keysyms{"kana_CHI"} = 0x4c1; $Keysyms{"kana_TI"} = 0x4c1; # deprecated $Keysyms{"kana_TSU"} = 0x4c2; $Keysyms{"kana_TU"} = 0x4c2; # deprecated $Keysyms{"kana_TE"} = 0x4c3; $Keysyms{"kana_TO"} = 0x4c4; $Keysyms{"kana_NA"} = 0x4c5; $Keysyms{"kana_NI"} = 0x4c6; $Keysyms{"kana_NU"} = 0x4c7; $Keysyms{"kana_NE"} = 0x4c8; $Keysyms{"kana_NO"} = 0x4c9; $Keysyms{"kana_HA"} = 0x4ca; $Keysyms{"kana_HI"} = 0x4cb; $Keysyms{"kana_FU"} = 0x4cc; $Keysyms{"kana_HU"} = 0x4cc; # deprecated $Keysyms{"kana_HE"} = 0x4cd; $Keysyms{"kana_HO"} = 0x4ce; $Keysyms{"kana_MA"} = 0x4cf; $Keysyms{"kana_MI"} = 0x4d0; $Keysyms{"kana_MU"} = 0x4d1; $Keysyms{"kana_ME"} = 0x4d2; $Keysyms{"kana_MO"} = 0x4d3; $Keysyms{"kana_YA"} = 0x4d4; $Keysyms{"kana_YU"} = 0x4d5; $Keysyms{"kana_YO"} = 0x4d6; $Keysyms{"kana_RA"} = 0x4d7; $Keysyms{"kana_RI"} = 0x4d8; $Keysyms{"kana_RU"} = 0x4d9; $Keysyms{"kana_RE"} = 0x4da; $Keysyms{"kana_RO"} = 0x4db; $Keysyms{"kana_WA"} = 0x4dc; $Keysyms{"kana_N"} = 0x4dd; $Keysyms{"voicedsound"} = 0x4de; $Keysyms{"semivoicedsound"} = 0x4df; $Keysyms{"kana_switch"} = 0xFF7E; # Alias for mode_switch } #endif # XK_KATAKANA # # * Arabic # * Byte 3 = 5 #ifdef XK_ARABIC if ($KL{'ARABIC'}) { $Keysyms{"Arabic_comma"} = 0x5ac; $Keysyms{"Arabic_semicolon"} = 0x5bb; $Keysyms{"Arabic_question_mark"} = 0x5bf; $Keysyms{"Arabic_hamza"} = 0x5c1; $Keysyms{"Arabic_maddaonalef"} = 0x5c2; $Keysyms{"Arabic_hamzaonalef"} = 0x5c3; $Keysyms{"Arabic_hamzaonwaw"} = 0x5c4; $Keysyms{"Arabic_hamzaunderalef"} = 0x5c5; $Keysyms{"Arabic_hamzaonyeh"} = 0x5c6; $Keysyms{"Arabic_alef"} = 0x5c7; $Keysyms{"Arabic_beh"} = 0x5c8; $Keysyms{"Arabic_tehmarbuta"} = 0x5c9; $Keysyms{"Arabic_teh"} = 0x5ca; $Keysyms{"Arabic_theh"} = 0x5cb; $Keysyms{"Arabic_jeem"} = 0x5cc; $Keysyms{"Arabic_hah"} = 0x5cd; $Keysyms{"Arabic_khah"} = 0x5ce; $Keysyms{"Arabic_dal"} = 0x5cf; $Keysyms{"Arabic_thal"} = 0x5d0; $Keysyms{"Arabic_ra"} = 0x5d1; $Keysyms{"Arabic_zain"} = 0x5d2; $Keysyms{"Arabic_seen"} = 0x5d3; $Keysyms{"Arabic_sheen"} = 0x5d4; $Keysyms{"Arabic_sad"} = 0x5d5; $Keysyms{"Arabic_dad"} = 0x5d6; $Keysyms{"Arabic_tah"} = 0x5d7; $Keysyms{"Arabic_zah"} = 0x5d8; $Keysyms{"Arabic_ain"} = 0x5d9; $Keysyms{"Arabic_ghain"} = 0x5da; $Keysyms{"Arabic_tatweel"} = 0x5e0; $Keysyms{"Arabic_feh"} = 0x5e1; $Keysyms{"Arabic_qaf"} = 0x5e2; $Keysyms{"Arabic_kaf"} = 0x5e3; $Keysyms{"Arabic_lam"} = 0x5e4; $Keysyms{"Arabic_meem"} = 0x5e5; $Keysyms{"Arabic_noon"} = 0x5e6; $Keysyms{"Arabic_ha"} = 0x5e7; $Keysyms{"Arabic_heh"} = 0x5e7; # deprecated $Keysyms{"Arabic_waw"} = 0x5e8; $Keysyms{"Arabic_alefmaksura"} = 0x5e9; $Keysyms{"Arabic_yeh"} = 0x5ea; $Keysyms{"Arabic_fathatan"} = 0x5eb; $Keysyms{"Arabic_dammatan"} = 0x5ec; $Keysyms{"Arabic_kasratan"} = 0x5ed; $Keysyms{"Arabic_fatha"} = 0x5ee; $Keysyms{"Arabic_damma"} = 0x5ef; $Keysyms{"Arabic_kasra"} = 0x5f0; $Keysyms{"Arabic_shadda"} = 0x5f1; $Keysyms{"Arabic_sukun"} = 0x5f2; $Keysyms{"Arabic_switch"} = 0xFF7E; # Alias for mode_switch } #endif # XK_ARABIC # # * Cyrillic # * Byte 3 = 6 #ifdef XK_CYRILLIC if ($KL{'CYRILLIC'}) { $Keysyms{"Serbian_dje"} = 0x6a1; $Keysyms{"Macedonia_gje"} = 0x6a2; $Keysyms{"Cyrillic_io"} = 0x6a3; $Keysyms{"Ukrainian_ie"} = 0x6a4; $Keysyms{"Ukranian_je"} = 0x6a4; # deprecated $Keysyms{"Macedonia_dse"} = 0x6a5; $Keysyms{"Ukrainian_i"} = 0x6a6; $Keysyms{"Ukranian_i"} = 0x6a6; # deprecated $Keysyms{"Ukrainian_yi"} = 0x6a7; $Keysyms{"Ukranian_yi"} = 0x6a7; # deprecated $Keysyms{"Cyrillic_je"} = 0x6a8; $Keysyms{"Serbian_je"} = 0x6a8; # deprecated $Keysyms{"Cyrillic_lje"} = 0x6a9; $Keysyms{"Serbian_lje"} = 0x6a9; # deprecated $Keysyms{"Cyrillic_nje"} = 0x6aa; $Keysyms{"Serbian_nje"} = 0x6aa; # deprecated $Keysyms{"Serbian_tshe"} = 0x6ab; $Keysyms{"Macedonia_kje"} = 0x6ac; $Keysyms{"Byelorussian_shortu"} = 0x6ae; $Keysyms{"Cyrillic_dzhe"} = 0x6af; $Keysyms{"Serbian_dze"} = 0x6af; # deprecated $Keysyms{"numerosign"} = 0x6b0; $Keysyms{"Serbian_DJE"} = 0x6b1; $Keysyms{"Macedonia_GJE"} = 0x6b2; $Keysyms{"Cyrillic_IO"} = 0x6b3; $Keysyms{"Ukrainian_IE"} = 0x6b4; $Keysyms{"Ukranian_JE"} = 0x6b4; # deprecated $Keysyms{"Macedonia_DSE"} = 0x6b5; $Keysyms{"Ukrainian_I"} = 0x6b6; $Keysyms{"Ukranian_I"} = 0x6b6; # deprecated $Keysyms{"Ukrainian_YI"} = 0x6b7; $Keysyms{"Ukranian_YI"} = 0x6b7; # deprecated $Keysyms{"Cyrillic_JE"} = 0x6b8; $Keysyms{"Serbian_JE"} = 0x6b8; # deprecated $Keysyms{"Cyrillic_LJE"} = 0x6b9; $Keysyms{"Serbian_LJE"} = 0x6b9; # deprecated $Keysyms{"Cyrillic_NJE"} = 0x6ba; $Keysyms{"Serbian_NJE"} = 0x6ba; # deprecated $Keysyms{"Serbian_TSHE"} = 0x6bb; $Keysyms{"Macedonia_KJE"} = 0x6bc; $Keysyms{"Byelorussian_SHORTU"} = 0x6be; $Keysyms{"Cyrillic_DZHE"} = 0x6bf; $Keysyms{"Serbian_DZE"} = 0x6bf; # deprecated $Keysyms{"Cyrillic_yu"} = 0x6c0; $Keysyms{"Cyrillic_a"} = 0x6c1; $Keysyms{"Cyrillic_be"} = 0x6c2; $Keysyms{"Cyrillic_tse"} = 0x6c3; $Keysyms{"Cyrillic_de"} = 0x6c4; $Keysyms{"Cyrillic_ie"} = 0x6c5; $Keysyms{"Cyrillic_ef"} = 0x6c6; $Keysyms{"Cyrillic_ghe"} = 0x6c7; $Keysyms{"Cyrillic_ha"} = 0x6c8; $Keysyms{"Cyrillic_i"} = 0x6c9; $Keysyms{"Cyrillic_shorti"} = 0x6ca; $Keysyms{"Cyrillic_ka"} = 0x6cb; $Keysyms{"Cyrillic_el"} = 0x6cc; $Keysyms{"Cyrillic_em"} = 0x6cd; $Keysyms{"Cyrillic_en"} = 0x6ce; $Keysyms{"Cyrillic_o"} = 0x6cf; $Keysyms{"Cyrillic_pe"} = 0x6d0; $Keysyms{"Cyrillic_ya"} = 0x6d1; $Keysyms{"Cyrillic_er"} = 0x6d2; $Keysyms{"Cyrillic_es"} = 0x6d3; $Keysyms{"Cyrillic_te"} = 0x6d4; $Keysyms{"Cyrillic_u"} = 0x6d5; $Keysyms{"Cyrillic_zhe"} = 0x6d6; $Keysyms{"Cyrillic_ve"} = 0x6d7; $Keysyms{"Cyrillic_softsign"} = 0x6d8; $Keysyms{"Cyrillic_yeru"} = 0x6d9; $Keysyms{"Cyrillic_ze"} = 0x6da; $Keysyms{"Cyrillic_sha"} = 0x6db; $Keysyms{"Cyrillic_e"} = 0x6dc; $Keysyms{"Cyrillic_shcha"} = 0x6dd; $Keysyms{"Cyrillic_che"} = 0x6de; $Keysyms{"Cyrillic_hardsign"} = 0x6df; $Keysyms{"Cyrillic_YU"} = 0x6e0; $Keysyms{"Cyrillic_A"} = 0x6e1; $Keysyms{"Cyrillic_BE"} = 0x6e2; $Keysyms{"Cyrillic_TSE"} = 0x6e3; $Keysyms{"Cyrillic_DE"} = 0x6e4; $Keysyms{"Cyrillic_IE"} = 0x6e5; $Keysyms{"Cyrillic_EF"} = 0x6e6; $Keysyms{"Cyrillic_GHE"} = 0x6e7; $Keysyms{"Cyrillic_HA"} = 0x6e8; $Keysyms{"Cyrillic_I"} = 0x6e9; $Keysyms{"Cyrillic_SHORTI"} = 0x6ea; $Keysyms{"Cyrillic_KA"} = 0x6eb; $Keysyms{"Cyrillic_EL"} = 0x6ec; $Keysyms{"Cyrillic_EM"} = 0x6ed; $Keysyms{"Cyrillic_EN"} = 0x6ee; $Keysyms{"Cyrillic_O"} = 0x6ef; $Keysyms{"Cyrillic_PE"} = 0x6f0; $Keysyms{"Cyrillic_YA"} = 0x6f1; $Keysyms{"Cyrillic_ER"} = 0x6f2; $Keysyms{"Cyrillic_ES"} = 0x6f3; $Keysyms{"Cyrillic_TE"} = 0x6f4; $Keysyms{"Cyrillic_U"} = 0x6f5; $Keysyms{"Cyrillic_ZHE"} = 0x6f6; $Keysyms{"Cyrillic_VE"} = 0x6f7; $Keysyms{"Cyrillic_SOFTSIGN"} = 0x6f8; $Keysyms{"Cyrillic_YERU"} = 0x6f9; $Keysyms{"Cyrillic_ZE"} = 0x6fa; $Keysyms{"Cyrillic_SHA"} = 0x6fb; $Keysyms{"Cyrillic_E"} = 0x6fc; $Keysyms{"Cyrillic_SHCHA"} = 0x6fd; $Keysyms{"Cyrillic_CHE"} = 0x6fe; $Keysyms{"Cyrillic_HARDSIGN"} = 0x6ff; } #endif # XK_CYRILLIC # # * Greek # * Byte 3 = 7 #ifdef XK_GREEK if ($KL{'GREEK'}) { $Keysyms{"Greek_ALPHAaccent"} = 0x7a1; $Keysyms{"Greek_EPSILONaccent"} = 0x7a2; $Keysyms{"Greek_ETAaccent"} = 0x7a3; $Keysyms{"Greek_IOTAaccent"} = 0x7a4; $Keysyms{"Greek_IOTAdiaeresis"} = 0x7a5; $Keysyms{"Greek_OMICRONaccent"} = 0x7a7; $Keysyms{"Greek_UPSILONaccent"} = 0x7a8; $Keysyms{"Greek_UPSILONdieresis"} = 0x7a9; $Keysyms{"Greek_OMEGAaccent"} = 0x7ab; $Keysyms{"Greek_accentdieresis"} = 0x7ae; $Keysyms{"Greek_horizbar"} = 0x7af; $Keysyms{"Greek_alphaaccent"} = 0x7b1; $Keysyms{"Greek_epsilonaccent"} = 0x7b2; $Keysyms{"Greek_etaaccent"} = 0x7b3; $Keysyms{"Greek_iotaaccent"} = 0x7b4; $Keysyms{"Greek_iotadieresis"} = 0x7b5; $Keysyms{"Greek_iotaaccentdieresis"} = 0x7b6; $Keysyms{"Greek_omicronaccent"} = 0x7b7; $Keysyms{"Greek_upsilonaccent"} = 0x7b8; $Keysyms{"Greek_upsilondieresis"} = 0x7b9; $Keysyms{"Greek_upsilonaccentdieresis"} = 0x7ba; $Keysyms{"Greek_omegaaccent"} = 0x7bb; $Keysyms{"Greek_ALPHA"} = 0x7c1; $Keysyms{"Greek_BETA"} = 0x7c2; $Keysyms{"Greek_GAMMA"} = 0x7c3; $Keysyms{"Greek_DELTA"} = 0x7c4; $Keysyms{"Greek_EPSILON"} = 0x7c5; $Keysyms{"Greek_ZETA"} = 0x7c6; $Keysyms{"Greek_ETA"} = 0x7c7; $Keysyms{"Greek_THETA"} = 0x7c8; $Keysyms{"Greek_IOTA"} = 0x7c9; $Keysyms{"Greek_KAPPA"} = 0x7ca; $Keysyms{"Greek_LAMDA"} = 0x7cb; $Keysyms{"Greek_LAMBDA"} = 0x7cb; $Keysyms{"Greek_MU"} = 0x7cc; $Keysyms{"Greek_NU"} = 0x7cd; $Keysyms{"Greek_XI"} = 0x7ce; $Keysyms{"Greek_OMICRON"} = 0x7cf; $Keysyms{"Greek_PI"} = 0x7d0; $Keysyms{"Greek_RHO"} = 0x7d1; $Keysyms{"Greek_SIGMA"} = 0x7d2; $Keysyms{"Greek_TAU"} = 0x7d4; $Keysyms{"Greek_UPSILON"} = 0x7d5; $Keysyms{"Greek_PHI"} = 0x7d6; $Keysyms{"Greek_CHI"} = 0x7d7; $Keysyms{"Greek_PSI"} = 0x7d8; $Keysyms{"Greek_OMEGA"} = 0x7d9; $Keysyms{"Greek_alpha"} = 0x7e1; $Keysyms{"Greek_beta"} = 0x7e2; $Keysyms{"Greek_gamma"} = 0x7e3; $Keysyms{"Greek_delta"} = 0x7e4; $Keysyms{"Greek_epsilon"} = 0x7e5; $Keysyms{"Greek_zeta"} = 0x7e6; $Keysyms{"Greek_eta"} = 0x7e7; $Keysyms{"Greek_theta"} = 0x7e8; $Keysyms{"Greek_iota"} = 0x7e9; $Keysyms{"Greek_kappa"} = 0x7ea; $Keysyms{"Greek_lamda"} = 0x7eb; $Keysyms{"Greek_lambda"} = 0x7eb; $Keysyms{"Greek_mu"} = 0x7ec; $Keysyms{"Greek_nu"} = 0x7ed; $Keysyms{"Greek_xi"} = 0x7ee; $Keysyms{"Greek_omicron"} = 0x7ef; $Keysyms{"Greek_pi"} = 0x7f0; $Keysyms{"Greek_rho"} = 0x7f1; $Keysyms{"Greek_sigma"} = 0x7f2; $Keysyms{"Greek_finalsmallsigma"} = 0x7f3; $Keysyms{"Greek_tau"} = 0x7f4; $Keysyms{"Greek_upsilon"} = 0x7f5; $Keysyms{"Greek_phi"} = 0x7f6; $Keysyms{"Greek_chi"} = 0x7f7; $Keysyms{"Greek_psi"} = 0x7f8; $Keysyms{"Greek_omega"} = 0x7f9; $Keysyms{"Greek_switch"} = 0xFF7E; # Alias for mode_switch } #endif # XK_GREEK # # * Technical # * Byte 3 = 8 #ifdef XK_TECHNICAL if ($KL{'TECHNICAL'}) { $Keysyms{"leftradical"} = 0x8a1; $Keysyms{"topleftradical"} = 0x8a2; $Keysyms{"horizconnector"} = 0x8a3; $Keysyms{"topintegral"} = 0x8a4; $Keysyms{"botintegral"} = 0x8a5; $Keysyms{"vertconnector"} = 0x8a6; $Keysyms{"topleftsqbracket"} = 0x8a7; $Keysyms{"botleftsqbracket"} = 0x8a8; $Keysyms{"toprightsqbracket"} = 0x8a9; $Keysyms{"botrightsqbracket"} = 0x8aa; $Keysyms{"topleftparens"} = 0x8ab; $Keysyms{"botleftparens"} = 0x8ac; $Keysyms{"toprightparens"} = 0x8ad; $Keysyms{"botrightparens"} = 0x8ae; $Keysyms{"leftmiddlecurlybrace"} = 0x8af; $Keysyms{"rightmiddlecurlybrace"} = 0x8b0; $Keysyms{"topleftsummation"} = 0x8b1; $Keysyms{"botleftsummation"} = 0x8b2; $Keysyms{"topvertsummationconnector"} = 0x8b3; $Keysyms{"botvertsummationconnector"} = 0x8b4; $Keysyms{"toprightsummation"} = 0x8b5; $Keysyms{"botrightsummation"} = 0x8b6; $Keysyms{"rightmiddlesummation"} = 0x8b7; $Keysyms{"lessthanequal"} = 0x8bc; $Keysyms{"notequal"} = 0x8bd; $Keysyms{"greaterthanequal"} = 0x8be; $Keysyms{"integral"} = 0x8bf; $Keysyms{"therefore"} = 0x8c0; $Keysyms{"variation"} = 0x8c1; $Keysyms{"infinity"} = 0x8c2; $Keysyms{"nabla"} = 0x8c5; $Keysyms{"approximate"} = 0x8c8; $Keysyms{"similarequal"} = 0x8c9; $Keysyms{"ifonlyif"} = 0x8cd; $Keysyms{"implies"} = 0x8ce; $Keysyms{"identical"} = 0x8cf; $Keysyms{"radical"} = 0x8d6; $Keysyms{"includedin"} = 0x8da; $Keysyms{"includes"} = 0x8db; $Keysyms{"intersection"} = 0x8dc; $Keysyms{"union"} = 0x8dd; $Keysyms{"logicaland"} = 0x8de; $Keysyms{"logicalor"} = 0x8df; $Keysyms{"partialderivative"} = 0x8ef; $Keysyms{"function"} = 0x8f6; $Keysyms{"leftarrow"} = 0x8fb; $Keysyms{"uparrow"} = 0x8fc; $Keysyms{"rightarrow"} = 0x8fd; $Keysyms{"downarrow"} = 0x8fe; } #endif # XK_TECHNICAL # # * Special # * Byte 3 = 9 #ifdef XK_SPECIAL if ($KL{'SPECIAL'}) { $Keysyms{"blank"} = 0x9df; $Keysyms{"soliddiamond"} = 0x9e0; $Keysyms{"checkerboard"} = 0x9e1; $Keysyms{"ht"} = 0x9e2; $Keysyms{"ff"} = 0x9e3; $Keysyms{"cr"} = 0x9e4; $Keysyms{"lf"} = 0x9e5; $Keysyms{"nl"} = 0x9e8; $Keysyms{"vt"} = 0x9e9; $Keysyms{"lowrightcorner"} = 0x9ea; $Keysyms{"uprightcorner"} = 0x9eb; $Keysyms{"upleftcorner"} = 0x9ec; $Keysyms{"lowleftcorner"} = 0x9ed; $Keysyms{"crossinglines"} = 0x9ee; $Keysyms{"horizlinescan1"} = 0x9ef; $Keysyms{"horizlinescan3"} = 0x9f0; $Keysyms{"horizlinescan5"} = 0x9f1; $Keysyms{"horizlinescan7"} = 0x9f2; $Keysyms{"horizlinescan9"} = 0x9f3; $Keysyms{"leftt"} = 0x9f4; $Keysyms{"rightt"} = 0x9f5; $Keysyms{"bott"} = 0x9f6; $Keysyms{"topt"} = 0x9f7; $Keysyms{"vertbar"} = 0x9f8; } #endif # XK_SPECIAL # # * Publishing # * Byte 3 = a #ifdef XK_PUBLISHING if ($KL{'PUBLISHING'}) { $Keysyms{"emspace"} = 0xaa1; $Keysyms{"enspace"} = 0xaa2; $Keysyms{"em3space"} = 0xaa3; $Keysyms{"em4space"} = 0xaa4; $Keysyms{"digitspace"} = 0xaa5; $Keysyms{"punctspace"} = 0xaa6; $Keysyms{"thinspace"} = 0xaa7; $Keysyms{"hairspace"} = 0xaa8; $Keysyms{"emdash"} = 0xaa9; $Keysyms{"endash"} = 0xaaa; $Keysyms{"signifblank"} = 0xaac; $Keysyms{"ellipsis"} = 0xaae; $Keysyms{"doubbaselinedot"} = 0xaaf; $Keysyms{"onethird"} = 0xab0; $Keysyms{"twothirds"} = 0xab1; $Keysyms{"onefifth"} = 0xab2; $Keysyms{"twofifths"} = 0xab3; $Keysyms{"threefifths"} = 0xab4; $Keysyms{"fourfifths"} = 0xab5; $Keysyms{"onesixth"} = 0xab6; $Keysyms{"fivesixths"} = 0xab7; $Keysyms{"careof"} = 0xab8; $Keysyms{"figdash"} = 0xabb; $Keysyms{"leftanglebracket"} = 0xabc; $Keysyms{"decimalpoint"} = 0xabd; $Keysyms{"rightanglebracket"} = 0xabe; $Keysyms{"marker"} = 0xabf; $Keysyms{"oneeighth"} = 0xac3; $Keysyms{"threeeighths"} = 0xac4; $Keysyms{"fiveeighths"} = 0xac5; $Keysyms{"seveneighths"} = 0xac6; $Keysyms{"trademark"} = 0xac9; $Keysyms{"signaturemark"} = 0xaca; $Keysyms{"trademarkincircle"} = 0xacb; $Keysyms{"leftopentriangle"} = 0xacc; $Keysyms{"rightopentriangle"} = 0xacd; $Keysyms{"emopencircle"} = 0xace; $Keysyms{"emopenrectangle"} = 0xacf; $Keysyms{"leftsinglequotemark"} = 0xad0; $Keysyms{"rightsinglequotemark"} = 0xad1; $Keysyms{"leftdoublequotemark"} = 0xad2; $Keysyms{"rightdoublequotemark"} = 0xad3; $Keysyms{"prescription"} = 0xad4; $Keysyms{"minutes"} = 0xad6; $Keysyms{"seconds"} = 0xad7; $Keysyms{"latincross"} = 0xad9; $Keysyms{"hexagram"} = 0xada; $Keysyms{"filledrectbullet"} = 0xadb; $Keysyms{"filledlefttribullet"} = 0xadc; $Keysyms{"filledrighttribullet"} = 0xadd; $Keysyms{"emfilledcircle"} = 0xade; $Keysyms{"emfilledrect"} = 0xadf; $Keysyms{"enopencircbullet"} = 0xae0; $Keysyms{"enopensquarebullet"} = 0xae1; $Keysyms{"openrectbullet"} = 0xae2; $Keysyms{"opentribulletup"} = 0xae3; $Keysyms{"opentribulletdown"} = 0xae4; $Keysyms{"openstar"} = 0xae5; $Keysyms{"enfilledcircbullet"} = 0xae6; $Keysyms{"enfilledsqbullet"} = 0xae7; $Keysyms{"filledtribulletup"} = 0xae8; $Keysyms{"filledtribulletdown"} = 0xae9; $Keysyms{"leftpointer"} = 0xaea; $Keysyms{"rightpointer"} = 0xaeb; $Keysyms{"club"} = 0xaec; $Keysyms{"diamond"} = 0xaed; $Keysyms{"heart"} = 0xaee; $Keysyms{"maltesecross"} = 0xaf0; $Keysyms{"dagger"} = 0xaf1; $Keysyms{"doubledagger"} = 0xaf2; $Keysyms{"checkmark"} = 0xaf3; $Keysyms{"ballotcross"} = 0xaf4; $Keysyms{"musicalsharp"} = 0xaf5; $Keysyms{"musicalflat"} = 0xaf6; $Keysyms{"malesymbol"} = 0xaf7; $Keysyms{"femalesymbol"} = 0xaf8; $Keysyms{"telephone"} = 0xaf9; $Keysyms{"telephonerecorder"} = 0xafa; $Keysyms{"phonographcopyright"} = 0xafb; $Keysyms{"caret"} = 0xafc; $Keysyms{"singlelowquotemark"} = 0xafd; $Keysyms{"doublelowquotemark"} = 0xafe; $Keysyms{"cursor"} = 0xaff; } #endif # XK_PUBLISHING # # * APL # * Byte 3 = b #ifdef XK_APL if ($KL{'APL'}) { $Keysyms{"leftcaret"} = 0xba3; $Keysyms{"rightcaret"} = 0xba6; $Keysyms{"downcaret"} = 0xba8; $Keysyms{"upcaret"} = 0xba9; $Keysyms{"overbar"} = 0xbc0; $Keysyms{"downtack"} = 0xbc2; $Keysyms{"upshoe"} = 0xbc3; $Keysyms{"downstile"} = 0xbc4; $Keysyms{"underbar"} = 0xbc6; $Keysyms{"jot"} = 0xbca; $Keysyms{"quad"} = 0xbcc; $Keysyms{"uptack"} = 0xbce; $Keysyms{"circle"} = 0xbcf; $Keysyms{"upstile"} = 0xbd3; $Keysyms{"downshoe"} = 0xbd6; $Keysyms{"rightshoe"} = 0xbd8; $Keysyms{"leftshoe"} = 0xbda; $Keysyms{"lefttack"} = 0xbdc; $Keysyms{"righttack"} = 0xbfc; } #endif # XK_APL # # * Hebrew # * Byte 3 = c #ifdef XK_HEBREW if ($KL{'HEBREW'}) { $Keysyms{"hebrew_doublelowline"} = 0xcdf; $Keysyms{"hebrew_aleph"} = 0xce0; $Keysyms{"hebrew_bet"} = 0xce1; $Keysyms{"hebrew_beth"} = 0xce1; # deprecated $Keysyms{"hebrew_gimel"} = 0xce2; $Keysyms{"hebrew_gimmel"} = 0xce2; # deprecated $Keysyms{"hebrew_dalet"} = 0xce3; $Keysyms{"hebrew_daleth"} = 0xce3; # deprecated $Keysyms{"hebrew_he"} = 0xce4; $Keysyms{"hebrew_waw"} = 0xce5; $Keysyms{"hebrew_zain"} = 0xce6; $Keysyms{"hebrew_zayin"} = 0xce6; # deprecated $Keysyms{"hebrew_chet"} = 0xce7; $Keysyms{"hebrew_het"} = 0xce7; # deprecated $Keysyms{"hebrew_tet"} = 0xce8; $Keysyms{"hebrew_teth"} = 0xce8; # deprecated $Keysyms{"hebrew_yod"} = 0xce9; $Keysyms{"hebrew_finalkaph"} = 0xcea; $Keysyms{"hebrew_kaph"} = 0xceb; $Keysyms{"hebrew_lamed"} = 0xcec; $Keysyms{"hebrew_finalmem"} = 0xced; $Keysyms{"hebrew_mem"} = 0xcee; $Keysyms{"hebrew_finalnun"} = 0xcef; $Keysyms{"hebrew_nun"} = 0xcf0; $Keysyms{"hebrew_samech"} = 0xcf1; $Keysyms{"hebrew_samekh"} = 0xcf1; # deprecated $Keysyms{"hebrew_ayin"} = 0xcf2; $Keysyms{"hebrew_finalpe"} = 0xcf3; $Keysyms{"hebrew_pe"} = 0xcf4; $Keysyms{"hebrew_finalzade"} = 0xcf5; $Keysyms{"hebrew_finalzadi"} = 0xcf5; # deprecated $Keysyms{"hebrew_zade"} = 0xcf6; $Keysyms{"hebrew_zadi"} = 0xcf6; # deprecated $Keysyms{"hebrew_qoph"} = 0xcf7; $Keysyms{"hebrew_kuf"} = 0xcf7; # deprecated $Keysyms{"hebrew_resh"} = 0xcf8; $Keysyms{"hebrew_shin"} = 0xcf9; $Keysyms{"hebrew_taw"} = 0xcfa; $Keysyms{"hebrew_taf"} = 0xcfa; # deprecated $Keysyms{"Hebrew_switch"} = 0xFF7E; # Alias for mode_switch } #endif # XK_HEBREW # # * Thai # * Byte 3 = d #ifdef XK_THAI if ($KL{'THAI'}) { $Keysyms{"Thai_kokai"} = 0xda1; $Keysyms{"Thai_khokhai"} = 0xda2; $Keysyms{"Thai_khokhuat"} = 0xda3; $Keysyms{"Thai_khokhwai"} = 0xda4; $Keysyms{"Thai_khokhon"} = 0xda5; $Keysyms{"Thai_khorakhang"} = 0xda6; $Keysyms{"Thai_ngongu"} = 0xda7; $Keysyms{"Thai_chochan"} = 0xda8; $Keysyms{"Thai_choching"} = 0xda9; $Keysyms{"Thai_chochang"} = 0xdaa; $Keysyms{"Thai_soso"} = 0xdab; $Keysyms{"Thai_chochoe"} = 0xdac; $Keysyms{"Thai_yoying"} = 0xdad; $Keysyms{"Thai_dochada"} = 0xdae; $Keysyms{"Thai_topatak"} = 0xdaf; $Keysyms{"Thai_thothan"} = 0xdb0; $Keysyms{"Thai_thonangmontho"} = 0xdb1; $Keysyms{"Thai_thophuthao"} = 0xdb2; $Keysyms{"Thai_nonen"} = 0xdb3; $Keysyms{"Thai_dodek"} = 0xdb4; $Keysyms{"Thai_totao"} = 0xdb5; $Keysyms{"Thai_thothung"} = 0xdb6; $Keysyms{"Thai_thothahan"} = 0xdb7; $Keysyms{"Thai_thothong"} = 0xdb8; $Keysyms{"Thai_nonu"} = 0xdb9; $Keysyms{"Thai_bobaimai"} = 0xdba; $Keysyms{"Thai_popla"} = 0xdbb; $Keysyms{"Thai_phophung"} = 0xdbc; $Keysyms{"Thai_fofa"} = 0xdbd; $Keysyms{"Thai_phophan"} = 0xdbe; $Keysyms{"Thai_fofan"} = 0xdbf; $Keysyms{"Thai_phosamphao"} = 0xdc0; $Keysyms{"Thai_moma"} = 0xdc1; $Keysyms{"Thai_yoyak"} = 0xdc2; $Keysyms{"Thai_rorua"} = 0xdc3; $Keysyms{"Thai_ru"} = 0xdc4; $Keysyms{"Thai_loling"} = 0xdc5; $Keysyms{"Thai_lu"} = 0xdc6; $Keysyms{"Thai_wowaen"} = 0xdc7; $Keysyms{"Thai_sosala"} = 0xdc8; $Keysyms{"Thai_sorusi"} = 0xdc9; $Keysyms{"Thai_sosua"} = 0xdca; $Keysyms{"Thai_hohip"} = 0xdcb; $Keysyms{"Thai_lochula"} = 0xdcc; $Keysyms{"Thai_oang"} = 0xdcd; $Keysyms{"Thai_honokhuk"} = 0xdce; $Keysyms{"Thai_paiyannoi"} = 0xdcf; $Keysyms{"Thai_saraa"} = 0xdd0; $Keysyms{"Thai_maihanakat"} = 0xdd1; $Keysyms{"Thai_saraaa"} = 0xdd2; $Keysyms{"Thai_saraam"} = 0xdd3; $Keysyms{"Thai_sarai"} = 0xdd4; $Keysyms{"Thai_saraii"} = 0xdd5; $Keysyms{"Thai_saraue"} = 0xdd6; $Keysyms{"Thai_sarauee"} = 0xdd7; $Keysyms{"Thai_sarau"} = 0xdd8; $Keysyms{"Thai_sarauu"} = 0xdd9; $Keysyms{"Thai_phinthu"} = 0xdda; $Keysyms{"Thai_maihanakat_maitho"} = 0xdde; $Keysyms{"Thai_baht"} = 0xddf; $Keysyms{"Thai_sarae"} = 0xde0; $Keysyms{"Thai_saraae"} = 0xde1; $Keysyms{"Thai_sarao"} = 0xde2; $Keysyms{"Thai_saraaimaimuan"} = 0xde3; $Keysyms{"Thai_saraaimaimalai"} = 0xde4; $Keysyms{"Thai_lakkhangyao"} = 0xde5; $Keysyms{"Thai_maiyamok"} = 0xde6; $Keysyms{"Thai_maitaikhu"} = 0xde7; $Keysyms{"Thai_maiek"} = 0xde8; $Keysyms{"Thai_maitho"} = 0xde9; $Keysyms{"Thai_maitri"} = 0xdea; $Keysyms{"Thai_maichattawa"} = 0xdeb; $Keysyms{"Thai_thanthakhat"} = 0xdec; $Keysyms{"Thai_nikhahit"} = 0xded; $Keysyms{"Thai_leksun"} = 0xdf0; $Keysyms{"Thai_leknung"} = 0xdf1; $Keysyms{"Thai_leksong"} = 0xdf2; $Keysyms{"Thai_leksam"} = 0xdf3; $Keysyms{"Thai_leksi"} = 0xdf4; $Keysyms{"Thai_lekha"} = 0xdf5; $Keysyms{"Thai_lekhok"} = 0xdf6; $Keysyms{"Thai_lekchet"} = 0xdf7; $Keysyms{"Thai_lekpaet"} = 0xdf8; $Keysyms{"Thai_lekkao"} = 0xdf9; } #endif # XK_THAI # # * Korean # * Byte 3 = e #ifdef XK_KOREAN if ($KL{'KOREAN'}) { $Keysyms{"Hangul"} = 0xff31; # Hangul start/stop(toggle) $Keysyms{"Hangul_Start"} = 0xff32; # Hangul start $Keysyms{"Hangul_End"} = 0xff33; # Hangul end, English start $Keysyms{"Hangul_Hanja"} = 0xff34; # Start Hangul->Hanja Conversion $Keysyms{"Hangul_Jamo"} = 0xff35; # Hangul Jamo mode $Keysyms{"Hangul_Romaja"} = 0xff36; # Hangul Romaja mode $Keysyms{"Hangul_Codeinput"} = 0xff37; # Hangul code input mode $Keysyms{"Hangul_Jeonja"} = 0xff38; # Jeonja mode $Keysyms{"Hangul_Banja"} = 0xff39; # Banja mode $Keysyms{"Hangul_PreHanja"} = 0xff3a; # Pre Hanja conversion $Keysyms{"Hangul_PostHanja"} = 0xff3b; # Post Hanja conversion $Keysyms{"Hangul_SingleCandidate"} = 0xff3c; # Single candidate $Keysyms{"Hangul_MultipleCandidate"} = 0xff3d; # Multiple candidate $Keysyms{"Hangul_PreviousCandidate"} = 0xff3e; # Previous candidate $Keysyms{"Hangul_Special"} = 0xff3f; # Special symbols $Keysyms{"Hangul_switch"} = 0xFF7E; # Alias for mode_switch # Hangul Consonant Characters $Keysyms{"Hangul_Kiyeog"} = 0xea1; $Keysyms{"Hangul_SsangKiyeog"} = 0xea2; $Keysyms{"Hangul_KiyeogSios"} = 0xea3; $Keysyms{"Hangul_Nieun"} = 0xea4; $Keysyms{"Hangul_NieunJieuj"} = 0xea5; $Keysyms{"Hangul_NieunHieuh"} = 0xea6; $Keysyms{"Hangul_Dikeud"} = 0xea7; $Keysyms{"Hangul_SsangDikeud"} = 0xea8; $Keysyms{"Hangul_Rieul"} = 0xea9; $Keysyms{"Hangul_RieulKiyeog"} = 0xeaa; $Keysyms{"Hangul_RieulMieum"} = 0xeab; $Keysyms{"Hangul_RieulPieub"} = 0xeac; $Keysyms{"Hangul_RieulSios"} = 0xead; $Keysyms{"Hangul_RieulTieut"} = 0xeae; $Keysyms{"Hangul_RieulPhieuf"} = 0xeaf; $Keysyms{"Hangul_RieulHieuh"} = 0xeb0; $Keysyms{"Hangul_Mieum"} = 0xeb1; $Keysyms{"Hangul_Pieub"} = 0xeb2; $Keysyms{"Hangul_SsangPieub"} = 0xeb3; $Keysyms{"Hangul_PieubSios"} = 0xeb4; $Keysyms{"Hangul_Sios"} = 0xeb5; $Keysyms{"Hangul_SsangSios"} = 0xeb6; $Keysyms{"Hangul_Ieung"} = 0xeb7; $Keysyms{"Hangul_Jieuj"} = 0xeb8; $Keysyms{"Hangul_SsangJieuj"} = 0xeb9; $Keysyms{"Hangul_Cieuc"} = 0xeba; $Keysyms{"Hangul_Khieuq"} = 0xebb; $Keysyms{"Hangul_Tieut"} = 0xebc; $Keysyms{"Hangul_Phieuf"} = 0xebd; $Keysyms{"Hangul_Hieuh"} = 0xebe; # Hangul Vowel Characters $Keysyms{"Hangul_A"} = 0xebf; $Keysyms{"Hangul_AE"} = 0xec0; $Keysyms{"Hangul_YA"} = 0xec1; $Keysyms{"Hangul_YAE"} = 0xec2; $Keysyms{"Hangul_EO"} = 0xec3; $Keysyms{"Hangul_E"} = 0xec4; $Keysyms{"Hangul_YEO"} = 0xec5; $Keysyms{"Hangul_YE"} = 0xec6; $Keysyms{"Hangul_O"} = 0xec7; $Keysyms{"Hangul_WA"} = 0xec8; $Keysyms{"Hangul_WAE"} = 0xec9; $Keysyms{"Hangul_OE"} = 0xeca; $Keysyms{"Hangul_YO"} = 0xecb; $Keysyms{"Hangul_U"} = 0xecc; $Keysyms{"Hangul_WEO"} = 0xecd; $Keysyms{"Hangul_WE"} = 0xece; $Keysyms{"Hangul_WI"} = 0xecf; $Keysyms{"Hangul_YU"} = 0xed0; $Keysyms{"Hangul_EU"} = 0xed1; $Keysyms{"Hangul_YI"} = 0xed2; $Keysyms{"Hangul_I"} = 0xed3; # Hangul syllable-final (JongSeong) Characters $Keysyms{"Hangul_J_Kiyeog"} = 0xed4; $Keysyms{"Hangul_J_SsangKiyeog"} = 0xed5; $Keysyms{"Hangul_J_KiyeogSios"} = 0xed6; $Keysyms{"Hangul_J_Nieun"} = 0xed7; $Keysyms{"Hangul_J_NieunJieuj"} = 0xed8; $Keysyms{"Hangul_J_NieunHieuh"} = 0xed9; $Keysyms{"Hangul_J_Dikeud"} = 0xeda; $Keysyms{"Hangul_J_Rieul"} = 0xedb; $Keysyms{"Hangul_J_RieulKiyeog"} = 0xedc; $Keysyms{"Hangul_J_RieulMieum"} = 0xedd; $Keysyms{"Hangul_J_RieulPieub"} = 0xede; $Keysyms{"Hangul_J_RieulSios"} = 0xedf; $Keysyms{"Hangul_J_RieulTieut"} = 0xee0; $Keysyms{"Hangul_J_RieulPhieuf"} = 0xee1; $Keysyms{"Hangul_J_RieulHieuh"} = 0xee2; $Keysyms{"Hangul_J_Mieum"} = 0xee3; $Keysyms{"Hangul_J_Pieub"} = 0xee4; $Keysyms{"Hangul_J_PieubSios"} = 0xee5; $Keysyms{"Hangul_J_Sios"} = 0xee6; $Keysyms{"Hangul_J_SsangSios"} = 0xee7; $Keysyms{"Hangul_J_Ieung"} = 0xee8; $Keysyms{"Hangul_J_Jieuj"} = 0xee9; $Keysyms{"Hangul_J_Cieuc"} = 0xeea; $Keysyms{"Hangul_J_Khieuq"} = 0xeeb; $Keysyms{"Hangul_J_Tieut"} = 0xeec; $Keysyms{"Hangul_J_Phieuf"} = 0xeed; $Keysyms{"Hangul_J_Hieuh"} = 0xeee; # Ancient Hangul Consonant Characters $Keysyms{"Hangul_RieulYeorinHieuh"} = 0xeef; $Keysyms{"Hangul_SunkyeongeumMieum"} = 0xef0; $Keysyms{"Hangul_SunkyeongeumPieub"} = 0xef1; $Keysyms{"Hangul_PanSios"} = 0xef2; $Keysyms{"Hangul_KkogjiDalrinIeung"} = 0xef3; $Keysyms{"Hangul_SunkyeongeumPhieuf"} = 0xef4; $Keysyms{"Hangul_YeorinHieuh"} = 0xef5; # Ancient Hangul Vowel Characters $Keysyms{"Hangul_AraeA"} = 0xef6; $Keysyms{"Hangul_AraeAE"} = 0xef7; # Ancient Hangul syllable-final (JongSeong) Characters $Keysyms{"Hangul_J_PanSios"} = 0xef8; $Keysyms{"Hangul_J_KkogjiDalrinIeung"} = 0xef9; $Keysyms{"Hangul_J_YeorinHieuh"} = 0xefa; # Korean currency symbol $Keysyms{"Korean_Won"} = 0xeff; } #endif # XK_KOREAN } 1; __END__ =head1 NAME X11::Keysyms - Perl module for names of X11 keysyms =head1 SYNOPSIS use X11::Keysyms '%Keysyms', qw(MISCELLANY XKB_KEYS LATIN1); %Keysyms_name = reverse %Keysyms; $ks = $Keysyms{'BackSpace'}; $name = $Keysysms_name{$ks}; =head1 DESCRIPTION This module exports a hash mapping the names of X11 keysyms, such as 'A' or 'Linefeed' or 'Hangul_J_YeorinHieuh', onto the numbers that represent them. The first argument to 'use' is the name of the variable the hash should be exported into, and the rest are names of subsets of the keysysms to export: one or more of 'MISCELLANY', 'XKB_KEYS', '3270', 'LATIN1', 'LATIN2', 'LATIN3', 'LATIN4', 'KATAKANA', 'ARABIC', 'CYRILLIC', 'GREEK', 'TECHNICAL', 'SPECIAL', 'PUBLISHING', 'APL', 'HEBREW', 'THAI', 'KOREAN'. If this list is omitted, the list 'MISCELLANY', 'XKB_KEYS', 'LATIN1', 'LATIN2', 'LATIN3', 'LATIN4', 'GREEK' is used. =head1 AUTHOR This module was generated semi-automatically by Stephen McCamant () from the header file 'X11/keysymdef.h', distributed by the X Consortium. =head1 SEE ALSO L, L, I. =cut