]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blame - music_sampler.kv
Use aliases in key_properties
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.kv
CommitLineData
8612c5f8 1#:import math math
bb69f62e 2#:import h helpers
8612c5f8
IB
3
4<Key>:
5 pad_col_sep: 0 if not self.pad_cols else self.parent.pad_x
6 pad_cols: False
7
8 y: (self.parent.top-self.parent.y) - (self.row) * self.parent.key_size - (self.row - 1) * self.parent.key_sep
9 x: (self.col - 1) * self.parent.key_size + int(self.col - 1) * self.parent.key_sep + self.pad_col_sep
10 size_hint: None, None
11 line_color: 120/255, 120/255, 120/255, 1
12 enabled: True
13 line_width: 2
14 row: 1
15 col: 0
16 key_code: 0
17 key_sym: ""
18 key_width: 1
19 key_height: 1
20 width: self.key_width * (self.parent.key_size + self.parent.key_sep) - self.parent.key_sep
21 height: self.key_height * (self.parent.key_size + self.parent.key_sep) - self.parent.key_sep
22 canvas.before:
23 Color:
24 rgba: self.color
25 RoundedRectangle:
26 pos: self.x, self.y
27 size: self.size
28 canvas:
29 Color:
30 rgba: self.line_color
31 Line:
32 rounded_rectangle: self.x + self.line_width, self.y + self.line_width, self.width - 2 * self.line_width, self.height - 2 * self.line_width, 10
33 width: self.line_width
34 Label:
35 id: key_label
bb69f62e 36 font_name: h.path() + "fonts/Ubuntu-B.ttf"
8612c5f8
IB
37 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size))
38 color: 0, 0, 0, 1
39 text: self.parent.key_sym
40 text_size: self.parent.width,self.font_size
41 shorten: True
42 shorten_from: "right"
43 split_str: ""
44 center_x: self.parent.x + self.texture_size[0] /2 + 5
45 center_y: self.parent.y + self.parent.height - self.texture_size[1] /2 - 5
46 Label:
47 id: key_description_title
bb69f62e 48 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
8612c5f8
IB
49 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size / 2))
50 color: 0, 0, 0, 1
51 text: self.parent.description_title
52 text_size: self.parent.width - 2*self.parent.line_width, self.font_size
53 halign: "right"
54 valign: "middle"
55 center_x: self.parent.x + self.texture_size[0] /2
56 center_y: self.parent.y + self.parent.height - self.texture_size[1] /2 - 5
57 Label:
58 id: key_description
bb69f62e 59 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
8612c5f8
IB
60 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size / 2))
61 color: 0, 0, 0, 1
62 text: "\n".join(self.parent.description)
63 text_size: 2 * self.parent.width,self.parent.height - key_label.font_size
64 halign: "left"
65 valign: "middle"
66 pos: self.parent.x + 2 * self.parent.line_width + 2, self.parent.y
67 size_hint: None, None
68 size: 2 * self.parent.width - 2 * self.parent.line_width, self.parent.height - key_label.font_size
69
70<Screen>:
4b2d79ca
IB
71 canvas:
72 Color:
73 rgba: 229/255, 228/255, 226/255, 1
74 Rectangle:
75 pos: 0, 0
76 size: self.width, self.height
77
8612c5f8
IB
78 key_size: int( (3 * self.width - 16) / 56)
79 key_sep: int( self.key_size / 24)
80 key_pad_sep: int( self.key_size / 7) + 1
81
82 border: (self.width - self.key_size * 18 - self.key_sep * 16 - self.key_pad_sep)/ 2
83
84 mapping_height: self.key_size * 6 + self.key_sep * 5
85 mapping_width: self.key_size * 18 + self.key_sep * 16 + self.key_pad_sep
86 mapping_x: self.border
87 mapping_y: self.top - self.mapping_height - self.border
65ec4d2a
IB
88
89 key_list_width: 4 * (mock_ubuntu_regular.width or 0)
90 key_list_height: self.height - self.mapping_height - 3 * self.border
91 key_list_x: (self.action_list_width or 0) + 2 * self.border
92 key_list_y: self.border
93
8612c5f8 94 action_list_height: self.height - self.mapping_height - 3 * self.border
65ec4d2a 95 action_list_width: 3 * self.width / 4 - self.key_list_width - self.border
8612c5f8
IB
96 action_list_x: self.border
97 action_list_y: self.border
65ec4d2a 98
8612c5f8
IB
99 play_list_height: self.action_list_height
100 play_list_width: self.width - self.action_list_width - 3* self.border
101 play_list_y: self.border
65ec4d2a 102 play_list_x: self.action_list_width + self.key_list_width + 3 * self.border
8612c5f8 103
8601cdd8
IB
104 min_height: min(mock_symbola.height, mock_ubuntu_regular.height, mock_ubuntu_bold.height)
105 symbola_line_height: self.min_height / max(mock_symbola.height,1)
106 ubuntu_regular_line_height: self.min_height / max(mock_ubuntu_regular.height,1)
107 ubuntu_bold_line_height: self.min_height / max(mock_ubuntu_bold.height,1)
108 Label:
109 id: mock_symbola
110 font_name: h.path() + "fonts/Symbola.ttf"
111 font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
112 color: 0, 0, 0, 0
113 text: "A"
114 text_size: None, None
115 size_hint: None, None
116 size: self.texture_size
117 Label:
118 id: mock_ubuntu_regular
119 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
120 font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
121 color: 0, 0, 0, 0
122 text: "A"
123 text_size: None, None
124 size_hint: None, None
125 size: self.texture_size
126 Label:
127 id: mock_ubuntu_bold
128 font_name: h.path() + "fonts/Ubuntu-B.ttf"
129 font_size: math.ceil(2 * math.sqrt(self.parent.key_size or 10))
130 color: 0, 0, 0, 0
131 text: "A"
132 text_size: None, None
133 size_hint: None, None
134 size: self.texture_size
135
8612c5f8
IB
136 Mapping:
137 id: Mapping
138 pos: self.parent.mapping_x, self.parent.mapping_y
139 size: self.parent.mapping_width, self.parent.mapping_height
140
141 key_size: self.parent.key_size
142 key_sep: self.parent.key_sep
143 key_pad_sep: self.parent.key_pad_sep
144 pad_x: self.key_size * 15 + 14 * self.key_sep + self.key_pad_sep
145 ActionList:
146 id: ActionList
147 pos: self.parent.action_list_x, self.parent.action_list_y
148 size: self.parent.action_list_width, self.parent.action_list_height
65ec4d2a
IB
149 KeyList:
150 id: KeyList
151 pos: self.parent.key_list_x, self.parent.key_list_y
152 size: self.parent.key_list_width, self.parent.key_list_height
8612c5f8
IB
153 PlayList:
154 id: PlayList
155 pos: self.parent.play_list_x, self.parent.play_list_y
156 size: self.parent.play_list_width, self.parent.play_list_height
157
65ec4d2a
IB
158<KeyList>:
159 size_hint: None, None
160 canvas:
161 Color:
162 rgba: 250./255, 250./255, 250./255, 1
163 Rectangle:
164 pos: 0, 0
165 size: self.width, self.height
166 Label:
167 id: key_list_first
168 font_name: h.path() + "fonts/Ubuntu-B.ttf"
169 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
170 color: 0, 0, 0, 1
171 text: self.parent.first_key
172 text_size: None, None
173 valign: "top"
98ff4305 174 halign: "center"
65ec4d2a
IB
175 size_hint: None, None
176 size: self.parent.width, self.texture_size[1]
177 pos: 0, self.parent.height - self.height
178 Label:
179 id: key_list_second
180 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
181 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
182 color: 0, 0, 0, 1
183 text: self.parent.second_key
184 text_size: None, None
185 valign: "top"
98ff4305 186 halign: "center"
65ec4d2a
IB
187 size_hint: None, None
188 size: self.parent.width, self.texture_size[1]
189 pos: 0, self.parent.height - key_list_first.height - self.height
190 Label:
191 id: key_list_third
192 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
193 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
194 color: 0, 0, 0, 0.75
195 text: self.parent.third_key
196 text_size: None, None
197 valign: "top"
98ff4305 198 halign: "center"
65ec4d2a
IB
199 size_hint: None, None
200 size: self.parent.width, self.texture_size[1]
201 pos: 0, self.parent.height - key_list_first.height - key_list_second.height - self.height
202 Label:
203 id: key_list_rest
204 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
205 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
206 color: 0, 0, 0, 0.5
207 text: "\n".join(self.parent.keylist[3:])
208 text_size: None, None
209 valign: "top"
98ff4305 210 halign: "center"
65ec4d2a
IB
211 size_hint: None, None
212 size: self.parent.width, self.texture_size[1]
213 pos: 0, self.parent.height - key_list_first.height - key_list_second.height - key_list_third.height - self.height
214
8612c5f8
IB
215<ActionList>:
216 size_hint: None, None
217 canvas:
218 Color:
219 rgba: 250./255, 250./255, 250./255, 1
220 Rectangle:
221 pos: 0, 0
222 size: self.width, self.height
7910d58d 223
8612c5f8
IB
224 Label:
225 id: action_list_title
bb69f62e 226 font_name: h.path() + "fonts/Ubuntu-B.ttf"
8612c5f8
IB
227 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
228 color: 0, 0, 0, 1
229 text: self.parent.action_title
230 text_size: None, self.parent.height
231 halign: "left"
232 valign: "top"
233 size_hint: None, None
234 size: self.texture_size[0], self.parent.height
235 Label:
236 id: action_list_icons
bb69f62e 237 font_name: h.path() + "fonts/Symbola.ttf"
8612c5f8 238 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
8601cdd8 239 line_height: self.parent.parent.symbola_line_height or 1
8612c5f8
IB
240 color: 0, 0, 0, 1
241 text: "\n".join(map(lambda x: x[0], self.parent.action_list))
242 text_size: None, self.parent.height
243 halign: "left"
244 valign: "top"
245 size_hint: None, None
246 size: self.texture_size[0], self.parent.height - 3 * self.line_height * self.font_size
247 Label:
248 id: action_list_names
bb69f62e 249 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
8612c5f8 250 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
8601cdd8 251 line_height: self.parent.parent.ubuntu_regular_line_height or 1
8612c5f8
IB
252 color: 0, 0, 0, 1
253 text: "\n".join(map(lambda x: x[1], self.parent.action_list))
254 text_size: None, self.parent.height
255 halign: "left"
256 valign: "top"
257 size_hint: None, None
258 pos: 15, self.y
259 size: self.texture_size[0], self.parent.height - 3 * self.line_height * self.font_size
260
261<PlayList>:
262 size_hint: None, None
263 canvas:
264 Color:
265 rgba: 250./255, 250./255, 250./255, 1
266 Rectangle:
267 pos: 0, 0
268 size: self.width, self.height
7910d58d 269
8612c5f8
IB
270 Label:
271 id: playlist_icons
bb69f62e 272 font_name: h.path() + "fonts/Symbola.ttf"
8612c5f8 273 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
8601cdd8 274 line_height: self.parent.parent.symbola_line_height or 1
8612c5f8
IB
275 color: 0, 0, 0, 1
276 text: "\n".join(map(lambda x: x[0], self.parent.playlist))
277 text_size: None, self.parent.height
278 halign: "left"
279 valign: "top"
280 size_hint: None, None
281 size: self.texture_size[0], self.parent.height
282 Label:
283 id: playlist_names
bb69f62e 284 font_name: h.path() + "fonts/Ubuntu-Regular.ttf" # FIXME: Mettre en gras quand c'est en cours
8601cdd8 285 line_height: self.parent.parent.ubuntu_regular_line_height or 1
8612c5f8
IB
286 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
287 color: 0, 0, 0, 1
288 text: "\n".join(map(lambda x: x[1], self.parent.playlist))
289 text_size: None, self.parent.height
290 halign: "left"
291 valign: "top"
292 size_hint: None, None
293 pos: 15, self.y
294 size: self.texture_size[0], self.parent.height
98ff4305
IB
295 Label:
296 id: playlist_times
297 font_name: h.path() + "fonts/Ubuntu-Regular.ttf"
298 line_height: self.parent.parent.ubuntu_regular_line_height or 1
299 font_size: math.ceil(2 * math.sqrt(self.parent.parent.key_size or 10))
300 color: 0, 0, 0, 1
301 text: "\n".join(map(lambda x: x[2], self.parent.playlist))
302 text_size: None, self.parent.height
303 halign: "left"
304 valign: "top"
305 size_hint: None, None
306 pos: self.parent.width - 3 * self.width / 2 - 2 * (self.parent.parent.border or 0), self.y
307 size: self.texture_size[0], self.parent.height
8612c5f8
IB
308
309<Mapping>:
310 size_hint: None, None
311 key_size: 48
312 key_sep: 2
313 key_pad_sep: 7
314 pad_x: 755
315 canvas:
316 Color:
317 rgba: 250./255, 250./255, 250./255, 1
318 Rectangle:
319 pos: 0, 0
320 size: self.width, self.height
321 Key:
322 id: Key_27
323 key_code: 27
324 key_sym: "ESC"
325 row: 1
326 col: 1
327 Key:
328 id: Key_282
329 key_code: 282
330 key_sym: "F1"
331 row: 1
332 col: 3
333 Key:
334 id: Key_283
335 key_code: 283
336 key_sym: "F2"
337 row: 1
338 col: 4
339 Key:
340 id: Key_284
341 key_code: 284
342 key_sym: "F3"
343 row: 1
344 col: 5
345 Key:
346 id: Key_285
347 key_code: 285
348 key_sym: "F4"
349 row: 1
350 col: 6
351
352 Key:
353 id: Key_286
354 key_code: 286
355 key_sym: "F5"
356 row: 1
357 col: 7.5
358 Key:
359 id: Key_287
360 key_code: 287
361 key_sym: "F6"
362 row: 1
363 col: 8.5
364 Key:
365 id: Key_288
366 key_code: 288
367 key_sym: "F7"
368 row: 1
369 col: 9.5
370 Key:
371 id: Key_289
372 key_code: 289
373 key_sym: "F8"
374 row: 1
375 col: 10.5
376
377 Key:
378 id: Key_290
379 key_code: 290
380 key_sym: "F9"
381 row: 1
382 col: 12
383 Key:
384 id: Key_291
385 key_code: 291
386 key_sym: "F10"
387 row: 1
388 col: 13
389 Key:
390 id: Key_292
391 key_code: 292
392 key_sym: "F11"
393 row: 1
394 col: 14
395 Key:
396 id: Key_293
397 key_code: 293
398 key_sym: "F12"
399 row: 1
400 col: 15
401
402 Key:
403 id: Key_178
404 key_code: 178
405 key_sym: "²"
406 row: 2
407 col: 1
408 Key:
409 id: Key_38
410 key_code: 38
411 key_sym: "&"
412 row: 2
413 col: 2
414 Key:
415 id: Key_233
416 key_code: 233
417 key_sym: "é"
418 row: 2
419 col: 3
420 Key:
421 id: Key_34
422 key_code: 34
423 key_sym: '"'
424 row: 2
425 col: 4
426 Key:
427 id: Key_39
428 key_code: 39
429 key_sym: "'"
430 row: 2
431 col: 5
432 Key:
433 id: Key_40
434 key_code: 40
435 key_sym: "("
436 row: 2
437 col: 6
438 Key:
439 id: Key_45
440 key_code: 45
441 key_sym: "-"
442 row: 2
443 col: 7
444 Key:
445 id: Key_232
446 key_code: 232
447 key_sym: "è"
448 row: 2
449 col: 8
450 Key:
451 id: Key_95
452 key_code: 95
453 key_sym: "_"
454 row: 2
455 col: 9
456 Key:
457 id: Key_231
458 key_code: 231
459 key_sym: "ç"
460 row: 2
461 col: 10
462 Key:
463 id: Key_224
464 key_code: 224
465 key_sym: "à"
466 row: 2
467 col: 11
468 Key:
469 id: Key_41
470 key_code: 41
471 key_sym: ")"
472 row: 2
473 col: 12
474 Key:
475 id: Key_61
476 key_code: 61
477 key_sym: "="
478 row: 2
479 col: 13
480 Key:
481 id: Key_8
482 key_code: 8
483 key_sym: "<-"
484 row: 2
485 col: 14
486 key_width: 2
487 Key:
488 id: Key_9
489 key_code: 9
490 key_sym: "tab"
491 row: 3
492 col: 1
493 key_width: 1.48
494 Key:
495 id: Key_97
496 key_code: 97
497 key_sym: "a"
498 row: 3
499 col: 2.5
500 Key:
501 id: Key_122
502 key_code: 122
503 key_sym: "z"
504 row: 3
505 col: 3.5
506 Key:
507 id: Key_101
508 key_code: 101
509 key_sym: "e"
510 row: 3
511 col: 4.5
512 Key:
513 id: Key_114
514 key_code: 114
515 key_sym: "r"
516 row: 3
517 col: 5.5
518 Key:
519 id: Key_116
520 key_code: 116
521 key_sym: "t"
522 row: 3
523 col: 6.5
524 Key:
525 id: Key_121
526 key_code: 121
527 key_sym: "y"
528 row: 3
529 col: 7.5
530 Key:
531 id: Key_117
532 key_code: 117
533 key_sym: "u"
534 row: 3
535 col: 8.5
536 Key:
537 id: Key_105
538 key_code: 105
539 key_sym: "i"
540 row: 3
541 col: 9.5
542 Key:
543 id: Key_111
544 key_code: 111
545 key_sym: "o"
546 row: 3
547 col: 10.5
548 Key:
549 id: Key_112
550 key_code: 112
551 key_sym: "p"
552 row: 3
553 col: 11.5
554 Key:
555 id: Key_94
556 key_code: 94
557 key_sym: "^"
558 row: 3
559 col: 12.5
560 Key:
561 id: Key_36
562 key_code: 36
563 key_sym: "$"
564 row: 3
565 col: 13.5
566 Key:
567 id: Key_13
568 key_code: 13
569 key_sym: "Enter"
570 row: 4
571 col: 14.8
572 key_width: 1.23
573 key_height: 2
574 Key:
575 id: Key_301
576 key_code: 301
577 key_sym: "CAPS"
578 row: 4
579 col: 1
580 key_width: 1.75
581 line_width: 1
582 enabled: False
583
584 Key:
585 id: Key_113
586 key_code: 113
587 key_sym: "q"
588 row: 4
589 col: 2.8
590 Key:
591 id: Key_115
592 key_code: 115
593 key_sym: "s"
594 row: 4
595 col: 3.8
596 Key:
597 id: Key_100
598 key_code: 100
599 key_sym: "d"
600 row: 4
601 col: 4.8
602 Key:
603 id: Key_102
604 key_code: 102
605 key_sym: "f"
606 row: 4
607 col: 5.8
608 Key:
609 id: Key_103
610 key_code: 103
611 key_sym: "g"
612 row: 4
613 col: 6.8
614 Key:
615 id: Key_104
616 key_code: 104
617 key_sym: "h"
618 row: 4
619 col: 7.8
620 Key:
621 id: Key_106
622 key_code: 106
623 key_sym: "j"
624 row: 4
625 col: 8.8
626 Key:
627 id: Key_107
628 key_code: 107
629 key_sym: "k"
630 row: 4
631 col: 9.8
632 Key:
633 id: Key_108
634 key_code: 108
635 key_sym: "l"
636 row: 4
637 col: 10.8
638 Key:
639 id: Key_109
640 key_code: 109
641 key_sym: "m"
642 row: 4
643 col: 11.8
644 Key:
645 id: Key_249
646 key_code: 249
647 key_sym: "ù"
648 row: 4
649 col: 12.8
650 Key:
651 id: Key_42
652 key_code: 42
653 key_sym: "*"
654 row: 4
655 col: 13.8
656 Key:
657 id: Key_304
658 key_code: 304
659 key_sym: "LShift"
660 row: 5
661 col: 1
662 key_width: 1.3
663 line_width: 1
664 enabled: False
665 Key:
666 id: Key_60
667 key_code: 60
668 key_sym: "<"
669 row: 5
670 col: 2.3
671 Key:
672 id: Key_119
673 key_code: 119
674 key_sym: "w"
675 row: 5
676 col: 3.3
677 Key:
678 id: Key_120
679 key_code: 120
680 key_sym: "x"
681 row: 5
682 col: 4.3
683 Key:
684 id: Key_99
685 key_code: 99
686 key_sym: "c"
687 row: 5
688 col: 5.3
689 Key:
690 id: Key_118
691 key_code: 118
692 key_sym: "v"
693 row: 5
694 col: 6.3
695 Key:
696 id: Key_98
697 key_code: 98
698 key_sym: "b"
699 row: 5
700 col: 7.3
701 Key:
702 id: Key_110
703 key_code: 110
704 key_sym: "n"
705 row: 5
706 col: 8.3
707 Key:
708 id: Key_44
709 key_code: 44
710 key_sym: ","
711 row: 5
712 col: 9.3
713 Key:
714 id: Key_59
715 key_code: 59
716 key_sym: ";"
717 row: 5
718 col: 10.3
719 Key:
720 id: Key_58
721 key_code: 58
722 key_sym: ":"
723 row: 5
724 col: 11.3
725 Key:
726 id: Key_33
727 key_code: 33
728 key_sym: "!"
729 row: 5
730 col: 12.3
731 Key:
732 id: Key_303
733 key_code: 303
734 key_sym: "RShift"
735 row: 5
736 col: 13.3
737 key_width: 2.7
738 line_width: 1
739 enabled: False
740 Key:
741 id: Key_306
742 key_code: 306
743 key_sym: "LCtrl"
744 row: 6
745 col: 1
746 key_width: 1.3
747 line_width: 1
748 enabled: False
749 Key:
750 id: Key_311
751 key_code: 311
752 key_sym: "LSuper"
753 row: 6
754 col: 3.3
755 line_width: 1
756 enabled: False
757 Key:
758 id: Key_308
759 key_code: 308
760 key_sym: "LAlt"
761 row: 6
762 col: 4.3
763 line_width: 1
764 enabled: False
765 Key:
766 id: Key_32
767 key_code: 32
768 key_sym: "Espace"
769 row: 6
770 col: 5.3
771 key_width: 5
772 Key:
773 id: Key_313
774 key_code: 313
775 key_sym: "AltGr"
776 row: 6
777 col: 10.3
778 line_width: 1
779 enabled: False
780 Key:
781 id: Key_314
782 key_code: 314
783 key_sym: "Compose"
784 row: 6
785 col: 11.3
786 line_width: 1
787 enabled: False
788 Key:
789 id: Key_305
790 key_code: 305
791 key_sym: "RCtrl"
792 row: 6
793 col: 12.3
794 key_width: 1.3
795 line_width: 1
796 enabled: False
797
798
799 Key:
800 id: Key_277
801 key_code: 277
802 key_sym: "ins"
803 row: 2
804 col: 1
805 pad_cols: True
806 Key:
807 id: Key_278
808 key_code: 278
809 key_sym: "home"
810 row: 2
811 col: 2
812 pad_cols: True
813 Key:
814 id: Key_280
815 key_code: 280
816 key_sym: "pg_u"
817 row: 2
818 col: 3
819 pad_cols: True
820 Key:
821 id: Key_127
822 key_code: 127
823 key_sym: "del"
824 row: 3
825 col: 1
826 pad_cols: True
827 Key:
828 id: Key_279
829 key_code: 279
830 key_sym: "end"
831 row: 3
832 col: 2
833 pad_cols: True
834 Key:
835 id: Key_281
836 key_code: 281
837 key_sym: "pg_d"
838 row: 3
839 col: 3
840 pad_cols: True
841 Key:
842 id: Key_273
843 key_code: 273
844 key_sym: "up"
845 row: 5
846 col: 2
847 pad_cols: True
848 Key:
849 id: Key_274
850 key_code: 274
851 key_sym: "down"
852 row: 6
853 col: 2
854 pad_cols: True
855 Key:
856 id: Key_276
857 key_code: 276
858 key_sym: "left"
859 row: 6
860 col: 1
861 pad_cols: True
862 Key:
863 id: Key_275
864 key_code: 275
865 key_sym: "right"
866 row: 6
867 col: 3
868 pad_cols: True