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: