Freelance Projects

Upeksha Wisidagama

Map Control Key to Caps Lock Key in Ubuntu X Server

Create a file named .Xmodmap in your home directory with the following code. Of course you can create this file anywhere with any name, but in order to be parsed by Xmodmap upon starting X-server you need to place this in your home directory in a file named .Xmodemap.

‘Control Key to Caps Lock (~/.Xmodmap)’
1
2
3
4
5
6
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

Run xmodmap ~/.Xmodmap to load the new configuration.

The above code and steps will swap left control key and caps lock keys.

xmodmap

The xmodmap program is used to edit and display the keyboard modifier map and keymap table that are used by client applications to convert event keycodes into keysyms. It is usually run from the user’s session startup script to configure the keyboard according to personal tastes. - man xmodmap

Xmodmap KeyCodes and KeySyms

There are 8 KeySyms per KeyCode; KeyCodes range from 8 to 255. Run xmodmap -pk to see them.

Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation.

‘KeyCodes and KeySyms’
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
    KeyCode  Keysym (Keysym)   ...
    Value     Value   (Name)    ...

      8
      9       0xff1b (Escape)   0x0000 (NoSymbol) 0xff1b (Escape)
     10       0x0031 (1)    0x0021 (exclam)   0x0031 (1)    0x0021 (exclam)
     11       0x0032 (2)    0x0040 (at)   0x0032 (2)    0x0040 (at)
     12       0x0033 (3)    0x0023 (numbersign)   0x0033 (3)    0x0023 (numbersign)
     13       0x0034 (4)    0x0024 (dollar)   0x0034 (4)    0x0024 (dollar)
     14       0x0035 (5)    0x0025 (percent)  0x0035 (5)    0x0025 (percent)
     15       0x0036 (6)    0x005e (asciicircum)  0x0036 (6)    0x005e (asciicircum)
     16       0x0037 (7)    0x0026 (ampersand)    0x0037 (7)    0x0026 (ampersand)
     17       0x0038 (8)    0x002a (asterisk) 0x0038 (8)    0x002a (asterisk)
     18       0x0039 (9)    0x0028 (parenleft)    0x0039 (9)    0x0028 (parenleft)
     19       0x0030 (0)    0x0029 (parenright)   0x0030 (0)    0x0029 (parenright)
     20       0x002d (minus)    0x005f (underscore)   0x002d (minus)    0x005f (underscore)
     21       0x003d (equal)    0x002b (plus) 0x003d (equal)    0x002b (plus)
     22       0xff08 (BackSpace)    0xff08 (BackSpace)    0xff08 (BackSpace)    0xff08 (BackSpace)
     23       0xff09 (Tab)  0xfe20 (ISO_Left_Tab) 0xff09 (Tab)  0xfe20 (ISO_Left_Tab)
     24       0x0071 (q)    0x0051 (Q)    0x0071 (q)    0x0051 (Q)
     25       0x0077 (w)    0x0057 (W)    0x0077 (w)    0x0057 (W)
     26       0x0065 (e)    0x0045 (E)    0x0065 (e)    0x0045 (E)
     27       0x0072 (r)    0x0052 (R)    0x0072 (r)    0x0052 (R)
     28       0x0074 (t)    0x0054 (T)    0x0074 (t)    0x0054 (T)
     29       0x0079 (y)    0x0059 (Y)    0x0079 (y)    0x0059 (Y)
     30       0x0075 (u)    0x0055 (U)    0x0075 (u)    0x0055 (U)
     31       0x0069 (i)    0x0049 (I)    0x0069 (i)    0x0049 (I)
     32       0x006f (o)    0x004f (O)    0x006f (o)    0x004f (O)
     33       0x0070 (p)    0x0050 (P)    0x0070 (p)    0x0050 (P)
     34       0x005b (bracketleft)  0x007b (braceleft)    0x005b (bracketleft)  0x007b (braceleft)
     35       0x005d (bracketright) 0x007d (braceright)   0x005d (bracketright) 0x007d (braceright)
     36       0xff0d (Return)   0x0000 (NoSymbol) 0xff0d (Return)
     37       0xffe5 (Caps_Lock)    0x0000 (NoSymbol) 0xffe5 (Caps_Lock)
     38       0x0061 (a)    0x0041 (A)    0x0061 (a)    0x0041 (A)
     39       0x0073 (s)    0x0053 (S)    0x0073 (s)    0x0053 (S)
     40       0x0064 (d)    0x0044 (D)    0x0064 (d)    0x0044 (D)
     41       0x0066 (f)    0x0046 (F)    0x0066 (f)    0x0046 (F)
     42       0x0067 (g)    0x0047 (G)    0x0067 (g)    0x0047 (G)
     43       0x0068 (h)    0x0048 (H)    0x0068 (h)    0x0048 (H)
     44       0x006a (j)    0x004a (J)    0x006a (j)    0x004a (J)
     45       0x006b (k)    0x004b (K)    0x006b (k)    0x004b (K)
     46       0x006c (l)    0x004c (L)    0x006c (l)    0x004c (L)
     47       0x003b (semicolon)    0x003a (colon)    0x003b (semicolon)    0x003a (colon)
     48       0x0027 (apostrophe)   0x0022 (quotedbl) 0x0027 (apostrophe)   0x0022 (quotedbl)
     49       0x0060 (grave)    0x007e (asciitilde)   0x0060 (grave)    0x007e (asciitilde)
     50       0xffe1 (Shift_L)  0x0000 (NoSymbol) 0xffe1 (Shift_L)
     51       0x005c (backslash)    0x007c (bar)  0x005c (backslash)    0x007c (bar)
     52       0x007a (z)    0x005a (Z)    0x007a (z)    0x005a (Z)
     53       0x0078 (x)    0x0058 (X)    0x0078 (x)    0x0058 (X)
     54       0x0063 (c)    0x0043 (C)    0x0063 (c)    0x0043 (C)
     55       0x0076 (v)    0x0056 (V)    0x0076 (v)    0x0056 (V)
     56       0x0062 (b)    0x0042 (B)    0x0062 (b)    0x0042 (B)
     57       0x006e (n)    0x004e (N)    0x006e (n)    0x004e (N)
     58       0x006d (m)    0x004d (M)    0x006d (m)    0x004d (M)
     59       0x002c (comma)    0x003c (less) 0x002c (comma)    0x003c (less)
     60       0x002e (period)   0x003e (greater)  0x002e (period)   0x003e (greater)
     61       0x002f (slash)    0x003f (question) 0x002f (slash)    0x003f (question)
     62       0xffe2 (Shift_R)  0x0000 (NoSymbol) 0xffe2 (Shift_R)
     63       0xffaa (KP_Multiply)  0xffaa (KP_Multiply)  0xffaa (KP_Multiply)  0xffaa (KP_Multiply)  0xffaa (KP_Multiply)  0xffaa (KP_Multiply)  0x1008fe21 (XF86ClearGrab)
     64       0xffe9 (Alt_L)    0xffe7 (Meta_L)   0xffe9 (Alt_L)    0xffe7 (Meta_L)
     65       0x0020 (space)    0x0000 (NoSymbol) 0x0020 (space)
     66       0xffe3 (Control_L)    0x0000 (NoSymbol) 0xffe3 (Control_L)
     67       0xffbe (F1)   0xffbe (F1)   0xffbe (F1)   0xffbe (F1)   0xffbe (F1)   0xffbe (F1)   0x1008fe01 (XF86Switch_VT_1)
     68       0xffbf (F2)   0xffbf (F2)   0xffbf (F2)   0xffbf (F2)   0xffbf (F2)   0xffbf (F2)   0x1008fe02 (XF86Switch_VT_2)
     69       0xffc0 (F3)   0xffc0 (F3)   0xffc0 (F3)   0xffc0 (F3)   0xffc0 (F3)   0xffc0 (F3)   0x1008fe03 (XF86Switch_VT_3)
     70       0xffc1 (F4)   0xffc1 (F4)   0xffc1 (F4)   0xffc1 (F4)   0xffc1 (F4)   0xffc1 (F4)   0x1008fe04 (XF86Switch_VT_4)
     71       0xffc2 (F5)   0xffc2 (F5)   0xffc2 (F5)   0xffc2 (F5)   0xffc2 (F5)   0xffc2 (F5)   0x1008fe05 (XF86Switch_VT_5)
     72       0xffc3 (F6)   0xffc3 (F6)   0xffc3 (F6)   0xffc3 (F6)   0xffc3 (F6)   0xffc3 (F6)   0x1008fe06 (XF86Switch_VT_6)
     73       0xffc4 (F7)   0xffc4 (F7)   0xffc4 (F7)   0xffc4 (F7)   0xffc4 (F7)   0xffc4 (F7)   0x1008fe07 (XF86Switch_VT_7)
     74       0xffc5 (F8)   0xffc5 (F8)   0xffc5 (F8)   0xffc5 (F8)   0xffc5 (F8)   0xffc5 (F8)   0x1008fe08 (XF86Switch_VT_8)
     75       0xffc6 (F9)   0xffc6 (F9)   0xffc6 (F9)   0xffc6 (F9)   0xffc6 (F9)   0xffc6 (F9)   0x1008fe09 (XF86Switch_VT_9)
     76       0xffc7 (F10)  0xffc7 (F10)  0xffc7 (F10)  0xffc7 (F10)  0xffc7 (F10)  0xffc7 (F10)  0x1008fe0a (XF86Switch_VT_10)
     77       0xff7f (Num_Lock) 0x0000 (NoSymbol) 0xff7f (Num_Lock)
     78       0xff14 (Scroll_Lock)  0x0000 (NoSymbol) 0xff14 (Scroll_Lock)
     79       0xff95 (KP_Home)  0xffb7 (KP_7) 0xff95 (KP_Home)  0xffb7 (KP_7)
     80       0xff97 (KP_Up)    0xffb8 (KP_8) 0xff97 (KP_Up)    0xffb8 (KP_8)
     81       0xff9a (KP_Prior) 0xffb9 (KP_9) 0xff9a (KP_Prior) 0xffb9 (KP_9)
     82       0xffad (KP_Subtract)  0xffad (KP_Subtract)  0xffad (KP_Subtract)  0xffad (KP_Subtract)  0xffad (KP_Subtract)  0xffad (KP_Subtract)  0x1008fe23 (XF86Prev_VMode)
     83       0xff96 (KP_Left)  0xffb4 (KP_4) 0xff96 (KP_Left)  0xffb4 (KP_4)
     84       0xff9d (KP_Begin) 0xffb5 (KP_5) 0xff9d (KP_Begin) 0xffb5 (KP_5)
     85       0xff98 (KP_Right) 0xffb6 (KP_6) 0xff98 (KP_Right) 0xffb6 (KP_6)
     86       0xffab (KP_Add)   0xffab (KP_Add)   0xffab (KP_Add)   0xffab (KP_Add)   0xffab (KP_Add)   0xffab (KP_Add)   0x1008fe22 (XF86Next_VMode)
     87       0xff9c (KP_End)   0xffb1 (KP_1) 0xff9c (KP_End)   0xffb1 (KP_1)
     88       0xff99 (KP_Down)  0xffb2 (KP_2) 0xff99 (KP_Down)  0xffb2 (KP_2)
     89       0xff9b (KP_Next)  0xffb3 (KP_3) 0xff9b (KP_Next)  0xffb3 (KP_3)
     90       0xff9e (KP_Insert)    0xffb0 (KP_0) 0xff9e (KP_Insert)    0xffb0 (KP_0)
     91       0xff9f (KP_Delete)    0xffae (KP_Decimal)   0xff9f (KP_Delete)    0xffae (KP_Decimal)
     92       0xfe03 (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
     93
     94       0x003c (less) 0x003e (greater)  0x003c (less) 0x003e (greater)  0x007c (bar)  0x00a6 (brokenbar)    0x007c (bar)
     95       0xffc8 (F11)  0xffc8 (F11)  0xffc8 (F11)  0xffc8 (F11)  0xffc8 (F11)  0xffc8 (F11)  0x1008fe0b (XF86Switch_VT_11)
     96       0xffc9 (F12)  0xffc9 (F12)  0xffc9 (F12)  0xffc9 (F12)  0xffc9 (F12)  0xffc9 (F12)  0x1008fe0c (XF86Switch_VT_12)
     97
     98       0xff26 (Katakana) 0x0000 (NoSymbol) 0xff26 (Katakana)
     99       0xff25 (Hiragana) 0x0000 (NoSymbol) 0xff25 (Hiragana)
    100       0xff23 (Henkan_Mode)  0x0000 (NoSymbol) 0xff23 (Henkan_Mode)
    101       0xff27 (Hiragana_Katakana)    0x0000 (NoSymbol) 0xff27 (Hiragana_Katakana)
    102       0xff22 (Muhenkan) 0x0000 (NoSymbol) 0xff22 (Muhenkan)
    103
    104       0xff8d (KP_Enter) 0x0000 (NoSymbol) 0xff8d (KP_Enter)
    105       0xffe4 (Control_R)    0x0000 (NoSymbol) 0xffe4 (Control_R)
    106       0xffaf (KP_Divide)    0xffaf (KP_Divide)    0xffaf (KP_Divide)    0xffaf (KP_Divide)    0xffaf (KP_Divide)    0xffaf (KP_Divide)    0x1008fe20 (XF86Ungrab)
    107       0xff61 (Print)    0xff15 (Sys_Req)  0xff61 (Print)    0xff15 (Sys_Req)
    108       0xffea (Alt_R)    0xffe8 (Meta_R)   0xffea (Alt_R)    0xffe8 (Meta_R)
    109       0xff0a (Linefeed) 0x0000 (NoSymbol) 0xff0a (Linefeed)
    110       0xff50 (Home) 0x0000 (NoSymbol) 0xff50 (Home)
    111       0xff52 (Up)   0x0000 (NoSymbol) 0xff52 (Up)
    112       0xff55 (Prior)    0x0000 (NoSymbol) 0xff55 (Prior)
    113       0xff51 (Left) 0x0000 (NoSymbol) 0xff51 (Left)
    114       0xff53 (Right)    0x0000 (NoSymbol) 0xff53 (Right)
    115       0xff57 (End)  0x0000 (NoSymbol) 0xff57 (End)
    116       0xff54 (Down) 0x0000 (NoSymbol) 0xff54 (Down)
    117       0xff56 (Next) 0x0000 (NoSymbol) 0xff56 (Next)
    118       0xff63 (Insert)   0x0000 (NoSymbol) 0xff63 (Insert)
    119       0xffff (Delete)   0x0000 (NoSymbol) 0xffff (Delete)
    120
    121       0x1008ff12 (XF86AudioMute)    0x0000 (NoSymbol) 0x1008ff12 (XF86AudioMute)
    122       0x1008ff11 (XF86AudioLowerVolume) 0x0000 (NoSymbol) 0x1008ff11 (XF86AudioLowerVolume)
    123       0x1008ff13 (XF86AudioRaiseVolume) 0x0000 (NoSymbol) 0x1008ff13 (XF86AudioRaiseVolume)
    124       0x1008ff2a (XF86PowerOff) 0x0000 (NoSymbol) 0x1008ff2a (XF86PowerOff)
    125       0xffbd (KP_Equal) 0x0000 (NoSymbol) 0xffbd (KP_Equal)
    126       0x00b1 (plusminus)    0x0000 (NoSymbol) 0x00b1 (plusminus)
    127       0xff13 (Pause)    0xff6b (Break)    0xff13 (Pause)    0xff6b (Break)
    128       0x1008ff4a (XF86LaunchA)  0x0000 (NoSymbol) 0x1008ff4a (XF86LaunchA)
    129       0xffae (KP_Decimal)   0xffae (KP_Decimal)   0xffae (KP_Decimal)   0xffae (KP_Decimal)
    130       0xff31 (Hangul)   0x0000 (NoSymbol) 0xff31 (Hangul)
    131       0xff34 (Hangul_Hanja) 0x0000 (NoSymbol) 0xff34 (Hangul_Hanja)
    132
    133       0xffeb (Super_L)  0x0000 (NoSymbol) 0xffeb (Super_L)
    134       0xffec (Super_R)  0x0000 (NoSymbol) 0xffec (Super_R)
    135       0xff67 (Menu) 0x0000 (NoSymbol) 0xff67 (Menu)
    136       0xff69 (Cancel)   0x0000 (NoSymbol) 0xff69 (Cancel)
    137       0xff66 (Redo) 0x0000 (NoSymbol) 0xff66 (Redo)
    138       0x1005ff70 (SunProps) 0x0000 (NoSymbol) 0x1005ff70 (SunProps)
    139       0xff65 (Undo) 0x0000 (NoSymbol) 0xff65 (Undo)
    140       0x1005ff71 (SunFront) 0x0000 (NoSymbol) 0x1005ff71 (SunFront)
    141       0x1008ff57 (XF86Copy) 0x0000 (NoSymbol) 0x1008ff57 (XF86Copy)
    142       0x1005ff73 (SunOpen)  0x0000 (NoSymbol) 0x1005ff73 (SunOpen)
    143       0x1008ff6d (XF86Paste)    0x0000 (NoSymbol) 0x1008ff6d (XF86Paste)
    144       0xff68 (Find) 0x0000 (NoSymbol) 0xff68 (Find)
    145       0x1008ff58 (XF86Cut)  0x0000 (NoSymbol) 0x1008ff58 (XF86Cut)
    146       0xff6a (Help) 0x0000 (NoSymbol) 0xff6a (Help)
    147       0x1008ff65 (XF86MenuKB)   0x0000 (NoSymbol) 0x1008ff65 (XF86MenuKB)
    148       0x1008ff1d (XF86Calculator)   0x0000 (NoSymbol) 0x1008ff1d (XF86Calculator)
    149
    150       0x1008ff2f (XF86Sleep)    0x0000 (NoSymbol) 0x1008ff2f (XF86Sleep)
    151       0x1008ff2b (XF86WakeUp)   0x0000 (NoSymbol) 0x1008ff2b (XF86WakeUp)
    152       0x1008ff5d (XF86Explorer) 0x0000 (NoSymbol) 0x1008ff5d (XF86Explorer)
    153       0x1008ff7b (XF86Send) 0x0000 (NoSymbol) 0x1008ff7b (XF86Send)
    154
    155       0x1008ff8a (XF86Xfer) 0x0000 (NoSymbol) 0x1008ff8a (XF86Xfer)
    156       0x1008ff41 (XF86Launch1)  0x0000 (NoSymbol) 0x1008ff41 (XF86Launch1)
    157       0x1008ff42 (XF86Launch2)  0x0000 (NoSymbol) 0x1008ff42 (XF86Launch2)
    158       0x1008ff2e (XF86WWW)  0x0000 (NoSymbol) 0x1008ff2e (XF86WWW)
    159       0x1008ff5a (XF86DOS)  0x0000 (NoSymbol) 0x1008ff5a (XF86DOS)
    160       0x1008ff2d (XF86ScreenSaver)  0x0000 (NoSymbol) 0x1008ff2d (XF86ScreenSaver)
    161
    162       0x1008ff74 (XF86RotateWindows)    0x0000 (NoSymbol) 0x1008ff74 (XF86RotateWindows)
    163       0x1008ff19 (XF86Mail) 0x0000 (NoSymbol) 0x1008ff19 (XF86Mail)
    164       0x1008ff30 (XF86Favorites)    0x0000 (NoSymbol) 0x1008ff30 (XF86Favorites)
    165       0x1008ff33 (XF86MyComputer)   0x0000 (NoSymbol) 0x1008ff33 (XF86MyComputer)
    166       0x1008ff26 (XF86Back) 0x0000 (NoSymbol) 0x1008ff26 (XF86Back)
    167       0x1008ff27 (XF86Forward)  0x0000 (NoSymbol) 0x1008ff27 (XF86Forward)
    168
    169       0x1008ff2c (XF86Eject)    0x0000 (NoSymbol) 0x1008ff2c (XF86Eject)
    170       0x1008ff2c (XF86Eject)    0x1008ff2c (XF86Eject)    0x1008ff2c (XF86Eject)    0x1008ff2c (XF86Eject)
    171       0x1008ff17 (XF86AudioNext)    0x0000 (NoSymbol) 0x1008ff17 (XF86AudioNext)
    172       0x1008ff14 (XF86AudioPlay)    0x1008ff31 (XF86AudioPause)   0x1008ff14 (XF86AudioPlay)    0x1008ff31 (XF86AudioPause)
    173       0x1008ff16 (XF86AudioPrev)    0x0000 (NoSymbol) 0x1008ff16 (XF86AudioPrev)
    174       0x1008ff15 (XF86AudioStop)    0x1008ff2c (XF86Eject)    0x1008ff15 (XF86AudioStop)    0x1008ff2c (XF86Eject)
    175       0x1008ff1c (XF86AudioRecord)  0x0000 (NoSymbol) 0x1008ff1c (XF86AudioRecord)
    176       0x1008ff3e (XF86AudioRewind)  0x0000 (NoSymbol) 0x1008ff3e (XF86AudioRewind)
    177       0x1008ff6e (XF86Phone)    0x0000 (NoSymbol) 0x1008ff6e (XF86Phone)
    178
    179       0x1008ff81 (XF86Tools)    0x0000 (NoSymbol) 0x1008ff81 (XF86Tools)
    180       0x1008ff18 (XF86HomePage) 0x0000 (NoSymbol) 0x1008ff18 (XF86HomePage)
    181       0x1008ff73 (XF86Reload)   0x0000 (NoSymbol) 0x1008ff73 (XF86Reload)
    182       0x1008ff56 (XF86Close)    0x0000 (NoSymbol) 0x1008ff56 (XF86Close)
    183
    184
    185       0x1008ff78 (XF86ScrollUp) 0x0000 (NoSymbol) 0x1008ff78 (XF86ScrollUp)
    186       0x1008ff79 (XF86ScrollDown)   0x0000 (NoSymbol) 0x1008ff79 (XF86ScrollDown)
    187       0x0028 (parenleft)    0x0000 (NoSymbol) 0x0028 (parenleft)
    188       0x0029 (parenright)   0x0000 (NoSymbol) 0x0029 (parenright)
    189       0x1008ff68 (XF86New)  0x0000 (NoSymbol) 0x1008ff68 (XF86New)
    190       0xff66 (Redo) 0x0000 (NoSymbol) 0xff66 (Redo)
    191       0x1008ff81 (XF86Tools)    0x0000 (NoSymbol) 0x1008ff81 (XF86Tools)
    192       0x1008ff45 (XF86Launch5)  0x0000 (NoSymbol) 0x1008ff45 (XF86Launch5)
    193       0x1008ff46 (XF86Launch6)  0x0000 (NoSymbol) 0x1008ff46 (XF86Launch6)
    194       0x1008ff47 (XF86Launch7)  0x0000 (NoSymbol) 0x1008ff47 (XF86Launch7)
    195       0x1008ff48 (XF86Launch8)  0x0000 (NoSymbol) 0x1008ff48 (XF86Launch8)
    196       0x1008ff49 (XF86Launch9)  0x0000 (NoSymbol) 0x1008ff49 (XF86Launch9)
    197
    198
    199       0x1008ffa9 (XF86TouchpadToggle)   0x0000 (NoSymbol) 0x1008ffa9 (XF86TouchpadToggle)
    200       0x1008ffb0 (XF86TouchpadOn)   0x0000 (NoSymbol) 0x1008ffb0 (XF86TouchpadOn)
    201       0x1008ffb1 (XF86TouchpadOff)  0x0000 (NoSymbol) 0x1008ffb1 (XF86TouchpadOff)
    202
    203       0xff7e (Mode_switch)  0x0000 (NoSymbol) 0xff7e (Mode_switch)
    204       0x0000 (NoSymbol) 0xffe9 (Alt_L)    0x0000 (NoSymbol) 0xffe9 (Alt_L)
    205       0x0000 (NoSymbol) 0xffe7 (Meta_L)   0x0000 (NoSymbol) 0xffe7 (Meta_L)
    206       0x0000 (NoSymbol) 0xffeb (Super_L)  0x0000 (NoSymbol) 0xffeb (Super_L)
    207       0x0000 (NoSymbol) 0xffed (Hyper_L)  0x0000 (NoSymbol) 0xffed (Hyper_L)
    208       0x1008ff14 (XF86AudioPlay)    0x0000 (NoSymbol) 0x1008ff14 (XF86AudioPlay)
    209       0x1008ff31 (XF86AudioPause)   0x0000 (NoSymbol) 0x1008ff31 (XF86AudioPause)
    210       0x1008ff43 (XF86Launch3)  0x0000 (NoSymbol) 0x1008ff43 (XF86Launch3)
    211       0x1008ff44 (XF86Launch4)  0x0000 (NoSymbol) 0x1008ff44 (XF86Launch4)
    212       0x1008ff4b (XF86LaunchB)  0x0000 (NoSymbol) 0x1008ff4b (XF86LaunchB)
    213       0x1008ffa7 (XF86Suspend)  0x0000 (NoSymbol) 0x1008ffa7 (XF86Suspend)
    214       0x1008ff56 (XF86Close)    0x0000 (NoSymbol) 0x1008ff56 (XF86Close)
    215       0x1008ff14 (XF86AudioPlay)    0x0000 (NoSymbol) 0x1008ff14 (XF86AudioPlay)
    216       0x1008ff97 (XF86AudioForward) 0x0000 (NoSymbol) 0x1008ff97 (XF86AudioForward)
    217
    218       0xff61 (Print)    0x0000 (NoSymbol) 0xff61 (Print)
    219
    220       0x1008ff8f (XF86WebCam)   0x0000 (NoSymbol) 0x1008ff8f (XF86WebCam)
    221
    222
    223       0x1008ff19 (XF86Mail) 0x0000 (NoSymbol) 0x1008ff19 (XF86Mail)
    224       0x1008ff8e (XF86Messenger)    0x0000 (NoSymbol) 0x1008ff8e (XF86Messenger)
    225       0x1008ff1b (XF86Search)   0x0000 (NoSymbol) 0x1008ff1b (XF86Search)
    226       0x1008ff5f (XF86Go)   0x0000 (NoSymbol) 0x1008ff5f (XF86Go)
    227       0x1008ff3c (XF86Finance)  0x0000 (NoSymbol) 0x1008ff3c (XF86Finance)
    228       0x1008ff5e (XF86Game) 0x0000 (NoSymbol) 0x1008ff5e (XF86Game)
    229       0x1008ff36 (XF86Shop) 0x0000 (NoSymbol) 0x1008ff36 (XF86Shop)
    230
    231       0xff69 (Cancel)   0x0000 (NoSymbol) 0xff69 (Cancel)
    232       0x1008ff03 (XF86MonBrightnessDown)    0x0000 (NoSymbol) 0x1008ff03 (XF86MonBrightnessDown)
    233       0x1008ff02 (XF86MonBrightnessUp)  0x0000 (NoSymbol) 0x1008ff02 (XF86MonBrightnessUp)
    234       0x1008ff32 (XF86AudioMedia)   0x0000 (NoSymbol) 0x1008ff32 (XF86AudioMedia)
    235       0x1008ff59 (XF86Display)  0x0000 (NoSymbol) 0x1008ff59 (XF86Display)
    236       0x1008ff04 (XF86KbdLightOnOff)    0x0000 (NoSymbol) 0x1008ff04 (XF86KbdLightOnOff)
    237       0x1008ff06 (XF86KbdBrightnessDown)    0x0000 (NoSymbol) 0x1008ff06 (XF86KbdBrightnessDown)
    238       0x1008ff05 (XF86KbdBrightnessUp)  0x0000 (NoSymbol) 0x1008ff05 (XF86KbdBrightnessUp)
    239       0x1008ff7b (XF86Send) 0x0000 (NoSymbol) 0x1008ff7b (XF86Send)
    240       0x1008ff72 (XF86Reply)    0x0000 (NoSymbol) 0x1008ff72 (XF86Reply)
    241       0x1008ff90 (XF86MailForward)  0x0000 (NoSymbol) 0x1008ff90 (XF86MailForward)
    242       0x1008ff77 (XF86Save) 0x0000 (NoSymbol) 0x1008ff77 (XF86Save)
    243       0x1008ff5b (XF86Documents)    0x0000 (NoSymbol) 0x1008ff5b (XF86Documents)
    244       0x1008ff93 (XF86Battery)  0x0000 (NoSymbol) 0x1008ff93 (XF86Battery)
    245       0x1008ff94 (XF86Bluetooth)    0x0000 (NoSymbol) 0x1008ff94 (XF86Bluetooth)
    246       0x1008ff95 (XF86WLAN) 0x0000 (NoSymbol) 0x1008ff95 (XF86WLAN)
    247
    248
    249
    250
    251
    252
    253
    254
    255

Understanding X Keymapping

1 Key
2 Shift+Key
3 mode_switch+Key
4 mode_switch+Shift+Key
5 AltGr+Key
6 AltGr+Shift+Key

Consider the Key code ‘26’. See above table for reference.

26 0x0065 (e) 0x0045 (E) 0x0065 (e) 0x0045 (E)

1 e
2 E
3 e
4 E
5

Can you see the patten? You can create a custom map of your taste and fetch it using xmodmap.

xmodmap ~/.Xmodmap

Examples

Add the followin to your .Xmodmap and source it using xmodmap ~/.Xmodmap.

pointer = 1 2 3 5 4 7 6 8 9 10 11 12

Note 5 and 4 are interchanged. Now scrolling direction is interchanged !

You can replace a with e using the following expression.

xmodmap -e “keysym a = e E”

Read the xmodmap manaul page for further information.

Determining KeyCodes with Xev

How do you find a keycode for a key? Use xev. You can use your currently unused keys by xmodmapping.

Xev creates a window and then asks the X server to send it events whenever anything happens to the window (such as it being moved, resized, typed in, clicked in, etc.). Prints contents of X events.

‘Determining KeyCodes with Xev’
1
2
3
4
5
6
KeyPress event, serial 33, synthetic NO, window 0x4000001,
    root 0x138, subw 0x0, time 442864, (102,98), root:(103,178),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

You can see the keycodes, currently assigned keysyms with xev.