Genera and X11 Key Mappings

References:

The xmodmap output has four columns:
* Keysym * Shifted Keysym * Mode-shifted Keysym (e.g., alt/option on the Mac) * Shifted Mode-shifted Keysym

Xquartz 2.7.10_beta2 xmodmap -pk (minus empty rows):

There are 4 KeySyms per KeyCode; KeyCodes range from 8 to 255.

    KeyCode    Keysym (Keysym) ...
    Value      Value   (Name)  ...

      8        0x0061 (a)  0x0041 (A)  0xfe54 (dead_macron)    0x1000304 (U0304)   
      9        0x0073 (s)  0x0053 (S)  0x00df (ssharp) 0x00a0 (nobreakspace)   
     10        0x0064 (d)  0x0044 (D)  0x00f0 (eth)    0x00d0 (ETH)    
     11        0x0066 (f)  0x0046 (F)  0x08f6 (function)   0x00a0 (nobreakspace)   
     12        0x0068 (h)  0x0048 (H)  0x10002cd (U02CD)   0x1000331 (U0331)   
     13        0x0067 (g)  0x0047 (G)  0x00a9 (copyright)  0x0afc (caret)  
     14        0x007a (z)  0x005a (Z)  0x10002c0 (U02C0)   0x1000309 (U0309)   
     15        0x0078 (x)  0x0058 (X)  0x002e (period) 0x1000323 (U0323)   
     16        0x0063 (c)  0x0043 (C)  0xfe5b (dead_cedilla)   0x1000327 (U0327)   
     17        0x0076 (v)  0x0056 (V)  0xfe5a (dead_caron) 0x100030c (U030C)   
     18        0x00a7 (section)    0x00b1 (plusminus)  0x00a7 (section)    0x00b1 (plusminus)  
     19        0x0062 (b)  0x0042 (B)  0xfe55 (dead_breve) 0x1000306 (U0306)   
     20        0x0071 (q)  0x0051 (Q)  0x13bd (oe) 0x13bc (OE) 
     21        0x0077 (w)  0x0057 (W)  0xfe56 (dead_abovedot)  0x1000307 (U0307)   
     22        0x0065 (e)  0x0045 (E)  0xfe51 (dead_acute) 0x1000301 (U0301)   
     23        0x0072 (r)  0x0052 (R)  0x00ae (registered) 0x1002030 (U2030)   
     24        0x0079 (y)  0x0059 (Y)  0x00a5 (yen)    0x00a0 (nobreakspace)   
     25        0x0074 (t)  0x0054 (T)  0x00fe (thorn)  0x00de (THORN)  
     26        0x0031 (1)  0x0021 (exclam) 0x00a1 (exclamdown) 0x1002044 (U2044)   
     27        0x0032 (2)  0x0040 (at) 0x0ac9 (trademark)  0x20ac (EuroSign)   
     28        0x0033 (3)  0x0023 (numbersign) 0x00a3 (sterling)   0x1002039 (U2039)   
     29        0x0034 (4)  0x0024 (dollar) 0x00a2 (cent)   0x100203a (U203A)   
     30        0x0036 (6)  0x005e (asciicircum)    0xfe52 (dead_circumflex)    0x1000302 (U0302)   
     31        0x0035 (5)  0x0025 (percent)    0x00a7 (section)    0x0af1 (dagger) 
     32        0x003d (equal)  0x002b (plus)   0x08bd (notequal)   0x00b1 (plusminus)  
     33        0x0039 (9)  0x0028 (parenleft)  0x00aa (ordfeminine)    0x00b7 (periodcentered) 
     34        0x0037 (7)  0x0026 (ampersand)  0x00b6 (paragraph)  0x0af2 (doubledagger)   
     35        0x002d (minus)  0x005f (underscore) 0x0aaa (endash) 0x0aa9 (emdash) 
     36        0x0038 (8)  0x002a (asterisk)   0x0ae6 (enfilledcircbullet) 0x00b0 (degree) 
     37        0x0030 (0)  0x0029 (parenright) 0x00ba (masculine)  0x0afd (singlelowquotemark) 
     38        0x005d (bracketright)   0x007d (braceright) 0x0ad0 (leftsinglequotemark)    0x0ad1 (rightsinglequotemark)   
     39        0x006f (o)  0x004f (O)  0x00f8 (oslash) 0x00d8 (Oslash) 
     40        0x0075 (u)  0x0055 (U)  0xfe57 (dead_diaeresis) 0x1000308 (U0308)   
     41        0x005b (bracketleft)    0x007b (braceleft)  0x0ad2 (leftdoublequotemark)    0x0ad3 (rightdoublequotemark)   
     42        0x0069 (i)  0x0049 (I)  0x10002bc (U02BC)   0x100031b (U031B)   
     43        0x0070 (p)  0x0050 (P)  0x002c (comma)  0x1000326 (U0326)   
     44        0xff0d (Return) 0x0000 (NoSymbol)   0xff0d (Return) 
     45        0x006c (l)  0x004c (L)  0x002d (minus)  0x1000335 (U0335)   
     46        0x006a (j)  0x004a (J)  0xfe59 (dead_doubleacute)   0x100030b (U030B)   
     47        0x0027 (apostrophe) 0x0022 (quotedbl)   0x00e6 (ae) 0x00c6 (AE) 
     48        0x006b (k)  0x004b (K)  0xfe58 (dead_abovering) 0x100030a (U030A)   
     49        0x003b (semicolon)  0x003a (colon)  0x0aae (ellipsis)   0x06b0 (numerosign) 
     50        0x005c (backslash)  0x007c (bar)    0x00ab (guillemotleft)  0x00bb (guillemotright) 
     51        0x002c (comma)  0x003c (less)   0x08bc (lessthanequal)  0x0afe (doublelowquotemark) 
     52        0x002f (slash)  0x003f (question)   0x00f7 (division)   0x00bf (questiondown)   
     53        0x006e (n)  0x004e (N)  0xfe53 (dead_tilde) 0x1000303 (U0303)   
     54        0x006d (m)  0x004d (M)  0xfe5c (dead_ogonek)    0x1000328 (U0328)   
     55        0x002e (period) 0x003e (greater)    0x08be (greaterthanequal)   0x1000294 (U0294)   
     56        0xff09 (Tab)    0x0000 (NoSymbol)   0xff09 (Tab)    
     57        0x0020 (space)  0x0000 (NoSymbol)   0x00a0 (nobreakspace)   
     58        0x0060 (grave)  0x007e (asciitilde) 0xfe50 (dead_grave) 0x1000300 (U0300)   
     59        0xff08 (BackSpace)  0x0000 (NoSymbol)   0xff08 (BackSpace)  
     60        0x1000003 (no name) 0x0000 (NoSymbol)   0x1000003 (no name) 
     61        0xff1b (Escape) 0x0000 (NoSymbol)   0xff1b (Escape) 
     63        0xffe7 (Meta_L) 0x0000 (NoSymbol)   0xffe7 (Meta_L) 
     64        0xffe1 (Shift_L)    0x0000 (NoSymbol)   0xffe1 (Shift_L)    
     65        0xffe5 (Caps_Lock)  0x0000 (NoSymbol)   0xffe5 (Caps_Lock)  
     66        0xffe9 (Alt_L)  0x0000 (NoSymbol)   0xffe9 (Alt_L)  
     67        0xffe3 (Control_L)  0x0000 (NoSymbol)   0xffe3 (Control_L)  
     68        0xffe2 (Shift_R)    0x0000 (NoSymbol)   0xffe2 (Shift_R)    
     69        0xffea (Alt_R)  0x0000 (NoSymbol)   0xffea (Alt_R)  
     70        0xffe4 (Control_R)  0x0000 (NoSymbol)   0xffe4 (Control_R)  
     71        0xffe8 (Meta_R) 0x0000 (NoSymbol)   0xffe8 (Meta_R) 
     73        0xffae (KP_Decimal) 0x0000 (NoSymbol)   0xffae (KP_Decimal) 
     75        0xffaa (KP_Multiply)    0x0000 (NoSymbol)   0xffaa (KP_Multiply)    
     77        0xffab (KP_Add) 0x0000 (NoSymbol)   0xffab (KP_Add) 
     79        0xff1b (Escape) 0x0000 (NoSymbol)   0xff1b (Escape) 
     83        0xffaf (KP_Divide)  0x0000 (NoSymbol)   0xffaf (KP_Divide)  
     84        0xff8d (KP_Enter)   0x0000 (NoSymbol)   0xff8d (KP_Enter)   
     86        0xffad (KP_Subtract)    0x0000 (NoSymbol)   0xffad (KP_Subtract)    
     89        0xffbd (KP_Equal)   0x0000 (NoSymbol)   0xffbd (KP_Equal)   
     90        0xffb0 (KP_0)   0x0000 (NoSymbol)   0xffb0 (KP_0)   
     91        0xffb1 (KP_1)   0x0000 (NoSymbol)   0xffb1 (KP_1)   
     92        0xffb2 (KP_2)   0x0000 (NoSymbol)   0xffb2 (KP_2)   
     93        0xffb3 (KP_3)   0x0000 (NoSymbol)   0xffb3 (KP_3)   
     94        0xffb4 (KP_4)   0x0000 (NoSymbol)   0xffb4 (KP_4)   
     95        0xffb5 (KP_5)   0x0000 (NoSymbol)   0xffb5 (KP_5)   
     96        0xffb6 (KP_6)   0x0000 (NoSymbol)   0xffb6 (KP_6)   
     97        0xffb7 (KP_7)   0x0000 (NoSymbol)   0xffb7 (KP_7)   
     99        0xffb8 (KP_8)   0x0000 (NoSymbol)   0xffb8 (KP_8)   
    100        0xffb9 (KP_9)   0x0000 (NoSymbol)   0xffb9 (KP_9)   
    104        0xffc2 (F5) 0x0000 (NoSymbol)   0xffc2 (F5) 
    105        0xffc3 (F6) 0x0000 (NoSymbol)   0xffc3 (F6) 
    106        0xffc4 (F7) 0x0000 (NoSymbol)   0xffc4 (F7) 
    107        0xffc0 (F3) 0x0000 (NoSymbol)   0xffc0 (F3) 
    108        0xffc5 (F8) 0x0000 (NoSymbol)   0xffc5 (F8) 
    109        0xffc6 (F9) 0x0000 (NoSymbol)   0xffc6 (F9) 
    111        0xffc8 (F11)    0x0000 (NoSymbol)   0xffc8 (F11)    
    113        0xffca (F13)    0x0000 (NoSymbol)   0xffca (F13)    
    115        0xffcb (F14)    0x0000 (NoSymbol)   0xffcb (F14)    
    117        0xffc7 (F10)    0x0000 (NoSymbol)   0xffc7 (F10)    
    119        0xffc9 (F12)    0x0000 (NoSymbol)   0xffc9 (F12)    
    121        0xffcc (F15)    0x0000 (NoSymbol)   0xffcc (F15)    
    122        0xff6a (Help)   0x0000 (NoSymbol)   0xff6a (Help)   
    123        0xff50 (Home)   0x0000 (NoSymbol)   0xff50 (Home)   
    124        0xff55 (Prior)  0x0000 (NoSymbol)   0xff55 (Prior)  
    125        0xffff (Delete) 0x0000 (NoSymbol)   0xffff (Delete) 
    126        0xffc1 (F4) 0x0000 (NoSymbol)   0xffc1 (F4) 
    127        0xff57 (End)    0x0000 (NoSymbol)   0xff57 (End)    
    128        0xffbf (F2) 0x0000 (NoSymbol)   0xffbf (F2) 
    129        0xff56 (Next)   0x0000 (NoSymbol)   0xff56 (Next)   
    130        0xffbe (F1) 0x0000 (NoSymbol)   0xffbe (F1) 
    131        0xff51 (Left)   0x0000 (NoSymbol)   0xff51 (Left)   
    132        0xff53 (Right)  0x0000 (NoSymbol)   0xff53 (Right)  
    133        0xff54 (Down)   0x0000 (NoSymbol)   0xff54 (Down)   
    134        0xff52 (Up) 0x0000 (NoSymbol)   0xff52 (Up) 

Note: In the below listing, some characters won't show up because I haven't written a Genera character set to Unicode conversion (or a descriptor for iconv).

Genera Show X Keyboard Mapping :All Yes:

The keyboard layout type is NIL.  
Since no specific key binding has deen defined for this layout type,  
  the default binding is being used.

Key                    Shift                  Symbol                 Symbol-Shift           Console Key  
#\a                    #\A                                           #\                    001 Latin Small Letter A (000,097); Latin Capital Letter A (000,065);  (254,084);  (003,004)
#\s                    #\S                                                                  002 Latin Small Letter S (000,115); Latin Capital Letter S (000,083); German Small Letter Sharp S (000,223); No Break Space (000,160)
#\d                    #\D                                           #\?                    003 Latin Small Letter D (000,100); Latin Capital Letter D (000,068); Icelandic Small Letter Eth (000,240); Icelandic Capital Letter Eth (000,208)
#\f                    #\F                                                                  004 Latin Small Letter F (000,102); Latin Capital Letter F (000,070); Function (008,246); No Break Space (000,160)
#\h                    #\H                    #\                                           005 Latin Small Letter H (000,104); Latin Capital Letter H (000,072);  (002,205);  (003,049)
#\g                    #\G                    #\
                                                                    #\?                    006 Latin Small Letter G (000,103); Latin Capital Letter G (000,071); Copyright Sign (000,169); Caret (010,252)
#\z                    #\Z                                                                  007 Latin Small Letter Z (000,122); Latin Capital Letter Z (000,090);  (002,192);  (003,009)
#\x                    #\X                                                                  008 Latin Small Letter X (000,120); Latin Capital Letter X (000,088); Full Stop (000,046);  (003,035)
#\c                    #\C                                                                  009 Latin Small Letter C (000,099); Latin Capital Letter C (000,067);  (254,091);  (003,039)
#\v                    #\V                                                                  010 Latin Small Letter V (000,118); Latin Capital Letter V (000,086);  (254,090);  (003,012)
                       #\?                                                                  011 Paragraph Sign, Section Sign (000,167); Plus Minus Sign (000,177)
#\b                    #\B                                           #\                    012 Latin Small Letter B (000,098); Latin Capital Letter B (000,066);  (254,085);  (003,006)
#\q                    #\Q                    #\                                           013 Latin Small Letter Q (000,113); Latin Capital Letter Q (000,081);  (019,189);  (019,188)
#\w                    #\W                    #\                                           014 Latin Small Letter W (000,119); Latin Capital Letter W (000,087);  (254,086);  (003,007)
#\e                    #\E                    #\                    #\                    015 Latin Small Letter E (000,101); Latin Capital Letter E (000,069);  (254,081);  (003,001)
#\r                    #\R                    #\                                           016 Latin Small Letter R (000,114); Latin Capital Letter R (000,082); Registered Trade Mark Sign (000,174);  (032,048)
#\y                    #\Y                    #\                                           017 Latin Small Letter Y (000,121); Latin Capital Letter Y (000,089); Yen Sign (000,165); No Break Space (000,160)
#\t                    #\T                    #\                                           018 Latin Small Letter T (000,116); Latin Capital Letter T (000,084); Icelandic Small Letter Thorn (000,254); Icelandic Capital Letter Thorn (000,222)
#\1                    #\!                                                                  019 Digit One (000,049); Exclamation Point (000,033); Inverted Exclamation Mark (000,161);  (032,068)
#\2                    #\@                                                                  020 Digit Two (000,050); Commercial At (000,064); Trademark Sign (010,201);  (032,172)
#\3                    #\#                                                                  021 Digit Three (000,051); Number Sign (000,035); Pound Sign (000,163);  (032,057)
#\4                    #\$                                                                  022 Digit Four (000,052); Dollar Sign (000,036); Cent Sign (000,162);  (032,058)
#\6                    #\^                                                                  023 Digit Six (000,054); Circumflex Accent (000,094);  (254,082);  (003,002)
#\5                    #\%                                                                  024 Digit Five (000,053); Percent Sign (000,037); Paragraph Sign, Section Sign (000,167); Dagger (010,241)
#\=                    #\+                    #\                    #\?                    025 Equals Sign (000,061); Plus Sign (000,043); Not Equal Sign (008,189); Plus Minus Sign (000,177)
#\9                    #\(                                                                  026 Digit Nine (000,057); Left Parenthesis (000,040); Feminine Ordinal Indicator (000,170); Middle Dot (000,183)
#\7                    #\&                                                                  027 Digit Seven (000,055); Ampersand (000,038); Pilcrow Sign (000,182); Double Dagger (010,242)
#\-                    #\_                    #\                                           028 Hyphen, Minus Sign (000,045); Low Line (000,095); En Dash (010,170); Em Dash (010,169)
#\8                    #\*                                           #\                    029 Digit Eight (000,056); Asterisk (000,042); En Filled Circle Bullet (010,230); Degree Sign, Ring Above (000,176)
#\0                    #\)                                                                  030 Digit Zero (000,048); Right Parenthesis (000,041); Masculine Ordinal Indicator (000,186); Single Low Quotation Mark (010,253)
#\]                    #\}                                                                  031 Right Square Bracket (000,093); Right Curly Bracket (000,125); Left Single Quotation Mark (010,208); Right Single Quotation Mark (010,209)
#\o                    #\O                    #\                                           032 Latin Small Letter O (000,111); Latin Capital Letter O (000,079); Latin Small Letter O With Oblique Stroke (000,248); Latin Capital Letter O With Oblique Stroke (000,216)
#\u                    #\U                    #\                                           033 Latin Small Letter U (000,117); Latin Capital Letter U (000,085);  (254,087);  (003,008)
#\[                    #\{                                                                  034 Left Square Bracket (000,091); Left Curly Bracket (000,123); Left Double Quotation Mark (010,210); Right Double Quotation Mark (010,211)
#\i                    #\I                    #\                                           035 Latin Small Letter I (000,105); Latin Capital Letter I (000,073);  (002,188);  (003,027)
#\p                    #\P                    #\                    #\                    036 Latin Small Letter P (000,112); Latin Capital Letter P (000,080); Comma (000,044);  (003,038)
#\Return               #\Return               #\Return               #\Return               037 Return, Enter (255,013)
#\l                    #\L                    #\                    #\?                    038 Latin Small Letter L (000,108); Latin Capital Letter L (000,076); Hyphen, Minus Sign (000,045);  (003,053)
#\j                    #\J                    #\                                           039 Latin Small Letter J (000,106); Latin Capital Letter J (000,074);  (254,089);  (003,011)
#\'                    #\"                    #\                                           040 Apostrophe (000,039); Quotation Mark (000,034); Latin Small Diphthong Ae (000,230); Latin Capital Diphthong Ae (000,198)
#\k                    #\K                    #\                                           041 Latin Small Letter K (000,107); Latin Capital Letter K (000,075);  (254,088);  (003,010)
#\;                    #\:                                           #\?                    042 Semicolon (000,059); Colon (000,058); Ellipsis (010,174); Numero Sign (006,176)
#\\                    #\|                                                                  043 Reverse Solidus (000,092); Vertical Line (000,124); Left Angle Quotation Mark (000,171); Right Angle Quotation Mark (000,187)
#\,                    #\<                    #\                                           044 Comma (000,044); Less Than Sign (000,060); Less Than Or Equal Sign (008,188); Double Low Quotation Mark (010,254)
#\/                    #\?                    #\?                                           045 Solidus (000,047); Question Mark (000,063); Division Sign (000,247); Inverted Question Mark (000,191)
#\n                    #\N                                                                  046 Latin Small Letter N (000,110); Latin Capital Letter N (000,078);  (254,083);  (003,003)
#\m                    #\M                                                                  047 Latin Small Letter M (000,109); Latin Capital Letter M (000,077);  (254,092);  (003,040)
#\.                    #\>                    #\                                           048 Full Stop (000,046); Greater Than Sign (000,062); Greater Than Or Equal Sign (008,190);  (002,148)
#\Tab                  #\Tab                  #\Tab                  #\Tab                  049 Tab (255,009)
#\Space                #\Space                                                              050 Space (000,032); No Break Space (000,160)
#\`                    #~                    #\                                           051 Grave Accent (000,096); Tilde (000,126);  (254,080);  (003,000)
#\Back-Space           #\Back-Space           #\Back-Space           #\Back-Space           052 Backspace, Back Space, Back Char (255,008)
#\Escape               #\Escape               #\                   #\                   054 Escape (255,027)
:LEFT-META             :LEFT-META             :LEFT-META             :LEFT-META             056 Left Meta (255,231)
:LEFT-SHIFT            :LEFT-SHIFT            :LEFT-SHIFT            :LEFT-SHIFT            057 Left Shift (255,225)
:CAPS-LOCK             :CAPS-LOCK             :CAPS-LOCK             :CAPS-LOCK             058 Caps Lock (255,229)
:LEFT-SYMBOL           :LEFT-SYMBOL           :LEFT-SYMBOL           :LEFT-SYMBOL           059 Left Alt (255,233)
:LEFT-CONTROL          :LEFT-CONTROL          :LEFT-CONTROL          :LEFT-CONTROL          060 Left Control (255,227)
:RIGHT-SHIFT           :RIGHT-SHIFT           :RIGHT-SHIFT           :RIGHT-SHIFT           061 Right Shift (255,226)
:RIGHT-SYMBOL          :RIGHT-SYMBOL          :RIGHT-SYMBOL          :RIGHT-SYMBOL          062 Right Alt (255,234)
:RIGHT-CONTROL         :RIGHT-CONTROL         :RIGHT-CONTROL         :RIGHT-CONTROL         063 Right Control (255,228)
:RIGHT-META            :RIGHT-META            :RIGHT-META            :RIGHT-META            064 Right Meta (255,232)
#\Rubout               #\Rubout               #\Rubout               #\Rubout               066 Keypad Decimal Point (255,174)
#\Keyboard:Cut         #\Keyboard:Cut         #\Keyboard:Cut         #\Keyboard:Cut         068 Keypad Multiplication Sign (255,170)
#\Escape               #\Escape               #\                   #\                   072 Escape (255,027)
#\Keyboard:Paste       #\Keyboard:Paste       #\Keyboard:Paste       #\Keyboard:Paste       076 Keypad Division Sign (255,175)
#\Keyboard:Copy        #\Keyboard:Copy        #\Keyboard:Copy        #\Keyboard:Copy        079 Keypad Minus Sign (255,173)
#\End                  #\End                  #\End                  #\End                  084 Keypad Digit One (255,177)
#\Keyboard:Down        #\Keyboard:Down        #\Keyboard:Down        #\Keyboard:Down        085 Keypad Digit Two (255,178)
#\Scroll               #\Scroll               #\Scroll               #\Scroll               086 Keypad Digit Three (255,179)
#\Keyboard:Left        #\Keyboard:Left        #\Keyboard:Left        #\Keyboard:Left        087 Keypad Digit Four (255,180)
:RIGHT-SYMBOL          :RIGHT-SYMBOL          :RIGHT-SYMBOL          :RIGHT-SYMBOL          088 Keypad Digit Five (255,181)
#\Keyboard:Right       #\Keyboard:Right       #\Keyboard:Right       #\Keyboard:Right       089 Keypad Digit Six (255,182)
#\Keyboard:Home        #\Keyboard:Home        #\Keyboard:Home        #\Keyboard:Home        090 Keypad Digit Seven (255,183)
#\Keyboard:Up          #\Keyboard:Up          #\Keyboard:Up          #\Keyboard:Up          092 Keypad Digit Eight (255,184)
#\Keyboard:Back-Scroll #\Keyboard:Back-Scroll #\Keyboard:Back-Scroll #\Keyboard:Back-Scroll 093 Keypad Digit Nine (255,185)
#\Resume               #\Resume               #\Resume               #\Resume               097 F5 (255,194)
#\Abort                #\Abort                #\Abort                #\Abort                098 F6 (255,195)
:LEFT-SUPER            :LEFT-SUPER            :LEFT-SUPER            :LEFT-SUPER            099 F7 (255,196)
#\Function             #\Triangle             #\Function             #\Triangle             100 F3 (255,192)
:LEFT-HYPER            :LEFT-HYPER            :LEFT-HYPER            :LEFT-HYPER            101 F8 (255,197)
#\Scroll               #\Page                 #\Scroll               #\Page                 102 F9 (255,198)
#\Complete             #\End                  #\Complete             #\End                  104 F11, L1 (255,200)
#\Clear-Input          #\Refresh              #\Clear-Input          #\Refresh              110 F10 (255,199)
#\Help                 #\Help                 #\Symbol-Help          #\Symbol-Help          112 F12, L2 (255,201)
#\Help                 #\Help                 #\Symbol-Help          #\Symbol-Help          115 Help (255,106)
#\Keyboard:Home        #\Keyboard:Home        #\Keyboard:Home        #\Keyboard:Home        116 Home (255,080)
#\Keyboard:Back-Scroll #\Keyboard:Back-Scroll #\Keyboard:Back-Scroll #\Keyboard:Back-Scroll 117 Prior, Previous (255,085)
#\Rubout               #\Rubout               #\Rubout               #\Rubout               118 Delete, Rubout (255,255)
#\Suspend              :MODE-LOCK             #\Suspend              :MODE-LOCK             119 F4 (255,193)
#\End                  #\End                  #\End                  #\End                  120 End, Eol (255,087)
#\Network              #\Circle               #\Network              #\Circle               121 F2 (255,191)
#\Scroll               #\Scroll               #\Scroll               #\Scroll               122 Next (255,086)
#\Select               #\Square               #\Select               #\Square               123 F1 (255,190)
#\Keyboard:Left        #\Keyboard:Left        #\Keyboard:Left        #\Keyboard:Left        124 Left, Move Left (255,081)
#\Keyboard:Right       #\Keyboard:Right       #\Keyboard:Right       #\Keyboard:Right       125 Right, Move Right (255,083)
#\Keyboard:Down        #\Keyboard:Down        #\Keyboard:Down        #\Keyboard:Down        126 Down, Move Down, Down Arrow (255,084)
#\Keyboard:Up          #\Keyboard:Up          #\Keyboard:Up          #\Keyboard:Up          127 Up, Move Up, Up Arrow (255,082)

