[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Emacs loadkeys map and 8-bit stuff



  For those of you who like Emacs AND Sun keyboards (at least the old
  ones--I haven't seen a new one lately), please enjoy the following
  map file.

  It makes the Caps lock key the Control key, and the control and alt
  keys meta keys (so your pinky can easily execute C-S-M ;-).  It also
  makes the `~ key an escape, and the backspace key the `~ (like the
  old Sun keyboards)--you might wish to back out the latter.

  This file was based off an old Slackware default keymap.

  I've also enclosed my .xmodmaprc which accomplishes the same thing
  (it also has lots of magic to map European HP and IBM keyboards to
  American ones which some may find useful on non-Linux systems
  without bountiful loadkeys keymaps).

  8-bit?  Choose an 8-bit character set for xterm (e.g.,
  -adobe-courier-bold-r-normal--14-140-75-75-m-90-iso8859-1).  If you
  use less, add this to your .bash_profile:

	export LESSCHARSET=latin1

  If you use emacs, add this to your .emacs:

	(standard-display-european t)		;display 8859-1 characters

  To compose 8-bit characters in emacs, see iso-accents-mode.  In
  xterm, I believe one needs a "Compose" key.  I could use that rarely
  used, right control key for that (you would change the enclosed
  keymap file to do that).

Bill Wohler <wohler@newt.com>   ph: +1-415-854-1857  fax: +1-415-854-3195
Say it with MIME.  Maintainer of comp.mail.mh and news.software.nn FAQs.
If you're passed on the right, you're in the wrong lane.

keycode   0 =
keycode   1 = Escape           Escape          
	alt     keycode   1 = Meta_Escape     
keycode   2 = one              exclam          
	alt     keycode   2 = Meta_one        
	alt shift keycode 2 = Meta_exclam
keycode   3 = two              at               at 
	control keycode   3 = 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 keycode   5 = Control_backslash
	alt     keycode   5 = Meta_four       
	shift   alt     keycode   5 = Meta_dollar     
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
	control alt     keycode   7 = Meta_Control_asciicircum
keycode   8 = seven            ampersand        braceleft       
	control keycode   8 = Control_underscore
	alt     keycode   8 = Meta_seven      
	shift   alt     keycode   8 = Meta_ampersand  
keycode   9 = eight            asterisk         bracketleft     
	control keycode   9 = Delete          
	alt     keycode   9 = Meta_eight      
	shift   alt     keycode  10 = Meta_parenleft  
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 keycode  12 = 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 = grave            asciitilde      
	alt     keycode  41 = Meta_grave      
	shift   alt     keycode  14 = Meta_asciitilde
keycode  15 = Tab              Tab             
	alt     keycode  15 = Meta_Tab        
	shift   alt     keycode  15 = Meta_Tab        
keycode  16 = q               
keycode  17 = w               
keycode  18 = 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  
	control alt     keycode  26 = Meta_Escape     
keycode  27 = bracketright     braceright       asciitilde      
	control keycode  27 = 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  
	shift   alt     keycode  28 = Meta_Control_m  
keycode  29 = Alt         
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 = Escape           Escape
	alt     keycode   1 = Meta_Escape     
keycode  42 = Shift           
keycode  43 = backslash        bar             
	control keycode  43 = Control_backslash
	alt     keycode  43 = Meta_backslash  
	shift   alt     keycode  43 = Meta_bar        
	control alt     keycode  43 = Meta_Control_backslash
keycode  44 = z               
keycode  45 = x               
keycode  46 = 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         
	control keycode  52 = Compose         
	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   
	control alt     keycode  53 = Meta_Delete     
keycode  54 = Shift           
keycode  55 = KP_Multiply     
keycode  56 = Alt             
keycode  57 = space            space           
	control keycode  57 = nul             
	alt     keycode  57 = Meta_space      
	control alt     keycode  57 = Meta_nul        
keycode  58 = Control       
keycode  59 = F1               F11              Console_13      
	control keycode  59 = F1              
	alt     keycode  59 = Console_1       
keycode  60 = F2               F12              Console_14      
	control keycode  60 = F2              
	alt     keycode  60 = Console_2       
keycode  61 = F3               F13              Console_15      
	control keycode  61 = F3              
	alt     keycode  61 = Console_3       
keycode  62 = F4               F14              Console_16      
	control keycode  62 = F4              
	alt     keycode  62 = Console_4       
keycode  63 = F5               F15              Console_17      
	control keycode  63 = F5              
	alt     keycode  63 = Console_5       
keycode  64 = F6               F16              Console_18      
	control keycode  64 = F6              
	alt     keycode  64 = Console_6       
keycode  65 = F7               F17              Console_19      
	control keycode  65 = F7              
	alt     keycode  65 = Console_7       
keycode  66 = F8               F18              Console_20      
	control keycode  66 = F8              
	alt     keycode  66 = Console_8       
keycode  67 = F9               F19              Console_21      
	control keycode  67 = F9              
	alt     keycode  67 = Console_9       
keycode  68 = F10              F20              Console_22      
	control keycode  68 = F10             
	alt     keycode  68 = Console_10      
keycode  69 = Num_Lock        Caps_Lock
keycode  70 = Scroll_Lock      Show_Memory      Show_Registers  
	control keycode  70 = Show_State      
	alt     keycode  70 = Scroll_Lock     
keycode  71 = KP_7            
	alt     keycode  71 = Ascii_7         
keycode  72 = KP_8            
	alt     keycode  72 = Ascii_8         
keycode  73 = KP_9            
	alt     keycode  73 = Ascii_9         
keycode  74 = KP_Subtract     
keycode  75 = KP_4            
	alt     keycode  75 = Ascii_4         
keycode  76 = KP_5            
	alt     keycode  76 = Ascii_5         
keycode  77 = KP_6            
	alt     keycode  77 = Ascii_6         
keycode  78 = KP_Add          
keycode  79 = KP_1            
	alt     keycode  79 = Ascii_1         
keycode  80 = KP_2            
	alt     keycode  80 = Ascii_2         
keycode  81 = KP_3            
	alt     keycode  81 = Ascii_3         
keycode  82 = KP_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       
keycode  87 = F11              F11              Console_23      
	control keycode  87 = F11             
	alt     keycode  87 = Console_11      
keycode  88 = F12              F12              Console_24      
	control keycode  88 = F12             
	alt     keycode  88 = Console_12      
keycode  89 =
keycode  90 =
keycode  91 =
keycode  92 =
keycode  93 =
keycode  94 =
keycode  95 =
keycode  96 = KP_Enter        
keycode  97 = AltGr         
keycode  98 = KP_Divide       
keycode  99 = Control_backslash
	control keycode  99 = Control_backslash
	alt     keycode  99 = Control_backslash
keycode 100 = Alt           
keycode 101 = Break           
keycode 102 = Find            
keycode 103 = Up              
keycode 104 = Prior           
	shift   keycode 104 = Scroll_Backward 
keycode 105 = Left            
keycode 106 = Right           
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           
keycode 113 = F13             
keycode 114 = F14             
keycode 115 = Help            
keycode 116 = Do              
keycode 117 = F17             
keycode 118 = KP_MinPlus      
keycode 119 = Pause           
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =
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 Help = ""
string Do = ""
string Pause = "\033[P"
string F21 = ""
string F22 = ""
string F23 = ""
string F24 = ""
string F25 = ""
string F26 = ""
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 'ÿ'
! $Id: .xmodmaprc,v 1.9 1995/04/04 06:44:00 wohler Exp $
!
! xmodmap configuration file
!
! Usage: /bin/cpp -D$machine -DLANG=$LANG -P $HOME/.xmodmaprc | xmodmap - 
!	where machine is from the set hp or hpbogus
!       (international german keyboard), dec, ibm or nothing
!
! Examples found at bottom:

#ifdef C

#ifdef hpbogus
#define hp
#endif /* hpbogus */

! Fix brain damaged caps lock and make it a control key.

#if defined(hp) || defined(dec)
keysym Caps_Lock = Control_R
clear Control
clear Lock
add Control = Control_L
add Control = Control_R
#endif /* hp || dec */

! Put Escape and backquote as they appear on the Sun.
!	BackSpace -> quoteleft and asciitilde
!	quoteleft|less -> Escape 

#if defined(hp) || defined(ibm)
keysym BackSpace = quoteleft asciitilde
#endif /* hp */
#if defined(dec)
keysym Delete = quoteleft asciitilde
#endif /* dec */
#ifdef hpbogus
keysym less = Escape
#else
keysym quoteleft = Escape
#endif /* hpbogus */

! Fix DEC keyboard
!	Put angle brackets over comma and period
!	Ditto for International HP keyboard

#if defined(dec) || defined(hpbogus)
keysym comma = comma less
keysym period = period greater
#endif /* dec */

! Fix IBM keyboard
!	Add a backslash/pipe key.

#ifdef ibm
keycode 50 = backslash bar
keycode 84 = BackSpace
#endif /* ibm */

! Fix HP keyboard
!	Let meta key work in remote emacs.
!	Remap InsertChar and DeleteChar so that they work in saptemu
!	compiled on non-hp running on hp.

#ifdef hp
remove mod1 = Mode_switch
! keysym InsertChar = Insert
! keysym DeleteChar = BackSpace
#endif /* hp */

! Fix HP international keyboard
!	Change <> key to escape (see DEC)
!	Swap Z and Y keys
!	Fix almost all shifted number keys
!	Fix other special keys.
#ifdef hpbogus
keysym z = y Y
keysym y = z Z
keysym 2 = 2 at
keysym 3 = 3 numbersign
keysym 6 = 6 asciicircum
keysym 7 = 7 ampersand
keysym 8 = 8 asterisk
keysym 9 = 9 parenleft
keysym 0 = 0 parenright
keysym ssharp = minus underscore
keysym quoteright = equal plus
keysym udiaeresis = bracketleft braceleft
keysym plus = bracketright braceright
keysym sterling = backslash bar
keysym odiaeresis = semicolon colon
keysym adiaeresis = quoteright quotedbl
keysym minus = slash question
#endif /* hpbogus */

! Examples:
! Swap Caps_Lock and Control_L
!	remove Lock = Caps_Lock
!	remove Control = Control_L
!	keysym Control_L = Caps_Lock
!	keysym Caps_Lock = Control_L
!	add Lock = Caps_Lock
!	add Control = Control_L
!
! Change the meaning of the following HP keycodes:
!	101  Backspace -> Delete
!	55   Caps -> Control
!	14   Ctrl
!	15   Break/Reset -> Caps_Lock
!	86   Stop
!	89   F5->Escape
!	71   asciitilde
!	71   quoteleft
!
!	keycode 101 = Delete
!	keycode 55 = Control_R
!	clear Lock
!	add Control = Control_R
!	keycode 89 = Escape
!	keycode 15 = Caps_Lock
!	add Lock = Caps_Lock
!
#endif /* C */

Reply to: