This file is indexed.

/usr/share/games/spring/uikeys.txt is in spring-common 85.0+dfsg1-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
//
//  DEFAULT UIKEYS.TXT FOR SPRING
//  -----------------------------
//


//
//  Quick Notes:
//
//  1. The built-in default bindings are always loaded. If you wish
//     to override them, use the unbindall and unbind commands
//     to delete them at the beginning of your 'uikeys.txt'.
//
//  2. More then one action can be bound to a specific keyset. The
//     actions for any given keyset are tried in the order that they
//     were bound. The first currently available command that matches
//     an action is used.
//
//  3. As a slight modification to the above note, keysets that use
//     the 'Any' modifier are tried after those that do not use it.
//
//  4. A keyset using the Shift modifier should be bound with its
//     unshifted key  (ex: bind  "Shift+."  instead of  "Shift+>" )
//


//
//  Commands that can be used in this file:
//
//    unbindall
//    ---------
//    - removes all bindings, and adds "bind enter chat"
//      (one of the other unbind commands can get rid of that one)
//    - good for deleting the default bindings
//
//    keysym <name> <keycode>
//    -----------------------
//    - add a custom key symbol  (the default key symbols can not be overriden)
//    - name must start with a letter, and only contain letters, numbers, and '_'
//    - the <keycode> can be a currently recognized keysym
//      (ex:  "keysym menu 0x13F"  or  "keysym radar r")
//
//    keyset <name> <keyset>
//    ----------------------
//    - specifies a named keyset
//    - name must start with a letter, and only contain letters, numbers, and '_'
//    - named keysets may be accessed by prepending the '&' character to the name
//      (ex:  "keyset myKeySet Ctrl+x"  then  "bind &myKeySet myAction" )
//
//    fakemeta <keysym>
//    -----------------
//    - assign an auxiliary key for the Meta modifier ("space" is a good choice)
//    - use "fakemeta none" to disable this feature
//
//    bind <keyset> <action>
//    ----------------------
//    - appends the action to the keyset's list of actions
//    - the action can be just a command, or a command with arguments
//
//    unbind <keyset> <action>
//    ------------------------
//    - removes the action from the keyset's list of actions
//    - both the action and the keyset must match
//
//    unbindkeyset <keyset>
//    ---------------------
//    - removes all bindings that use the keyset
//
//    unbindaction <action>
//    ---------------------
//    - removes all bindings that use the action  (command that is, a misnomer)
//
//
//  * NOTE: These commands can also be run from the chat line in-game using
//          the slash command syntax  (/bind, /unbind, etc...)
//


//
//  Keyset Format:
//
//    A keyset is a combination of keys, the main key and its modifiers.
//
//    Here are some examples:
//
//      bind            a  fake_action
//      bind       Ctrl+a  fake_action
//      bind          C+a  fake_action
//      bind Ctrl+Shift+a  fake_action
//      bind          *+a  fake_action
//      bind   &my_keyset  fake_action
//
//    The format then goes like this:
//
//      [<Modifier>+]...[<Modifier>+]<keysym>
//
//        or
//
//      &<keyset_name>    (for named keysets)
//
//    The modifiers (and their abbreviations), are:
//
//      Any   (*)
//      Alt   (A)
//      Ctrl  (C)
//      Meta  (M)
//      Shift (S)
//
//    The special 'Any' modifier makes it so that the keyset matches
//    regardless of the current state of the real modifiers.
//
//    The known keysyms (key symbols), are listed at the end of this file.
//    If you want to use a key that is unknown to Spring, then you may use
//    the hexadecimal notation. Here are two equivalent bindings:
//
//      bind Ctrl+0x20  firestate 0  // hold fire
//      bind Ctrl+space firestate 0  // hold fire
//


//
//  Extra Run-Time Commands
//
//    /keyload   : loads the uikeys.txt bindings  (does not clear current bindings)
//    /keyreload : loads the uikeys.txt bindings  (clears current bindings first)
//    /keysave   : save current bindings to 'uikeys.tmp'  (NOTE: 'tmp' vs. 'txt')
//    /keysyms   : prints the known keysyms to standard out
//    /keycodes  : prints the known keycodes to standard out
//    /keyprint  : prints the current bindings to standard out
//    /keydebug  : prints debugging information to standard out (for each keystroke)
//


//
//  Hotbinding:
//
//    The default bindings include the 'hotbind' (Ctrl+insert) and
//    'hotunbind' (Ctrl+delete) capabilities. Place the mouse cursor over one
//    of the control panel icons (normal command or build command), and press
//    Ctrl+insert. Spring will then ask for a keyset, which will then have the
//    icon's command immediately appended to its list of actions. Placing the
//    mouse cursor over an icon and hitting Ctrl+delete will delete all bindings
//    associated with that icon's command.
//


//
//  Default Bindings:
//
//  fakemeta          space
//
//  bind                esc  quitmenu
//  bind     Ctrl+Shift+esc  quitforce
//
//  bind          Any+enter  chat
//  bind          Alt+enter  chatally
//  bind          Alt+enter  chatswitchally
//  bind         Ctrl+enter  chatall
//  bind         Ctrl+enter  chatswitchall
//  bind        Shift+enter  chatspec
//  bind        Shift+enter  chatswitchspec
//
//  bind          Any+enter  edit_return
//  bind         Any+escape  edit_escape
//  bind            Any+tab  edit_complete
//  bind      Any+backspace  edit_backspace
//  bind         Any+delete  edit_delete
//  bind           Alt+left  edit_home
//  bind           Any+home  edit_home
//  bind          Alt+right  edit_end
//  bind            Any+end  edit_end
//  bind           Any+left  edit_prev_char
//  bind          Any+right  edit_next_char
//  bind          Ctrl+left  edit_prev_word
//  bind         Ctrl+right  edit_next_word
//  bind             Any+up  edit_prev_line
//  bind           Any+down  edit_next_line
//
//  bind             Ctrl+v  pastetext
//
//  bind          Any+pause  pause
//
//  bind              Any+j  mouse2
//  bind          backspace  mousestate
//  bind    Shift+backspace  togglecammode
//  bind     Ctrl+backspace  togglecammode
//
//  bind              Any+i  gameinfo
//
//  bind              Any+l  togglelos
//  bind              Any+;  toggleradarandjammer
//  bind            Any+tab  toggleoverview
//
//  bind                  ,  prevmenu
//  bind                  .  nextmenu
//  bind            Shift+,  decguiopacity
//  bind            Shift+.  incguiopacity
//
//  bind        Ctrl+insert  hotbind
//  bind        Ctrl+delete  hotunbind
//
//  bind              Any++  speedup
//  bind              Any+=  speedup
//  bind              Any+-  slowdown
//  bind         Any+insert  speedup
//  bind         Any+delete  slowdown
//  bind        Any+numpad+  speedup
//  bind        Any+numpad-  slowdown
//
//  bind              Alt+b  debug
//  bind              Alt+o  singlestep
//
//  bind              Any+h  sharedialog
//
//  bind              Any+c  controlunit
//  bind             Ctrl+t  trackmode
//  bind              Any+t  track
//
//  bind              Any+`  drawinmap
//  bind              Any+\  drawinmap
//  bind           Any+0xa7  drawinmap
//
//  bind           Any+home  increaseViewRadius
//  bind            Any+end  decreaseViewRadius
//
//  bind             Any+up  moveforward
//  bind           Any+down  moveback
//  bind          Any+right  moveright
//  bind           Any+left  moveleft
//  bind         Any+pageup  moveup
//  bind       Any+pagedown  movedown
//  bind          Any+shift  movefast
//  bind           Any+ctrl  moveslow
//
//  bind                  1  specteam 0  
//  bind                  2  specteam 1
//  bind                  3  specteam 2
//  bind                  4  specteam 3
//  bind                  5  specteam 4
//  bind                  6  specteam 5
//  bind                  7  specteam 6
//  bind                  8  specteam 7
//  bind                  9  specteam 8
//  bind                  0  specteam 9
//  bind             Ctrl+1  specteam 10
//  bind             Ctrl+2  specteam 11
//  bind             Ctrl+3  specteam 12
//  bind             Ctrl+4  specteam 13
//  bind             Ctrl+5  specteam 14
//  bind             Ctrl+6  specteam 15
//  bind             Ctrl+7  specteam 16
//  bind             Ctrl+8  specteam 17
//  bind             Ctrl+9  specteam 18
//  bind             Ctrl+0  specteam 19
//
//  bind              Any+0  group0
//  bind              Any+1  group1
//  bind              Any+2  group2
//  bind              Any+3  group3
//  bind              Any+4  group4
//  bind              Any+5  group5
//  bind              Any+6  group6
//  bind              Any+7  group7
//  bind              Any+8  group8
//  bind              Any+9  group9
//
//  bind              Any+z  buildspacing inc
//  bind              Any+x  buildspacing dec
//
//  bind                  [  buildfacing inc
//  bind            Shift+[  buildfacing inc
//  bind                  ]  buildfacing dec
//  bind            Shift+]  buildfacing dec
//
//  bind                  a  attack
//  bind            Shift+a  attack
//  bind              Alt+a  areaattack
//  bind        Alt+Shift+a  areaattack
//  bind                  d  manualfire
//  bind            Shift+d  manualfire
//  bind             Ctrl+d  selfd
//  bind       Ctrl+Shift+d  selfd queued
//  bind                  e  reclaim
//  bind            Shift+e  reclaim
//  bind                  f  fight
//  bind            Shift+f  fight
//  bind              Alt+f  forcestart
//  bind                  g  guard
//  bind            Shift+g  guard
//  bind                  k  cloak
//  bind            Shift+k  cloak
//  bind                  l  loadunits
//  bind            Shift+l  loadunits
//  bind                  m  move
//  bind            Shift+m  move
//  bind                  p  patrol
//  bind            Shift+p  patrol
//  bind                  r  repair
//  bind            Shift+r  repair
//  bind                  s  stop
//  bind            Shift+s  stop
//  bind                  u  unloadunits
//  bind            Shift+u  unloadunits
//  bind                  w  wait
//  bind            Shift+w  wait queued
//  bind                  x  onoff
//  bind            Shift+x  onoff
//
//  bind                  q  groupselect
//  bind                  q  groupadd
//  bind             Ctrl+q  aiselect
//  bind            Shift+q  groupclear
//
//  bind            Ctrl+f1  viewfps
//  bind            Ctrl+f2  viewta
//  bind            Ctrl+f3  viewtw
//  bind            Ctrl+f4  viewrot
//
//  bind             Any+f1  showElevation
//  bind             Any+f2  ShowPathTraversability
//  bind             Any+f3  LastMsgPos
//  bind             Any+f4  ShowMetalMap
//  bind             Any+f5  hideinterface
//  bind             Any+f6  NoSound
//  bind             Any+f7  dynamicSky
//  bind      Ctrl+Shift+f8  savegame
//  bind             Any+f9  showhealthbars
//  bind     Ctrl+Shift+f10  createvideo
//  bind            Any+f11  screenshot
//  bind            Any+f12  screenshot
//


//  Key Symbol    Key Code
//  ----------    --------
//
//  !             0x021
//  "             0x022
//  #             0x023
//  $             0x024
//  %             0x025
//  &             0x026
//  '             0x027
//  (             0x028
//  )             0x029
//  *             0x02A
//  +             0x02B
//  ,             0x02C
//  -             0x02D
//  .             0x02E
//  /             0x02F
//  0             0x030
//  1             0x031
//  2             0x032
//  3             0x033
//  4             0x034
//  5             0x035
//  6             0x036
//  7             0x037
//  8             0x038
//  9             0x039
//  :             0x03A
//  ;             0x03B
//  <             0x03C
//  =             0x03D
//  >             0x03E
//  ?             0x03F
//  @             0x040
//  [             0x05B
//  \             0x05C
//  ]             0x05D
//  ^             0x05E
//  _             0x05F
//  `             0x060
//  a             0x061
//  alt           0x134
//  b             0x062
//  backspace     0x008
//  c             0x063
//  clear         0x00C
//  ctrl          0x132
//  d             0x064
//  delete        0x07F
//  down          0x112
//  e             0x065
//  end           0x117
//  enter         0x00D
//  esc           0x01B
//  escape        0x01B
//  f             0x066
//  f1            0x11A
//  f10           0x123
//  f11           0x124
//  f12           0x125
//  f13           0x126
//  f14           0x127
//  f15           0x128
//  f2            0x11B
//  f3            0x11C
//  f4            0x11D
//  f5            0x11E
//  f6            0x11F
//  f7            0x120
//  f8            0x121
//  f9            0x122
//  g             0x067
//  h             0x068
//  home          0x116
//  i             0x069
//  insert        0x115
//  j             0x06A
//  joy0          0x12C
//  joy1          0x12D
//  joy2          0x12E
//  joy3          0x12F
//  joy4          0x130
//  joy5          0x131
//  joy6          0x132
//  joy7          0x133
//  joydown       0x141
//  joyleft       0x142
//  joyright      0x143
//  joyup         0x140
//  joyw          0x193
//  joyx          0x190
//  joyy          0x191
//  joyz          0x192
//  k             0x06B
//  l             0x06C
//  left          0x114
//  m             0x06D
//  meta          0x136
//  n             0x06E
//  numpad*       0x10C
//  numpad+       0x10E
//  numpad-       0x10D
//  numpad.       0x10A
//  numpad/       0x10B
//  numpad0       0x100
//  numpad1       0x101
//  numpad2       0x102
//  numpad3       0x103
//  numpad4       0x104
//  numpad5       0x105
//  numpad6       0x106
//  numpad7       0x107
//  numpad8       0x108
//  numpad9       0x109
//  numpad=       0x110
//  numpad_enter  0x10F
//  o             0x06F
//  p             0x070
//  pagedown      0x119
//  pageup        0x118
//  pause         0x013
//  printscreen   0x13C
//  q             0x071
//  r             0x072
//  return        0x00D
//  right         0x113
//  s             0x073
//  shift         0x130
//  space         0x020
//  t             0x074
//  tab           0x009
//  u             0x075
//  up            0x111
//  v             0x076
//  w             0x077
//  x             0x078
//  y             0x079
//  z             0x07A
//  {             0x07B
//  |             0x07C
//  }             0x07D
//  ~             0x07E