No console keys map to the Genera keys #\Line, :RIGHT-SUPER, and :RIGHT-HYPER.

No Genera keys map to the console keys [114 F15, L5 (255,204)], [108 F14, L4 (255,203)], [106 F13, L3 (255,202)],  
   [083 Keypad Digit Zero (255,176)], [082 Keypad Equals Sign (255,189)],
   [077 Keypad Enter (255,141)], [070 Keypad Plus Sign (255,171)], and [053  (000,003)].

Analysis

Let's take, for example, how hitting F6 on the keyboard makes Genera on X11 think you're hitting the ABORT button.

If we look up F6 in the xmodmap -pk output, we see:

    105        0xffc3 (F6) 0x0000 (NoSymbol)   0xffc3 (F6) 

And in the Show X Keyboard Mapping output:

Key                    Shift                  Symbol                 Symbol-Shift           Console Key  
#\Abort                #\Abort                #\Abort                #\Abort                098 F6 (255,195)

Once we modify 0xffc3 to the two bytes 255,195, we find a correspondence.

The file sys>x11>clx>keysyms.lisp seems to contain all the keysyms. However, it doesn't exactly say what we'd expect:

(define-keysym #\abort (keysym 255 105))    ; :function

Okay, what about META?

$ xmodmap -pk |fgrep -ya meta
     63        0xffe7 (Meta_L) 0x0000 (NoSymbol)   0xffe7 (Meta_L) 
     71        0xffe8 (Meta_R) 0x0000 (NoSymbol)   0xffe8 (Meta_R) 
$ fgrep -ya meta default-x-mapping.text 
:LEFT-META             :LEFT-META             :LEFT-META             :LEFT-META             056 Left Meta (255,231)
:RIGHT-META            :RIGHT-META            :RIGHT-META            :RIGHT-META            064 Right Meta (255,232)

Then, we have these meta things defined in keysyms.lisp:

(define-keysym :left-meta left-meta-keysym)
(define-keysym :right-meta right-meta-keysym)

And these in translate.lisp:

(defconstant left-meta-keysym (keysym 255 231))
(defconstant right-meta-keysym (keysym 255 232))

That looks like a clear correspondence.

How are these mappings changed? That's yet to come.

What about X-Windows modifier keys?

$ xmodmap -pm
xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x40),  Shift_R (0x44)  
lock        Caps_Lock (0x41)  
control     Control_L (0x43),  Control_R (0x46)  
mod1        Alt_L (0x42),  Alt_R (0x45)  
mod2        Meta_L (0x3f),  Meta_R (0x47)  
mod3        Down (0x85)  
mod4        Left (0x83)  
mod5  

