#!/bin/sh
if test .$DISPLAY = .
then
DUMPKEYFILE=/tmp/dumpkeys.$$-`id -u`
dumpkeys > $DUMPKEYFILE
loadkeys <<"!?"
keymaps 0-2,4-6,8-9,12
keycode   1 = Escape          
	alt	keycode   1 = Meta_Escape     
	shift	alt	keycode   1 = Meta_Escape     
	control	alt	keycode   1 = Meta_Escape     
keycode   2 = one              exclam          
	alt	keycode   2 = Meta_one        
	shift	alt	keycode   2 = Meta_exclam     
keycode   3 = two              at               at               nul              nul             
	alt	keycode   3 = Meta_two        
	shift	alt	keycode   3 = Meta_at         
	control	alt	keycode   3 = Meta_nul        
keycode   4 = three            numbersign      
	control	keycode   4 = Escape          
	alt	keycode   4 = Meta_three      
	shift	alt	keycode   4 = Meta_numbersign 
keycode   5 = four             dollar           dollar           Control_backslash
	alt	keycode   5 = Meta_four       
	shift	alt	keycode   5 = Meta_dollar     
	control	alt	keycode   5 = Meta_Control_backslash
keycode   6 = five             percent         
	control	keycode   6 = Control_bracketright
	alt	keycode   6 = Meta_five       
	shift	alt	keycode   6 = Meta_percent    
keycode   7 = six              asciicircum     
	control	keycode   7 = Control_asciicircum
	alt	keycode   7 = Meta_six        
	shift	alt	keycode   7 = Meta_asciicircum
keycode   8 = seven            ampersand        braceleft        Control_underscore
	alt	keycode   8 = Meta_seven      
	shift	alt	keycode   8 = Meta_ampersand  
	control	alt	keycode   8 = Meta_Control_underscore
keycode   9 = eight            asterisk         bracketleft      Delete          
	alt	keycode   9 = Meta_eight      
	shift	alt	keycode   9 = Meta_asterisk   
	control	alt	keycode   9 = Meta_Delete     
keycode  10 = nine             parenleft        bracketright    
	alt	keycode  10 = Meta_nine       
	shift	alt	keycode  10 = Meta_parenleft  
keycode  11 = zero             parenright       braceright      
	alt	keycode  11 = Meta_zero       
	shift	alt	keycode  11 = Meta_parenright 
keycode  12 = minus            underscore       backslash        Control_underscore Control_underscore
	alt	keycode  12 = Meta_minus      
	shift	alt	keycode  12 = Meta_underscore 
	control	alt	keycode  12 = Meta_Control_underscore
keycode  13 = equal            plus            
	alt	keycode  13 = Meta_equal      
	shift	alt	keycode  13 = Meta_plus       
keycode  14 = Delete          
	alt	keycode  14 = Meta_Delete     
	shift	alt	keycode  14 = Meta_Delete     
	control	alt	keycode  14 = Meta_Delete     
keycode  15 = Tab             
	alt	keycode  15 = Meta_Tab        
	shift	alt	keycode  15 = Meta_Tab        
	control	alt	keycode  15 = Meta_Tab        
keycode  16 = q               
keycode  17 = w               
keycode  18 = +e                +E                currency         Control_e        Control_e        Control_e        Meta_e           Meta_E           Meta_Control_e  
keycode  19 = r               
keycode  20 = t               
keycode  21 = y               
keycode  22 = u               
keycode  23 = i               
keycode  24 = o               
keycode  25 = p               
keycode  26 = bracketleft      braceleft       
	control	keycode  26 = Escape          
	alt	keycode  26 = Meta_bracketleft
	shift	alt	keycode  26 = Meta_braceleft  
keycode  27 = bracketright     braceright       asciitilde       Control_bracketright
	alt	keycode  27 = Meta_bracketright
	shift	alt	keycode  27 = Meta_braceright 
	control	alt	keycode  27 = Meta_Control_bracketright
keycode  28 = Return          
	alt	keycode  28 = Meta_Control_m  
keycode  29 = Control         
keycode  30 = a               
keycode  31 = s               
keycode  32 = d               
keycode  33 = f               
keycode  34 = g               
keycode  35 = h               
keycode  36 = j               
keycode  37 = k               
keycode  38 = l               
keycode  39 = semicolon        colon           
	alt	keycode  39 = Meta_semicolon  
	shift	alt	keycode  39 = Meta_colon      
keycode  40 = apostrophe       quotedbl        
	control	keycode  40 = Control_g       
	alt	keycode  40 = Meta_apostrophe 
	shift	alt	keycode  40 = Meta_quotedbl   
keycode  41 = grave            asciitilde      
	control	keycode  41 = nul             
	alt	keycode  41 = Meta_grave      
	shift	alt	keycode  41 = Meta_asciitilde 
keycode  42 = Shift           
keycode  43 = backslash        bar             
	control	keycode  43 = Control_backslash
	alt	keycode  43 = Meta_backslash  
	shift	alt	keycode  43 = Meta_bar        
keycode  44 = z               
keycode  45 = x               
keycode  46 = +c                +C                cent             Control_c        Control_c        Control_c        Meta_c           Meta_C           Meta_Control_c  
keycode  47 = v               
keycode  48 = b               
keycode  49 = n               
keycode  50 = m               
keycode  51 = comma            less            
	alt	keycode  51 = Meta_comma      
	shift	alt	keycode  51 = Meta_less       
keycode  52 = period           greater         
	alt	keycode  52 = Meta_period     
	shift	alt	keycode  52 = Meta_greater    
keycode  53 = slash            question        
	control	keycode  53 = Delete          
	alt	keycode  53 = Meta_slash      
	shift	alt	keycode  53 = Meta_question   
keycode  54 = Shift           
keycode  55 = KP_Multiply     
	altgr	keycode  55 = Hex_C           
keycode  56 = Alt             
keycode  57 = space           
	control	keycode  57 = nul             
	alt	keycode  57 = Meta_space      
	shift	alt	keycode  57 = Meta_space      
	control	alt	keycode  57 = Meta_nul        
keycode  58 = Caps_Lock       
keycode  59 = F1               F13              Console_13       F25             
	alt	keycode  59 = Console_1       
	control	alt	keycode  59 = Console_1       
keycode  60 = F2               F14              Console_14       F26             
	alt	keycode  60 = Console_2       
	control	alt	keycode  60 = Console_2       
keycode  61 = F3               F15              Console_15       F27             
	alt	keycode  61 = Console_3       
	control	alt	keycode  61 = Console_3       
keycode  62 = F4               F16              Console_16       F28             
	alt	keycode  62 = Console_4       
	control	alt	keycode  62 = Console_4       
keycode  63 = F5               F17              Console_17       F29             
	alt	keycode  63 = Console_5       
	control	alt	keycode  63 = Console_5       
keycode  64 = F6               F18              Console_18       F30             
	alt	keycode  64 = Console_6       
	control	alt	keycode  64 = Console_6       
keycode  65 = F7               F19              Console_19       F31             
	alt	keycode  65 = Console_7       
	control	alt	keycode  65 = Console_7       
keycode  66 = F8               F20              Console_20       F32             
	alt	keycode  66 = Console_8       
	control	alt	keycode  66 = Console_8       
keycode  67 = F9               F21              Console_21       F33             
	alt	keycode  67 = Console_9       
	control	alt	keycode  67 = Console_9       
keycode  68 = F10              F22              Console_22       F34             
	alt	keycode  68 = Console_10      
	control	alt	keycode  68 = Console_10      
keycode  69 = Num_Lock        
	altgr	keycode  69 = Hex_A           
keycode  70 = Scroll_Lock      Show_Memory      Show_Registers   Show_State      
	alt	keycode  70 = Scroll_Lock     
keycode  71 = KP_7            
	altgr	keycode  71 = Hex_7           
	alt	keycode  71 = Ascii_7         
keycode  72 = KP_8            
	altgr	keycode  72 = Hex_8           
	alt	keycode  72 = Ascii_8         
keycode  73 = KP_9            
	altgr	keycode  73 = Hex_9           
	alt	keycode  73 = Ascii_9         
keycode  74 = KP_Subtract     
	altgr	keycode  74 = Hex_D           
keycode  75 = KP_4            
	altgr	keycode  75 = Hex_4           
	alt	keycode  75 = Ascii_4         
keycode  76 = KP_5            
	altgr	keycode  76 = Hex_5           
	alt	keycode  76 = Ascii_5         
keycode  77 = KP_6            
	altgr	keycode  77 = Hex_6           
	alt	keycode  77 = Ascii_6         
keycode  78 = KP_Add          
	altgr	keycode  78 = Hex_E           
keycode  79 = KP_1            
	altgr	keycode  79 = Hex_1           
	alt	keycode  79 = Ascii_1         
keycode  80 = KP_2            
	altgr	keycode  80 = Hex_2           
	alt	keycode  80 = Ascii_2         
keycode  81 = KP_3            
	altgr	keycode  81 = Hex_3           
	alt	keycode  81 = Ascii_3         
keycode  82 = KP_0            
	altgr	keycode  82 = Hex_0           
	alt	keycode  82 = Ascii_0         
keycode  83 = KP_Period       
	altgr	control	keycode  83 = Boot            
	control	alt	keycode  83 = Boot            
keycode  84 = Last_Console    
keycode  85 =
keycode  86 = less             greater          bar             
	alt	keycode  86 = Meta_less       
	shift	alt	keycode  86 = Meta_greater    
keycode  87 = F11              F23              Console_23       F35             
	alt	keycode  87 = Console_11      
	control	alt	keycode  87 = Console_11      
keycode  88 = F12              F24              Console_24       F36             
	alt	keycode  88 = Console_12      
	control	alt	keycode  88 = Console_12      
keycode  89 =
keycode  90 =
keycode  91 =
keycode  92 =
keycode  93 =
keycode  94 =
keycode  95 =
keycode  96 = KP_Enter        
	altgr	keycode  96 = Hex_F           
keycode  97 = Control         
keycode  98 = KP_Divide       
	altgr	keycode  98 = Hex_B           
keycode  99 = Compose         
keycode 100 = AltGr           
	alt	keycode 100 = Compose         
keycode 101 = Break           
keycode 102 = Find            
keycode 103 = Up              
	alt	keycode 103 = KeyboardSignal  
keycode 104 = Prior           
	shift	keycode 104 = Scroll_Backward 
keycode 105 = Left            
	alt	keycode 105 = Decr_Console    
keycode 106 = Right           
	alt	keycode 106 = Incr_Console    
keycode 107 = Select          
keycode 108 = Down            
keycode 109 = Next            
	shift	keycode 109 = Scroll_Forward  
keycode 110 = Insert          
keycode 111 = Remove          
	altgr	control	keycode 111 = Boot            
	control	alt	keycode 111 = Boot            
keycode 112 = Macro           
	altgr	control	keycode 112 = VoidSymbol      
	shift	alt	keycode 112 = VoidSymbol      
keycode 113 = F13             
	altgr	control	keycode 113 = VoidSymbol      
	shift	alt	keycode 113 = VoidSymbol      
keycode 114 = F14             
	altgr	control	keycode 114 = VoidSymbol      
	shift	alt	keycode 114 = VoidSymbol      
keycode 115 = Help            
	altgr	control	keycode 115 = VoidSymbol      
	shift	alt	keycode 115 = VoidSymbol      
keycode 116 = Do              
	altgr	control	keycode 116 = VoidSymbol      
	shift	alt	keycode 116 = VoidSymbol      
keycode 117 = F17             
	altgr	control	keycode 117 = VoidSymbol      
	shift	alt	keycode 117 = VoidSymbol      
keycode 118 = KP_MinPlus      
	altgr	control	keycode 118 = VoidSymbol      
	shift	alt	keycode 118 = VoidSymbol      
keycode 119 = Pause           
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 = Decr_Console    
keycode 126 = Incr_Console    
keycode 127 = Last_Console    
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 'ÿ'
!?
bed $*
loadkeys  $DUMPKEYFILE
rm $DUMPKEYFILE
else
exec bed $*
fi
