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