However, according to doc.lisp, it uses only control and three of the mods:

  ;; STATE is also used for setting char-bits:
  ;;    control -> char-control-bit
  ;;    mod-1 -> char-meta-bit
  ;;    mod-2 -> char-super-bit
  ;;    mod-3 -> char-hyper-bit

All the keysym names are defined in x11>screen>x-keysym-names.lisp in *keysym-name-list*. You can of course see this with (print x-screen::*keysym-name-list*) or even just the variable name at the Genera prompt. Some examples from the source file:

(defparameter
  *keysym-name-list*
  '((000 032 " " :space)
    (000 095 "_" :low-line)
    (000 096 "`" :GRAVE-ACCENT)
    (000 183 "middle dot" :middle-dot)
    (004 182 "ka" :kana-letter-ka)
    (255 008 "backspace" :backspace :back-space :back-char)
    (255 009 "tab" :tab)
    (255 200 "f11" :f11 :l1)
    (255 211 "f22" :f22 :r2)
    (255 232 "right meta" :right-meta)
    (255 233 "left alt" :left-alt)
    (255 255 "delete" :delete :rubout)))

Next, we have keyboard mappings in screen>keyboards.lisp, such as:

(define-keyboard-mapping :default ()
  (:f1  #\Select #\Square)
  (:f2  #\Network #\Circle)
  (:f3  #\Function #\Triangle)
  (:f4  #\Suspend (:mode-lock :locking t))
  (:f5  #\Resume)
  (:f6  #\Abort)
  (:f7  :left-super)
  (:f8  :left-hyper)
  (:f9  #\Scroll #\Page)
  (:f10 #\Clear-Input #\Refresh)
  (:f11 #\Complete #\End)
  (:f12 #\Help)

Which kinds does it know about? At least these:

$ grep '^(define-keyboard-mapping' keyboards.lisp
(define-keyboard-mapping :default ()
(define-keyboard-mapping :Symbolics ()
(define-keyboard-mapping :sun-type-3 ()
(define-keyboard-mapping :sun-type-4 (:leds ((1 :caps-lock)
(define-keyboard-mapping :sgi-iris (:leds ((1 :caps-lock)
(define-keyboard-mapping :ncd-n-101 (:leds ((1 :mode-lock)
(define-keyboard-mapping :nds (:leds ((1 :mode-lock)
(define-keyboard-mapping :DEC-LK401-AA ()

Keyboards are also defined in embedding>keyboards>keyboards.lisp:

$ fgrep -a define-keyboard-layout keyboards.lisp
(define-keyboard-layout :symbolics
(define-keyboard-layout :sun-type-3
(define-keyboard-layout :sun-type-4
(sys:define-keyboard-layout :sgi-iris
(sys:define-keyboard-layout :ncd-n-101
(sys:define-keyboard-layout :nds
(sys:define-keyboard-layout :DEC-LK401-AA

These mappings can also be seen by using the command Set X Keyboard Mapping [default] and hitting HELP. Furthermore, the keyboard layout themselves can be seen with Show Keyboard Layout and then, again, hitting HELP. For example, Show Keyboard Layout NCD N-101 shows:

Show Keyboard Layout NCD N-101

We can then do Set X Keyboard Mapping [default] Pcxal-Aa and Show X Keyboard Mapping to see the new mappings:

X Keyboard Mapping Pcxal-Aa

The default mapping, as a reminder, was:

X Keyboard Mapping NIL / default

Xquartz Key Mappings

Versions:
* Xquartz 2.7.10_beta2 * macOS 10.11.5

Notes:
* F14 and F15 are usually set to lower and raise brightness on the Mac. Disable this in System Preferences -> Keyboard -> Shortcuts -> Display

Douglas Fields

Writing LISP and Haskell since 1990