Skip to content

Instantly share code, notes, and snippets.

@dardo82
Last active July 15, 2025 04:48
Show Gist options
  • Save dardo82/ec183e778bad1d6be5a75a0a95353b4e to your computer and use it in GitHub Desktop.
Save dardo82/ec183e778bad1d6be5a75a0a95353b4e to your computer and use it in GitHub Desktop.
fixterms keymap
#
# hypermap.map 1994/11/11
# Michael Shields <[email protected]>
#
# A keymap redesigned for sanity.
#
#
# This keymap is a ground-up reimplementation of the keyboard map,
# intended to be consistent and rational. It uses an m4 metalanguage to
# declare the key mappings. Usage is `m4 hypermap.map | loadkeys'.
#
# The modifier flags used are `shift' (1), `control' (4), and `alt' (8).
# Left and right modifiers are not distinguished.
#
# In general, Meta is always distinguished, and M-S-KEY is distinct from
# M-KEY. This is good news for Emacs users. C-S-KEY is consistently
# folded into C-KEY.
#
# Shift is more loosely interpreted than the other modifiers; usually if
# S-KEY has no special meaning, the action will be the same as KEY.
# However, if M-KEY or H-KEY is undefined, nothing happens.
#
# Because Caps Lock's position is so out of proportion to its utility,
# it's been totally redefined to a new sort of modifier, which I've
# arbitrarily named `Hyper'. Shift is ignored with Hyper. Hyper
# provides dead keys:
# H-` dead accent grave
# H-' dead acute accent
# H-^ dead circumflex
# H-t dead tilde
# H-d dead diaeresis
# and ISO-8859-1 symbols (some more mnemonic than others):
# H-SPC nobreakspace
# H-! inverted bang
# H-h cents (`hundredths')
# H-# pounds sterling
# H-$ currency
# H-y yen
# H-| broken bar
# H-s section (the galaxy symbol)
# H-c copyright
# H-a feminine ordinal
# H-< left guillemot
# H-] not sign (it's angular)
# H-- soft hyphen
# H-r registered trademark symbol
# H-= macron
# H-0 degrees
# H-[ plus/minus (near + and -)
# H-k superior 2 (jkl form a series)
# H-l superior 3
# H-u mu
# H-p pilcrow
# H-: centered dot
# H-j superior 1
# H-o masculine ordinal
# H-> right guillemot
# H-q 1/4 fraction (qwe form a series)
# H-w 1/2 fraction
# H-e 3/4 fraction
# H-? inverted question mark
# H-x multiplication symbol
# H-% division symbol
# You can also use Hyper plus Alt to type characters by decimal code on
# the keypad, as with Alt alone, or in hex on the main keyboard. And
# H-TAB is a Caps Lock.
#
# Function keys work as marked, unless with Alt, in which case they
# switch to the console with the same number. Shift adds 12 and Hyper
# adds 24 to the numbers (i.e., they logically switch to other banks).
# Thus you can easily address up to 48. Control is ignored, for
# consistency with X.
#
# Finally, you can change the behavior of the Caps Lock and Controls
# with m4 command-line options. The default values are equivalent to
# `-DCAPSLOCK_K=Hyper -DLEFTCTRL_K=Control -DRIGHTCTRL_K=Control'. You
# can remove the Hyper code entirely with `-DCAPSLOCK_K=Caps_Lock'.
#
# This file is arranged vaguely by key position on the classic PC layout.
#
keymaps 0,1,4,5,8,9,12,13,128,129,132,133,136,137,140,141
keycode 1 = Escape VoidSymbol
shift keycode 1 = Escape
alt keycode 1 = Meta_Escape
shift alt keycode 1 = Meta_Escape
keycode 59 = F1 VoidSymbol
shift keycode 59 = F13
ctrlr keycode 59 = F25
shift ctrlr keycode 59 = F37
alt keycode 59 = Console_1
shift alt keycode 59 = Console_13
ctrlr alt keycode 59 = Console_25
shift ctrlr alt keycode 59 = Console_37
keycode 60 = F2 VoidSymbol
shift keycode 60 = F14
ctrlr keycode 60 = F26
shift ctrlr keycode 60 = F38
alt keycode 60 = Console_2
shift alt keycode 60 = Console_14
ctrlr alt keycode 60 = Console_26
shift ctrlr alt keycode 60 = Console_38
keycode 61 = F3 VoidSymbol
shift keycode 61 = F15
ctrlr keycode 61 = F27
shift ctrlr keycode 61 = F39
alt keycode 61 = Console_3
shift alt keycode 61 = Console_15
ctrlr alt keycode 61 = Console_27
shift ctrlr alt keycode 61 = Console_39
keycode 62 = F4 VoidSymbol
shift keycode 62 = F16
ctrlr keycode 62 = F28
shift ctrlr keycode 62 = F40
alt keycode 62 = Console_4
shift alt keycode 62 = Console_16
ctrlr alt keycode 62 = Console_28
shift ctrlr alt keycode 62 = Console_40
keycode 63 = F5 VoidSymbol
shift keycode 63 = F17
ctrlr keycode 63 = F29
shift ctrlr keycode 63 = F41
alt keycode 63 = Console_5
shift alt keycode 63 = Console_17
ctrlr alt keycode 63 = Console_29
shift ctrlr alt keycode 63 = Console_41
keycode 64 = F6 VoidSymbol
shift keycode 64 = F18
ctrlr keycode 64 = F30
shift ctrlr keycode 64 = F42
alt keycode 64 = Console_6
shift alt keycode 64 = Console_18
ctrlr alt keycode 64 = Console_30
shift ctrlr alt keycode 64 = Console_42
keycode 65 = F7 VoidSymbol
shift keycode 65 = F19
ctrlr keycode 65 = F31
shift ctrlr keycode 65 = F43
alt keycode 65 = Console_7
shift alt keycode 65 = Console_19
ctrlr alt keycode 65 = Console_31
shift ctrlr alt keycode 65 = Console_43
keycode 66 = F8 VoidSymbol
shift keycode 66 = F20
ctrlr keycode 66 = F32
shift ctrlr keycode 66 = F44
alt keycode 66 = Console_8
shift alt keycode 66 = Console_20
ctrlr alt keycode 66 = Console_32
shift ctrlr alt keycode 66 = Console_44
keycode 67 = F9 VoidSymbol
shift keycode 67 = F21
ctrlr keycode 67 = F33
shift ctrlr keycode 67 = F45
alt keycode 67 = Console_9
shift alt keycode 67 = Console_21
ctrlr alt keycode 67 = Console_33
shift ctrlr alt keycode 67 = Console_45
keycode 68 = F10 VoidSymbol
shift keycode 68 = F22
ctrlr keycode 68 = F34
shift ctrlr keycode 68 = F46
alt keycode 68 = Console_10
shift alt keycode 68 = Console_22
ctrlr alt keycode 68 = Console_34
shift ctrlr alt keycode 68 = Console_46
keycode 87 = F11 VoidSymbol
shift keycode 87 = F23
ctrlr keycode 87 = F35
shift ctrlr keycode 87 = F47
alt keycode 87 = Console_11
shift alt keycode 87 = Console_23
ctrlr alt keycode 87 = Console_35
shift ctrlr alt keycode 87 = Console_47
keycode 88 = F12 VoidSymbol
shift keycode 88 = F24
ctrlr keycode 88 = F36
shift ctrlr keycode 88 = F48
alt keycode 88 = Console_12
shift alt keycode 88 = Console_24
ctrlr alt keycode 88 = Console_36
shift ctrlr alt keycode 88 = Console_48
keycode 2 = one VoidSymbol
shift keycode 2 = exclam
alt keycode 2 = Meta_one
shift alt keycode 2 = Meta_exclam
ctrlr keycode 2 = exclamdown
shift ctrlr keycode 2 = exclamdown
alt ctrlr keycode 2 = Hex_1
shift alt ctrlr keycode 2 = Hex_1
keycode 3 = two VoidSymbol
shift keycode 3 = at
alt keycode 3 = Meta_two
shift alt keycode 3 = Meta_at
control keycode 3 = nul
shift control keycode 3 = nul
control alt keycode 3 = Meta_nul
shift control alt keycode 3 = Meta_nul
alt ctrlr keycode 3 = Hex_2
shift alt ctrlr keycode 3 = Hex_2
keycode 4 = three VoidSymbol
shift keycode 4 = numbersign
alt keycode 4 = Meta_three
shift alt keycode 4 = Meta_numbersign
ctrlr keycode 4 = pound
shift ctrlr keycode 4 = pound
alt ctrlr keycode 4 = Hex_3
shift alt ctrlr keycode 4 = Hex_3
keycode 5 = four VoidSymbol
shift keycode 5 = dollar
alt keycode 5 = Meta_four
shift alt keycode 5 = Meta_dollar
ctrlr keycode 5 = currency
shift ctrlr keycode 5 = currency
alt ctrlr keycode 5 = Hex_4
shift alt ctrlr keycode 5 = Hex_4
keycode 6 = five VoidSymbol
shift keycode 6 = percent
alt keycode 6 = Meta_five
shift alt keycode 6 = Meta_percent
ctrlr keycode 6 = division
shift ctrlr keycode 6 = division
alt ctrlr keycode 6 = Hex_5
shift alt ctrlr keycode 6 = Hex_5
keycode 7 = six VoidSymbol
shift keycode 7 = asciicircum
alt keycode 7 = Meta_six
shift alt keycode 7 = Meta_asciicircum
control keycode 7 = Control_asciicircum
shift control keycode 7 = Control_asciicircum
control alt keycode 7 = Meta_Control_asciicircum
shift control alt keycode 7 = Meta_Control_asciicircum
ctrlr keycode 7 = dead_circumflex
shift ctrlr keycode 7 = dead_circumflex
alt ctrlr keycode 7 = Hex_6
shift alt ctrlr keycode 7 = Hex_6
keycode 8 = seven VoidSymbol
shift keycode 8 = ampersand
alt keycode 8 = Meta_seven
shift alt keycode 8 = Meta_ampersand
alt ctrlr keycode 8 = Hex_7
shift alt ctrlr keycode 8 = Hex_7
keycode 9 = eight VoidSymbol
shift keycode 9 = asterisk
alt keycode 9 = Meta_eight
shift alt keycode 9 = Meta_asterisk
alt ctrlr keycode 9 = Hex_8
shift alt ctrlr keycode 9 = Hex_8
keycode 10 = nine VoidSymbol
shift keycode 10 = parenleft
alt keycode 10 = Meta_nine
shift alt keycode 10 = Meta_parenleft
alt ctrlr keycode 10 = Hex_9
shift alt ctrlr keycode 10 = Hex_9
keycode 11 = zero VoidSymbol
shift keycode 11 = parenright
alt keycode 11 = Meta_zero
shift alt keycode 11 = Meta_parenright
ctrlr keycode 11 = degree
shift ctrlr keycode 11 = degree
alt ctrlr keycode 11 = Hex_0
shift alt ctrlr keycode 11 = Hex_0
keycode 12 = minus VoidSymbol
shift keycode 12 = underscore
alt keycode 12 = Meta_minus
shift alt keycode 12 = Meta_underscore
control keycode 12 = Control_underscore
shift control keycode 12 = Control_underscore
control alt keycode 12 = Meta_Control_underscore
shift control alt keycode 12 = Meta_Control_underscore
ctrlr keycode 12 = hyphen
shift ctrlr keycode 12 = hyphen
keycode 13 = equal VoidSymbol
shift keycode 13 = plus
alt keycode 13 = Meta_equal
shift alt keycode 13 = Meta_plus
ctrlr keycode 13 = macron
shift ctrlr keycode 13 = macron
keycode 14 = Delete VoidSymbol
shift keycode 14 = Delete
alt keycode 14 = Meta_Delete
shift alt keycode 14 = Meta_Delete
control keycode 14 = BackSpace
shift control keycode 14 = BackSpace
control alt keycode 14 = Meta_BackSpace
shift control alt keycode 14 = Meta_BackSpace
keycode 15 = Tab VoidSymbol
shift keycode 15 = Tab
alt keycode 15 = Meta_Tab
shift alt keycode 15 = Meta_Tab
ctrlr keycode 15 = Caps_Lock
shift ctrlr keycode 15 = Caps_Lock
keycode 16 = +q VoidSymbol
shift keycode 16 = +Q
alt keycode 16 = Meta_q
shift alt keycode 16 = Meta_Q
control keycode 16 = Control_q
shift control keycode 16 = F113
control alt keycode 16 = Meta_Control_q
shift control alt keycode 16 = Meta_Control_q
ctrlr keycode 16 = onequarter
shift ctrlr keycode 16 = onequarter
keycode 17 = +w VoidSymbol
shift keycode 17 = +W
alt keycode 17 = Meta_w
shift alt keycode 17 = Meta_W
control keycode 17 = Control_w
shift control keycode 17 = F119
control alt keycode 17 = Meta_Control_w
shift control alt keycode 17 = Meta_Control_w
ctrlr keycode 17 = onehalf
shift ctrlr keycode 17 = onehalf
keycode 18 = +e VoidSymbol
shift keycode 18 = +E
alt keycode 18 = Meta_e
shift alt keycode 18 = Meta_E
control keycode 18 = Control_e
shift control keycode 18 = F101
control alt keycode 18 = Meta_Control_e
shift control alt keycode 18 = Meta_Control_e
ctrlr keycode 18 = threequarters
shift ctrlr keycode 18 = threequarters
alt ctrlr keycode 18 = Hex_E
shift alt ctrlr keycode 18 = Hex_E
keycode 19 = +r VoidSymbol
shift keycode 19 = +R
alt keycode 19 = Meta_r
shift alt keycode 19 = Meta_R
control keycode 19 = Control_r
shift control keycode 19 = F114
control alt keycode 19 = Meta_Control_r
shift control alt keycode 19 = Meta_Control_r
ctrlr keycode 19 = registered
shift ctrlr keycode 19 = registered
keycode 20 = +t VoidSymbol
shift keycode 20 = +T
alt keycode 20 = Meta_t
shift alt keycode 20 = Meta_T
control keycode 20 = Control_t
shift control keycode 20 = F116
control alt keycode 20 = Meta_Control_t
shift control alt keycode 20 = Meta_Control_t
ctrlr keycode 20 = dead_tilde
shift ctrlr keycode 20 = dead_tilde
keycode 21 = +y VoidSymbol
shift keycode 21 = +Y
alt keycode 21 = Meta_y
shift alt keycode 21 = Meta_Y
control keycode 21 = Control_y
shift control keycode 21 = F121
control alt keycode 21 = Meta_Control_y
shift control alt keycode 21 = Meta_Control_y
ctrlr keycode 21 = yen
shift ctrlr keycode 21 = yen
keycode 22 = +u VoidSymbol
shift keycode 22 = +U
alt keycode 22 = Meta_u
shift alt keycode 22 = Meta_U
control keycode 22 = Control_u
shift control keycode 22 = F117
control alt keycode 22 = Meta_Control_u
shift control alt keycode 22 = Meta_Control_u
ctrlr keycode 22 = mu
shift ctrlr keycode 22 = mu
keycode 23 = +i VoidSymbol
shift keycode 23 = +I
alt keycode 23 = Meta_i
shift alt keycode 23 = Meta_I
control keycode 23 = Control_i
shift control keycode 23 = F105
control alt keycode 23 = Meta_Control_i
shift control alt keycode 23 = Meta_Control_i
keycode 24 = +o VoidSymbol
shift keycode 24 = +O
alt keycode 24 = Meta_o
shift alt keycode 24 = Meta_O
control keycode 24 = Control_o
shift control keycode 24 = F111
control alt keycode 24 = Meta_Control_o
shift control alt keycode 24 = Meta_Control_o
ctrlr keycode 24 = masculine
shift ctrlr keycode 24 = masculine
keycode 25 = +p VoidSymbol
shift keycode 25 = +P
alt keycode 25 = Meta_p
shift alt keycode 25 = Meta_P
control keycode 25 = Control_p
shift control keycode 25 = F112
control alt keycode 25 = Meta_Control_p
shift control alt keycode 25 = Meta_Control_p
ctrlr keycode 25 = 182
shift ctrlr keycode 25 = 182 # pilcrow
keycode 26 = bracketleft VoidSymbol
shift keycode 26 = braceleft
alt keycode 26 = Meta_bracketleft
shift alt keycode 26 = Meta_braceleft
control keycode 26 = Escape
shift control keycode 26 = Escape
control alt keycode 26 = Meta_Escape
shift control alt keycode 26 = Meta_Escape
ctrlr keycode 26 = plusminus
shift ctrlr keycode 26 = plusminus
keycode 27 = bracketright VoidSymbol
shift keycode 27 = braceright
alt keycode 27 = Meta_bracketright
shift alt keycode 27 = Meta_braceright
control keycode 27 = Control_bracketright
shift control keycode 27 = Control_bracketright
control alt keycode 27 = Meta_Control_bracketright
shift control alt keycode 27 = Meta_Control_bracketright
ctrlr keycode 27 = notsign
shift ctrlr keycode 27 = notsign
keycode 28 = Return VoidSymbol
shift keycode 28 = Return
alt keycode 28 = Meta_Control_m
shift alt keycode 28 = Meta_Control_m
keycode 30 = +a VoidSymbol
shift keycode 30 = +A
alt keycode 30 = Meta_a
shift alt keycode 30 = Meta_A
control keycode 30 = Control_a
shift control keycode 30 = F97
control alt keycode 30 = Meta_Control_a
shift control alt keycode 30 = Meta_Control_a
ctrlr keycode 30 = ordfeminine
shift ctrlr keycode 30 = ordfeminine
alt ctrlr keycode 30 = Hex_A
shift alt ctrlr keycode 30 = Hex_A
keycode 31 = +s VoidSymbol
shift keycode 31 = +S
alt keycode 31 = Meta_s
shift alt keycode 31 = Meta_S
control keycode 31 = Control_s
shift control keycode 31 = F115
control alt keycode 31 = Meta_Control_s
shift control alt keycode 31 = Meta_Control_s
ctrlr keycode 31 = section
shift ctrlr keycode 31 = section
keycode 32 = +d VoidSymbol
shift keycode 32 = +D
alt keycode 32 = Meta_d
shift alt keycode 32 = Meta_D
control keycode 32 = Control_d
shift control keycode 32 = F100
control alt keycode 32 = Meta_Control_d
shift control alt keycode 32 = Meta_Control_d
ctrlr keycode 32 = dead_diaeresis
shift ctrlr keycode 32 = dead_diaeresis
alt ctrlr keycode 32 = Hex_D
shift alt ctrlr keycode 32 = Hex_D
keycode 33 = +f VoidSymbol
shift keycode 33 = +F
alt keycode 33 = Meta_f
shift alt keycode 33 = Meta_F
control keycode 33 = Control_f
shift control keycode 33 = F102
control alt keycode 33 = Meta_Control_f
shift control alt keycode 33 = Meta_Control_f
alt ctrlr keycode 33 = Hex_F
shift alt ctrlr keycode 33 = Hex_F
keycode 34 = +g VoidSymbol
shift keycode 34 = +G
alt keycode 34 = Meta_g
shift alt keycode 34 = Meta_G
control keycode 34 = Control_g
shift control keycode 34 = F103
control alt keycode 34 = Meta_Control_g
shift control alt keycode 34 = Meta_Control_g
keycode 35 = +h VoidSymbol
shift keycode 35 = +H
alt keycode 35 = Meta_h
shift alt keycode 35 = Meta_H
control keycode 35 = Control_h
shift control keycode 35 = F104
control alt keycode 35 = Meta_Control_h
shift control alt keycode 35 = Meta_Control_h
ctrlr keycode 35 = cent
shift ctrlr keycode 35 = cent
keycode 36 = +j VoidSymbol
shift keycode 36 = +J
alt keycode 36 = Meta_j
shift alt keycode 36 = Meta_J
control keycode 36 = Control_j
shift control keycode 36 = F106
control alt keycode 36 = Meta_Control_j
shift control alt keycode 36 = Meta_Control_j
ctrlr keycode 36 = onesuperior
shift ctrlr keycode 36 = onesuperior
keycode 37 = +k VoidSymbol
shift keycode 37 = +K
alt keycode 37 = Meta_k
shift alt keycode 37 = Meta_K
control keycode 37 = Control_k
shift control keycode 37 = F107
control alt keycode 37 = Meta_Control_k
shift control alt keycode 37 = Meta_Control_k
ctrlr keycode 37 = twosuperior
shift ctrlr keycode 37 = twosuperior
keycode 38 = +l VoidSymbol
shift keycode 38 = +L
alt keycode 38 = Meta_l
shift alt keycode 38 = Meta_L
control keycode 38 = Control_l
shift control keycode 38 = F108
control alt keycode 38 = Meta_Control_l
shift control alt keycode 38 = Meta_Control_l
ctrlr keycode 38 = threesuperior
shift ctrlr keycode 38 = threesuperior
keycode 39 = semicolon VoidSymbol
shift keycode 39 = colon
alt keycode 39 = Meta_semicolon
shift alt keycode 39 = Meta_colon
ctrlr keycode 39 = periodcentered
shift ctrlr keycode 39 = periodcentered
keycode 40 = apostrophe VoidSymbol
shift keycode 40 = quotedbl
alt keycode 40 = Meta_apostrophe
shift alt keycode 40 = Meta_quotedbl
ctrlr keycode 40 = dead_acute
shift ctrlr keycode 40 = dead_acute
keycode 41 = grave VoidSymbol
shift keycode 41 = asciitilde
alt keycode 41 = Meta_grave
shift alt keycode 41 = Meta_asciitilde
ctrlr keycode 41 = dead_grave
shift ctrlr keycode 41 = dead_grave
keycode 43 = backslash VoidSymbol
shift keycode 43 = bar
alt keycode 43 = Meta_backslash
shift alt keycode 43 = Meta_bar
control keycode 43 = Control_backslash
shift control keycode 43 = Control_backslash
control alt keycode 43 = Meta_Control_backslash
shift control alt keycode 43 = Meta_Control_backslash
ctrlr keycode 43 = brokenbar
shift ctrlr keycode 43 = brokenbar
keycode 44 = +z VoidSymbol
shift keycode 44 = +Z
alt keycode 44 = Meta_z
shift alt keycode 44 = Meta_Z
control keycode 44 = Control_z
shift control keycode 44 = F122
control alt keycode 44 = Meta_Control_z
shift control alt keycode 44 = Meta_Control_z
keycode 45 = +x VoidSymbol
shift keycode 45 = +X
alt keycode 45 = Meta_x
shift alt keycode 45 = Meta_X
control keycode 45 = Control_x
shift control keycode 45 = F120
control alt keycode 45 = Meta_Control_x
shift control alt keycode 45 = Meta_Control_x
ctrlr keycode 45 = multiplication
shift ctrlr keycode 45 = multiplication
keycode 46 = +c VoidSymbol
shift keycode 46 = +C
alt keycode 46 = Meta_c
shift alt keycode 46 = Meta_C
control keycode 46 = Control_c
shift control keycode 46 = F99
control alt keycode 46 = Meta_Control_c
shift control alt keycode 46 = Meta_Control_c
ctrlr keycode 46 = copyright
shift ctrlr keycode 46 = copyright
alt ctrlr keycode 46 = Hex_C
shift alt ctrlr keycode 46 = Hex_C
keycode 47 = +v VoidSymbol
shift keycode 47 = +V
alt keycode 47 = Meta_v
shift alt keycode 47 = Meta_V
control keycode 47 = Control_v
shift control keycode 47 = F118
control alt keycode 47 = Meta_Control_v
shift control alt keycode 47 = Meta_Control_v
keycode 48 = +b VoidSymbol
shift keycode 48 = +B
alt keycode 48 = Meta_b
shift alt keycode 48 = Meta_B
control keycode 48 = Control_b
shift control keycode 48 = F98
control alt keycode 48 = Meta_Control_b
shift control alt keycode 48 = Meta_Control_b
alt ctrlr keycode 48 = Hex_B
shift alt ctrlr keycode 48 = Hex_B
keycode 49 = +n VoidSymbol
shift keycode 49 = +N
alt keycode 49 = Meta_n
shift alt keycode 49 = Meta_N
control keycode 49 = Control_n
shift control keycode 49 = F110
control alt keycode 49 = Meta_Control_n
shift control alt keycode 49 = Meta_Control_n
keycode 50 = +m VoidSymbol
shift keycode 50 = +M
alt keycode 50 = Meta_m
shift alt keycode 50 = Meta_M
control keycode 50 = Control_m
shift control keycode 50 = F109
control alt keycode 50 = Meta_Control_m
shift control alt keycode 50 = Meta_Control_m
keycode 51 = comma VoidSymbol
shift keycode 51 = less
alt keycode 51 = Meta_comma
shift alt keycode 51 = Meta_less
ctrlr keycode 51 = guillemotleft
shift ctrlr keycode 51 = guillemotleft
keycode 52 = period VoidSymbol
shift keycode 52 = greater
alt keycode 52 = Meta_period
shift alt keycode 52 = Meta_greater
ctrlr keycode 52 = guillemotright
shift ctrlr keycode 52 = guillemotright
keycode 53 = slash VoidSymbol
shift keycode 53 = question
alt keycode 53 = Meta_slash
shift alt keycode 53 = Meta_question
ctrlr keycode 53 = questiondown
shift ctrlr keycode 53 = questiondown
keycode 57 = space VoidSymbol
shift keycode 57 = space
alt keycode 57 = Meta_space
shift alt keycode 57 = Meta_space
control keycode 57 = nul
shift control keycode 57 = nul
control alt keycode 57 = Meta_nul
shift control alt keycode 57 = Meta_nul
ctrlr keycode 57 = nobreakspace
shift ctrlr keycode 57 = nobreakspace
keycode 71 = KP_7 VoidSymbol
shift keycode 71 = KP_7
alt keycode 71 = Ascii_7
shift alt keycode 71 = Ascii_7
alt ctrlr keycode 71 = Ascii_7
shift alt ctrlr keycode 71 = Ascii_7
keycode 72 = KP_8 VoidSymbol
shift keycode 72 = KP_8
alt keycode 72 = Ascii_8
shift alt keycode 72 = Ascii_8
alt ctrlr keycode 72 = Ascii_8
shift alt ctrlr keycode 72 = Ascii_8
keycode 73 = KP_9 VoidSymbol
shift keycode 73 = KP_9
alt keycode 73 = Ascii_9
shift alt keycode 73 = Ascii_9
alt ctrlr keycode 73 = Ascii_9
shift alt ctrlr keycode 73 = Ascii_9
keycode 74 = KP_Subtract KP_Subtract
keycode 75 = KP_4 VoidSymbol
shift keycode 75 = KP_4
alt keycode 75 = Ascii_4
shift alt keycode 75 = Ascii_4
alt ctrlr keycode 75 = Ascii_4
shift alt ctrlr keycode 75 = Ascii_4
keycode 76 = KP_5 VoidSymbol
shift keycode 76 = KP_5
alt keycode 76 = Ascii_5
shift alt keycode 76 = Ascii_5
alt ctrlr keycode 76 = Ascii_5
shift alt ctrlr keycode 76 = Ascii_5
keycode 77 = KP_6 VoidSymbol
shift keycode 77 = KP_6
alt keycode 77 = Ascii_6
shift alt keycode 77 = Ascii_6
alt ctrlr keycode 77 = Ascii_6
shift alt ctrlr keycode 77 = Ascii_6
keycode 78 = KP_Add KP_Add
keycode 79 = KP_1 VoidSymbol
shift keycode 79 = KP_1
alt keycode 79 = Ascii_1
shift alt keycode 79 = Ascii_1
alt ctrlr keycode 79 = Ascii_1
shift alt ctrlr keycode 79 = Ascii_1
keycode 80 = KP_2 VoidSymbol
shift keycode 80 = KP_2
alt keycode 80 = Ascii_2
shift alt keycode 80 = Ascii_2
alt ctrlr keycode 80 = Ascii_2
shift alt ctrlr keycode 80 = Ascii_2
keycode 81 = KP_3 VoidSymbol
shift keycode 81 = KP_3
alt keycode 81 = Ascii_3
shift alt keycode 81 = Ascii_3
alt ctrlr keycode 81 = Ascii_3
shift alt ctrlr keycode 81 = Ascii_3
keycode 82 = KP_0 VoidSymbol
shift keycode 82 = KP_0
alt keycode 82 = Ascii_0
shift alt keycode 82 = Ascii_0
alt ctrlr keycode 82 = Ascii_0
shift alt ctrlr keycode 82 = Ascii_0
keycode 83 = KP_Period KP_Period
keycode 96 = KP_Enter KP_Enter
keycode 98 = KP_Divide KP_Divide
keycode 55 = KP_Multiply KP_Multiply
keycode 118 = KP_MinPlus KP_MinPlus
# Modifiers.
keycode 42 = Shift
keycode 54 = Shift
keycode 56 = Alt
keycode 100 = Alt
keycode 58 = CtrlR
keycode 29 = Control
keycode 97 = Control
# Everyone needs a compose key. This is C-..
control keycode 52 = Compose
keycode 69 = Num_Lock Num_Lock
keycode 70 = Scroll_Lock
shift keycode 70 = Show_Memory
control keycode 70 = Show_State
alt keycode 70 = Show_Registers
# SysRq. I suppose there's some reason it's ^\.
keycode 99 = Control_backslash Control_backslash
keycode 119 = Pause Pause
# Ctrl-Break seems to have low-level hardware behind it.
keycode 101 = Break Break
keycode 102 = Find Find
control keycode 102 = F123
keycode 110 = Insert Insert
control keycode 110 = F124
keycode 111 = Remove Remove
control keycode 111 = F125
keycode 107 = Select Select
control keycode 107 = F126
keycode 104 = Prior Scroll_Backward
control keycode 104 = F127
keycode 109 = Next Scroll_Forward
control keycode 109 = F128
keycode 103 = Up Up
keycode 105 = Left Left
alt keycode 105 = Decr_Console
keycode 106 = Right Right
alt keycode 106 = Incr_Console
keycode 108 = Down Down
control alt keycode 83 = Boot
control alt keycode 111 = Boot
# Stock VT102 string definitions.
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"
# Stock ISO-8859-1 compositions.
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 '�'
# ISO-8859-3 compositions for Esperanto.
compose 'C' 'x' to '�' #198
compose 'G' 'x' to '�' #216
compose 'H' 'x' to '�' #166
compose 'J' 'x' to '�' #172
compose 'S' 'x' to '�' #222
compose 'U' 'x' to '�' #221
compose 'c' 'x' to '�' #230
compose 'g' 'x' to '�' #248
compose 'h' 'x' to '�' #182
compose 'j' 'x' to '�' #188
compose 's' 'x' to '�' #254
compose 'u' 'x' to '�' #253
# Shift-Control Function-Keys String-Definitions.
string F97 = "\033[97;6u"
string F98 = "\033[98;6u"
string F99 = "\033[99;6u"
string F100 = "\033[100;6u"
string F101 = "\033[101;6u"
string F102 = "\033[102;6u"
string F103 = "\033[103;6u"
string F104 = "\033[104;6u"
string F105 = "\033[105;6u"
string F106 = "\033[106;6u"
string F107 = "\033[107;6u"
string F108 = "\033[108;6u"
string F109 = "\033[109;6u"
string F110 = "\033[110;6u"
string F111 = "\033[111;6u"
string F112 = "\033[112;6u"
string F113 = "\033[113;6u"
string F114 = "\033[114;6u"
string F115 = "\033[115;6u"
string F116 = "\033[116;6u"
string F117 = "\033[117;6u"
string F118 = "\033[118;6u"
string F119 = "\033[119;6u"
string F120 = "\033[120;6u"
string F121 = "\033[121;6u"
string F122 = "\033[122;6u"
string F123 = "\033[1;5~"
string F124 = "\033[2;5~"
string F125 = "\033[3;5~"
string F126 = "\033[4;5~"
string F127 = "\033[5;5~"
string F128 = "\033[6;5~"
# UK layout definitions.
# old: shift keycode 41 = asciitilde
# bam: shift keycode 41 = notsign
keycode 1 = Escape
keycode 2 = one exclam
keycode 3 = two quotedbl at nul
keycode 4 = three sterling
control keycode 4 = Escape
keycode 5 = four dollar dollar Control_backslash
keycode 6 = five percent
control keycode 6 = Control_bracketright
keycode 7 = six asciicircum
control keycode 7 = Control_asciicircum
keycode 8 = seven ampersand braceleft Control_underscore
keycode 9 = eight asterisk bracketleft Delete
keycode 10 = nine parenleft bracketright
keycode 11 = zero parenright braceright
# alt keycode 11 = Meta_parenright
keycode 12 = minus underscore backslash Control_underscore
keycode 13 = equal plus
keycode 14 = Delete
control keycode 14 = Control_underscore
keycode 15 = Tab
shift keycode 15 = Meta_Tab
keycode 26 = bracketleft braceleft
control keycode 26 = Escape
keycode 27 = bracketright braceright asciitilde Control_bracketright
keycode 28 = Return
alt keycode 28 = Meta_Control_m
keycode 29 = Control
keycode 39 = semicolon colon
keycode 40 = apostrophe at
control keycode 40 = Control_g
shift control keycode 40 = nul
keycode 41 = grave notsign bar nul
keycode 42 = Shift
keycode 43 = numbersign asciitilde
control keycode 43 = Control_backslash
keycode 51 = comma less
keycode 52 = period greater
keycode 53 = slash question
control keycode 53 = Delete
keycode 54 = Shift
keycode 56 = Alt
keycode 57 = space
control keycode 57 = nul
keycode 58 = Caps_Lock
keycode 86 = backslash bar bar Control_backslash
keycode 97 = Control
!#/bin/bash
# MaKe KeyMap FixTerms United Kingdom
m4 /usr/share/kbd/keymaps/i386/qwerty/hypermap.m4 | awk -v FS='[_ ]' 'BEGIN{for(n=0;n<128;n++)a[sprintf("%c",n)]=n}{if($0~/^shift\t.+ Control_.$/){print $1" "$2" = F"a[$5]} else{print $0}}' > keymap
{echo "\n# Shift-Control Function-Keys String-Definitions."; for c in {a..z}; do printf 'string F%d = "\\033[%d;6u"\n' "'$c" "'$c"; done} >> keymap
{echo "\n# UK layout definitions."; zgrep = /usr/share/kbd/keymaps/i386/qwerty/uk.map.gz} >> keymap
awk -v FS='[ "^]+' 'BEGIN{for(n=0;n<128;n++)a[sprintf("%c",n)]=n}{if($0~/"\^[A-Z]"/){print $1"\t\"^[["a[$2]+2**5";6u\"\t"$3}else{print $0}}' .bashrc > bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment