# Kernel keymap for Macintoshes. This uses 7 modifier combinations.
keymaps 0-2,4-5,8,12
# We use the Command (pretzel) key as Alt, and the Option key as AltGr.
#
keycode 0x00 = a
	altgr   keycode 0x00 = Hex_A
keycode 0x01 = s               
keycode 0x02 = d
	altgr   keycode 0x02 = Hex_D   
keycode 0x03 = f
	altgr   keycode 0x03 = Hex_F               
keycode 0x04 = h               
keycode 0x05 = g  
keycode 0x06 = z
keycode 0x07 = x               
keycode 0x08 = c
	altgr   keycode 0x08 = Hex_C   
keycode 0x09 = v
keycode 0x0a =
keycode 0x0b = b
	altgr   keycode 0x0b = Hex_B
keycode 0x0c = q               
keycode 0x0d = w               
keycode 0x0e = e
	altgr   keycode 0x0e = Hex_E   
keycode 0x0f = r               
keycode 0x10 = y               
keycode 0x11 = t               
keycode 0x12 = one              exclam          
	alt     keycode 0x12 = Meta_one        
keycode 0x13 = two              at               at              
	control	keycode 0x13 = nul             
	shift	control	keycode 0x13 = nul             
	alt	keycode 0x13 = Meta_two        
keycode 0x14 = three            numbersign      
	control keycode 0x14 = Escape          
	alt     keycode 0x14 = Meta_three      
keycode 0x15 = four             dollar           dollar          
	control keycode 0x15 = Control_backslash
	alt     keycode 0x15 = Meta_four       
keycode 0x16 = six              asciicircum     
	control keycode 0x16 = Control_asciicircum
	alt     keycode 0x16 = Meta_six        
keycode 0x17 = five             percent         
	control keycode 0x17 = Control_bracketright
	alt     keycode 0x17 = Meta_five       
keycode 0x18 = equal            plus            
	alt     keycode 0x18 = Meta_equal      
keycode 0x19 = nine             parenleft        bracketright    
	alt     keycode 0x19 = Meta_nine       
keycode 0x1a = seven            ampersand        braceleft       
	control keycode 0x1a = Control_underscore
	alt     keycode 0x1a = Meta_seven      
keycode 0x1b = minus            underscore       backslash       
	control	keycode 0x1b = Control_underscore
	shift	control	keycode 0x1b = Control_underscore
	alt	keycode 0x1b = Meta_minus      
keycode 0x1c = eight            asterisk         bracketleft     
	control keycode 0x1c = Delete          
	alt     keycode 0x1c = Meta_eight      
keycode 0x1d = zero             parenright       braceright      
	alt     keycode 0x1d = Meta_zero       
keycode 0x1e = bracketright     braceright       asciitilde      
	control keycode 0x1e = Control_bracketright
	alt     keycode 0x1e = Meta_bracketright
keycode 0x1f = o               
keycode 0x20 = u               
keycode 0x21 = bracketleft      braceleft       
	control keycode 0x21 = Escape          
	alt     keycode 0x21 = Meta_bracketleft
keycode 0x22 = i               
keycode 0x23 = p               
keycode 0x24 = Return          
	alt     keycode 0x24 = Meta_Control_m  
keycode 0x25 = l               
keycode 0x26 = j               
keycode 0x27 = apostrophe       quotedbl        
	control keycode 0x27 = Control_g       
	alt     keycode 0x27 = Meta_apostrophe 
keycode 0x28 = k               
keycode 0x29 = semicolon        colon           
	alt     keycode 0x29 = Meta_semicolon  
keycode 0x2a = backslash        bar             
	control keycode 0x2a = Control_backslash
	alt     keycode 0x2a = Meta_backslash  
keycode 0x2b = comma            less            
	alt     keycode 0x2b = Meta_comma      
keycode 0x2c = slash            question        
	control keycode 0x2c = Delete          
	alt     keycode 0x2c = Meta_slash      
keycode 0x2d = n
keycode 0x2e = m               
keycode 0x2f = period           greater         
	control keycode 0x2f = Compose         
	alt     keycode 0x2f = Meta_period     
keycode 0x30 = Tab              Tab             
	alt     keycode 0x30 = Meta_Tab        
keycode 0x31 = space            space           
	control keycode 0x31 = nul             
	alt     keycode 0x31 = Meta_space      
keycode 0x32 = grave            asciitilde      
	control keycode 0x32 = nul             
	alt     keycode 0x32 = Meta_grave      
keycode 0x33 = Delete           Delete          
	control keycode 0x33 = BackSpace
	alt     keycode 0x33 = Meta_Delete     
keycode 0x34 =
keycode 0x35 = Escape           Escape          
	alt     keycode 0x35 = Meta_Escape     
keycode 0x36 = Control         
keycode 0x37 = Alt             
keycode 0x38 = Shift
keycode 0x39 = Caps_Lock       
keycode 0x3a = AltGr           
keycode 0x3b = Left            
	alt     keycode 0x3b = Decr_Console
keycode 0x3c = Right           
	alt     keycode 0x3c = Incr_Console
keycode 0x3d = Down            
keycode 0x3e = Up              
keycode 0x3f =
keycode 0x40 =
keycode 0x41 = KP_Period       
keycode 0x42 =
keycode 0x43 = KP_Multiply     
keycode 0x44 =
keycode 0x45 = KP_Add          
keycode 0x46 =
keycode 0x47 = Num_Lock
#	shift   keycode 0x47 = Bare_Num_Lock
keycode 0x48 =
keycode 0x49 =
keycode 0x4a =
keycode 0x4b = KP_Divide       
keycode 0x4c = KP_Enter        
keycode 0x4d =
keycode 0x4e = KP_Subtract     
keycode 0x4f =
keycode 0x50 =
keycode 0x51 =
#keycode 0x51 = KP_Equals
keycode 0x52 = KP_0            
	alt     keycode 0x52 = Ascii_0         
	altgr   keycode 0x52 = Hex_0         
keycode 0x53 = KP_1            
	alt     keycode 0x53 = Ascii_1         
	altgr   keycode 0x53 = Hex_1         
keycode 0x54 = KP_2            
	alt     keycode 0x54 = Ascii_2         
	altgr   keycode 0x54 = Hex_2         
keycode 0x55 = KP_3            
	alt     keycode 0x55 = Ascii_3         
	altgr   keycode 0x55 = Hex_3         
keycode 0x56 = KP_4            
	alt     keycode 0x56 = Ascii_4         
	altgr   keycode 0x56 = Hex_4         
keycode 0x57 = KP_5            
	alt     keycode 0x57 = Ascii_5         
	altgr   keycode 0x57 = Hex_5         
keycode 0x58 = KP_6            
	alt     keycode 0x58 = Ascii_6         
	altgr   keycode 0x58 = Hex_6         
keycode 0x59 = KP_7            
	alt     keycode 0x59 = Ascii_7         
	altgr   keycode 0x59 = Hex_7
keycode 0x5b = KP_8            
	alt     keycode 0x5b = Ascii_8         
	altgr   keycode 0x5b = Hex_8         
keycode 0x5c = KP_9            
	alt     keycode 0x5c = Ascii_9         
	altgr   keycode 0x5c = Hex_9         
keycode 0x5d =
keycode 0x5e =
keycode 0x5f =
keycode 0x60 = F5               F15              Console_17      
	control keycode 0x60 = F5              
	alt     keycode 0x60 = Console_5       
	control alt     keycode 0x60 = Console_5       
keycode 0x61 = F6               F16              Console_18      
	control keycode 0x61 = F6              
	alt     keycode 0x61 = Console_6       
	control alt     keycode 0x61 = Console_6       
keycode 0x62 = F7               F17              Console_19      
	control keycode 0x62 = F7              
	alt     keycode 0x62 = Console_7       
	control alt     keycode 0x62 = Console_7       
keycode 0x63 = F3               F13              Console_15      
	control keycode 0x63 = F3              
	alt     keycode 0x63 = Console_3       
	control alt     keycode 0x63 = Console_3       
keycode 0x64 = F8               F18              Console_20      
	control keycode 0x64 = F8              
	alt     keycode 0x64 = Console_8       
	control alt     keycode 0x64 = Console_8       
keycode 0x65 = F9               F19              Console_21      
	control keycode 0x65 = F9              
	alt     keycode 0x65 = Console_9       
	control alt     keycode 0x65 = Console_9       
keycode 0x66 =
keycode 0x67 = F11              F11              Console_23      
	control keycode 0x67 = F11             
	alt     keycode 0x67 = Console_11      
	control alt     keycode 0x67 = Console_11      
keycode 0x68 =
keycode 0x69 = F13             
keycode 0x6a =
keycode 0x6b = Scroll_Lock      Show_Memory      Show_Registers  
	control keycode 0x6b = Show_State      
	alt     keycode 0x6b = Scroll_Lock     
keycode 0x6c =
keycode 0x6d = F10              F20              Console_22      
	control keycode 0x6d = F10             
	alt     keycode 0x6d = Console_10      
	control alt     keycode 0x6d = Console_10      
keycode 0x6e =
keycode 0x6f = F12              F12              Console_24      
	control keycode 0x6f = F12             
	alt     keycode 0x6f = Console_12      
	control alt     keycode 0x6f = Console_12      
keycode 0x70 =
keycode 0x71 = Pause
keycode 0x72 = Insert          
keycode 0x73 = Home
keycode 0x74 = Prior           
	shift   keycode 0x74 = Scroll_Backward 
keycode 0x75 = Remove          
keycode 0x76 = F4               F14              Console_16      
	control keycode 0x76 = F4              
	alt     keycode 0x76 = Console_4       
	control alt     keycode 0x76 = Console_4       
keycode 0x77 = End
keycode 0x78 = F2               F12              Console_14      
	control keycode 0x78 = F2              
	alt     keycode 0x78 = Console_2       
	control alt     keycode 0x78 = Console_2       
keycode 0x79 = Next            
	shift   keycode 0x79 = Scroll_Forward  
keycode 0x7a = F1               F11              Console_13      
	control keycode 0x7a = F1              
	alt     keycode 0x7a = Console_1       
	control alt     keycode 0x7a = Console_1       
keycode 0x7b = Shift
keycode 0x7c = AltGr
keycode 0x7d = Control
keycode 0x7e =
keycode 0x7f =
#keycode 0x7f = Power
	control shift   keycode 0x7f = Boot
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string Macro = "\033[M"
string Pause = "\033[P"
compose '`' 'A' to 'À'
compose '`' 'a' to 'à'
compose '\'' 'A' to 'Á'
compose '\'' 'a' to 'á'
compose '^' 'A' to 'Â'
compose '^' 'a' to 'â'
compose '~' 'A' to 'Ã'
compose '~' 'a' to 'ã'
compose '"' 'A' to 'Ä'
compose '"' 'a' to 'ä'
compose 'O' 'A' to 'Å'
compose 'o' 'a' to 'å'
compose '0' 'A' to 'Å'
compose '0' 'a' to 'å'
compose 'A' 'A' to 'Å'
compose 'a' 'a' to 'å'
compose 'A' 'E' to 'Æ'
compose 'a' 'e' to 'æ'
compose ',' 'C' to 'Ç'
compose ',' 'c' to 'ç'
compose '`' 'E' to 'È'
compose '`' 'e' to 'è'
compose '\'' 'E' to 'É'
compose '\'' 'e' to 'é'
compose '^' 'E' to 'Ê'
compose '^' 'e' to 'ê'
compose '"' 'E' to 'Ë'
compose '"' 'e' to 'ë'
compose '`' 'I' to 'Ì'
compose '`' 'i' to 'ì'
compose '\'' 'I' to 'Í'
compose '\'' 'i' to 'í'
compose '^' 'I' to 'Î'
compose '^' 'i' to 'î'
compose '"' 'I' to 'Ï'
compose '"' 'i' to 'ï'
compose '-' 'D' to 'Ð'
compose '-' 'd' to 'ð'
compose '~' 'N' to 'Ñ'
compose '~' 'n' to 'ñ'
compose '`' 'O' to 'Ò'
compose '`' 'o' to 'ò'
compose '\'' 'O' to 'Ó'
compose '\'' 'o' to 'ó'
compose '^' 'O' to 'Ô'
compose '^' 'o' to 'ô'
compose '~' 'O' to 'Õ'
compose '~' 'o' to 'õ'
compose '"' 'O' to 'Ö'
compose '"' 'o' to 'ö'
compose '/' 'O' to 'Ø'
compose '/' 'o' to 'ø'
compose '`' 'U' to 'Ù'
compose '`' 'u' to 'ù'
compose '\'' 'U' to 'Ú'
compose '\'' 'u' to 'ú'
compose '^' 'U' to 'Û'
compose '^' 'u' to 'û'
compose '"' 'U' to 'Ü'
compose '"' 'u' to 'ü'
compose '\'' 'Y' to 'Ý'
compose '\'' 'y' to 'ý'
compose 'T' 'H' to 'Þ'
compose 't' 'h' to 'þ'
compose 's' 's' to 'ß'
compose '"' 'y' to 'ÿ'
compose 's' 'z' to 'ß'
compose 'i' 'j' to 'ÿ'
