kbd defs added for ibm 4978
authorPurdea Andrei <andrei@purdea.ro>
Sat, 25 Jul 2020 05:17:45 +0000 (08:17 +0300)
committerPurdea Andrei <andrei@purdea.ro>
Sat, 25 Jul 2020 05:17:45 +0000 (08:17 +0300)
keyboards/xwhatsit/util/util/kbd_defs.cpp

index 2569fee..a639c50 100644 (file)
@@ -6976,6 +6976,471 @@ struct lay_def keyboards_xwhatsit_ibm_3277_split_66key_xwhatsit_rev4_xwhatsit_re
         .keys = keyboards_xwhatsit_ibm_3277_split_66key_xwhatsit_rev4_xwhatsit_rev4_c_LAYOUT_all_keys,
     },
 };
+struct key_def keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_keys[] = {
+    { .row = 0, .col = 0, .x = 0.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 1, .x = 1.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 2, .x = 2.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 3, .x = 3.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 4, .x = 4.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 5, .x = 5.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 6, .x = 6.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 7, .x = 7.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 8, .x = 8.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 9, .x = 9.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 10, .x = 10.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 11, .x = 11.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 12, .x = 12.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 13, .x = 13.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 14, .x = 14.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 15, .x = 15.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 16, .x = 16.500000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 17, .x = 17.500000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 18, .x = 18.500000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 19, .x = 20.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 20, .x = 21.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 21, .x = 22.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 0, .x = 0.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 1, .x = 1.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 2, .x = 2.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 3, .x = 3.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 4, .x = 4.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 5, .x = 5.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 6, .x = 6.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 7, .x = 7.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 8, .x = 8.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 9, .x = 9.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 10, .x = 10.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 11, .x = 11.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 12, .x = 12.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 13, .x = 13.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 14, .x = 14.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 15, .x = 15.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 16, .x = 16.500000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 17, .x = 17.500000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 18, .x = 18.500000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 19, .x = 20.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 20, .x = 21.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 21, .x = 22.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 0, .x = 0.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 1, .x = 1.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 3, .x = 3.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 4, .x = 4.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 5, .x = 5.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 6, .x = 6.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 7, .x = 7.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 9, .x = 9.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 10, .x = 10.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 11, .x = 11.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 12, .x = 12.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 13, .x = 13.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 14, .x = 14.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 15, .x = 15.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 16, .x = 16.500000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 17, .x = 17.500000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 18, .x = 18.500000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 19, .x = 20.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 20, .x = 21.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 21, .x = 22.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 1, .x = 0.000000, .y = 3.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 2, .x = 1.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 3, .x = 2.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 4, .x = 3.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 5, .x = 4.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 6, .x = 5.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 7, .x = 6.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 8, .x = 7.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 9, .x = 8.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 10, .x = 9.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 11, .x = 10.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 12, .x = 11.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 13, .x = 12.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 14, .x = 13.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 15, .x = 14.500000, .y = 3.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 16, .x = 16.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 17, .x = 17.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 18, .x = 18.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 19, .x = 20.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 20, .x = 21.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 21, .x = 22.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 0, .x = 0.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 1, .x = 1.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 2, .x = 2.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 3, .x = 3.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 4, .x = 4.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 5, .x = 5.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 6, .x = 6.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 7, .x = 7.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 8, .x = 8.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 9, .x = 9.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 10, .x = 10.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 11, .x = 11.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 12, .x = 12.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 13, .x = 13.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 14, .x = 14.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 15, .x = 15.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 16, .x = 16.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 17, .x = 17.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 18, .x = 18.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 19, .x = 20.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 20, .x = 21.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 21, .x = 22.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 0, .x = 0.000000, .y = 5.000000, .w = 1.250000, .h = 1.000000 },
+    { .row = 5, .col = 1, .x = 1.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 2, .x = 2.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 3, .x = 3.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 4, .x = 4.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 5, .x = 5.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 6, .x = 6.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 7, .x = 7.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 8, .x = 8.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 9, .x = 9.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 10, .x = 10.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 11, .x = 11.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 12, .x = 12.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 13, .x = 13.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 15, .x = 14.250000, .y = 5.000000, .w = 1.750000, .h = 1.000000 },
+    { .row = 5, .col = 16, .x = 16.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 17, .x = 17.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 18, .x = 18.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 19, .x = 20.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 20, .x = 21.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 21, .x = 22.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 0, .x = 0.000000, .y = 6.000000, .w = 1.750000, .h = 1.000000 },
+    { .row = 6, .col = 2, .x = 1.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 3, .x = 2.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 4, .x = 3.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 5, .x = 4.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 6, .x = 5.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 7, .x = 6.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 8, .x = 7.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 9, .x = 8.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 10, .x = 9.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 11, .x = 10.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 12, .x = 11.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 13, .x = 12.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 14, .x = 13.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 15, .x = 14.750000, .y = 6.000000, .w = 1.250000, .h = 1.000000 },
+    { .row = 6, .col = 16, .x = 16.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 17, .x = 17.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 18, .x = 18.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 19, .x = 20.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 20, .x = 21.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 21, .x = 22.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 0, .x = 0.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 1, .x = 1.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 2, .x = 2.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 3, .x = 3.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 4, .x = 4.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 5, .x = 5.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 6, .x = 6.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 7, .x = 7.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 8, .x = 8.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 9, .x = 9.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 10, .x = 10.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 11, .x = 11.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 12, .x = 12.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 13, .x = 13.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 14, .x = 14.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 15, .x = 15.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 16, .x = 16.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 17, .x = 17.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 18, .x = 18.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 19, .x = 20.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 20, .x = 21.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 21, .x = 22.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+};
+struct key_def keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_keys[] = {
+    { .row = 0, .col = 0, .x = 0.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 2, .x = 1.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 3, .x = 3.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 5, .x = 4.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 6, .x = 6.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 8, .x = 7.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 9, .x = 9.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 11, .x = 10.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 12, .x = 12.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 14, .x = 13.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 16, .x = 16.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 18, .x = 18.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 19, .x = 20.000000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 0, .col = 21, .x = 21.500000, .y = 0.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 0, .x = 0.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 2, .x = 1.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 3, .x = 3.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 5, .x = 4.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 6, .x = 6.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 8, .x = 7.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 9, .x = 9.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 11, .x = 10.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 12, .x = 12.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 14, .x = 13.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 16, .x = 16.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 18, .x = 18.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 19, .x = 20.000000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 1, .col = 21, .x = 21.500000, .y = 1.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 2, .col = 16, .x = 16.500000, .y = 2.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 2, .col = 18, .x = 18.000000, .y = 2.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 2, .col = 19, .x = 20.000000, .y = 2.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 2, .col = 21, .x = 21.500000, .y = 2.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 1, .x = 0.000000, .y = 3.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 2, .x = 1.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 3, .x = 2.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 4, .x = 3.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 5, .x = 4.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 6, .x = 5.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 7, .x = 6.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 8, .x = 7.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 9, .x = 8.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 10, .x = 9.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 11, .x = 10.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 12, .x = 11.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 13, .x = 12.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 14, .x = 13.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 15, .x = 14.500000, .y = 3.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 16, .x = 16.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 17, .x = 17.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 18, .x = 18.500000, .y = 3.000000, .w = 1.000000, .h = 2.000000 },
+    { .row = 3, .col = 19, .x = 20.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 20, .x = 21.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 21, .x = 22.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 0, .x = 0.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 1, .x = 1.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 2, .x = 2.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 3, .x = 3.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 4, .x = 4.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 5, .x = 5.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 6, .x = 6.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 7, .x = 7.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 8, .x = 8.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 9, .x = 9.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 10, .x = 10.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 11, .x = 11.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 12, .x = 12.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 13, .x = 13.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 14, .x = 14.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 15, .x = 15.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 16, .x = 16.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 17, .x = 17.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 19, .x = 20.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 20, .x = 21.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 21, .x = 22.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 0, .x = 0.000000, .y = 5.000000, .w = 1.250000, .h = 1.000000 },
+    { .row = 5, .col = 1, .x = 1.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 2, .x = 2.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 3, .x = 3.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 4, .x = 4.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 5, .x = 5.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 6, .x = 6.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 7, .x = 7.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 8, .x = 8.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 9, .x = 9.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 10, .x = 10.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 11, .x = 11.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 12, .x = 12.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 13, .x = 13.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 15, .x = 14.250000, .y = 5.000000, .w = 1.750000, .h = 1.000000 },
+    { .row = 5, .col = 16, .x = 16.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 17, .x = 17.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 18, .x = 18.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 19, .x = 20.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 20, .x = 21.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 21, .x = 22.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 0, .x = 0.000000, .y = 6.000000, .w = 1.750000, .h = 1.000000 },
+    { .row = 6, .col = 2, .x = 1.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 3, .x = 2.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 4, .x = 3.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 5, .x = 4.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 6, .x = 5.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 7, .x = 6.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 8, .x = 7.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 9, .x = 8.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 10, .x = 9.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 11, .x = 10.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 12, .x = 11.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 13, .x = 12.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 15, .x = 13.750000, .y = 6.000000, .w = 2.250000, .h = 1.000000 },
+    { .row = 6, .col = 16, .x = 16.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 17, .x = 17.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 18, .x = 18.500000, .y = 6.000000, .w = 1.000000, .h = 2.000000 },
+    { .row = 6, .col = 19, .x = 20.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 20, .x = 21.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 21, .x = 22.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 3, .x = 3.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 11, .x = 4.000000, .y = 7.000000, .w = 8.000000, .h = 1.000000 },
+    { .row = 7, .col = 12, .x = 12.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 16, .x = 16.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 17, .x = 17.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 20, .x = 20.000000, .y = 7.000000, .w = 2.000000, .h = 1.000000 },
+    { .row = 7, .col = 21, .x = 22.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+};
+struct key_def keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_no_case_mods_keys[] = {
+    { .row = 0, .col = 0, .x = 0.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 1, .x = 1.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 2, .x = 2.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 3, .x = 3.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 4, .x = 4.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 5, .x = 5.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 6, .x = 6.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 7, .x = 7.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 8, .x = 8.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 9, .x = 9.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 10, .x = 10.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 11, .x = 11.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 12, .x = 12.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 13, .x = 13.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 14, .x = 14.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 16, .x = 16.500000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 17, .x = 17.500000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 18, .x = 18.500000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 19, .x = 20.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 20, .x = 21.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 0, .col = 21, .x = 22.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 0, .x = 0.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 1, .x = 1.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 2, .x = 2.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 3, .x = 3.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 4, .x = 4.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 5, .x = 5.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 6, .x = 6.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 7, .x = 7.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 8, .x = 8.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 9, .x = 9.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 10, .x = 10.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 11, .x = 11.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 12, .x = 12.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 13, .x = 13.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 14, .x = 14.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 16, .x = 16.500000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 17, .x = 17.500000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 18, .x = 18.500000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 19, .x = 20.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 20, .x = 21.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 1, .col = 21, .x = 22.000000, .y = 1.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 16, .x = 16.500000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 17, .x = 17.500000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 18, .x = 18.500000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 19, .x = 20.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 20, .x = 21.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 2, .col = 21, .x = 22.000000, .y = 2.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 1, .x = 0.000000, .y = 3.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 2, .x = 1.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 3, .x = 2.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 4, .x = 3.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 5, .x = 4.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 6, .x = 5.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 7, .x = 6.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 8, .x = 7.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 9, .x = 8.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 10, .x = 9.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 11, .x = 10.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 12, .x = 11.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 13, .x = 12.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 14, .x = 13.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 15, .x = 14.500000, .y = 3.000000, .w = 1.500000, .h = 1.000000 },
+    { .row = 3, .col = 16, .x = 16.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 17, .x = 17.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 18, .x = 18.500000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 19, .x = 20.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 20, .x = 21.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 3, .col = 21, .x = 22.000000, .y = 3.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 0, .x = 0.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 1, .x = 1.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 2, .x = 2.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 3, .x = 3.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 4, .x = 4.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 5, .x = 5.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 6, .x = 6.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 7, .x = 7.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 8, .x = 8.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 9, .x = 9.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 10, .x = 10.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 11, .x = 11.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 12, .x = 12.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 13, .x = 13.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 14, .x = 14.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 15, .x = 15.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 16, .x = 16.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 17, .x = 17.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 18, .x = 18.500000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 19, .x = 20.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 20, .x = 21.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 4, .col = 21, .x = 22.000000, .y = 4.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 0, .x = 0.000000, .y = 5.000000, .w = 1.250000, .h = 1.000000 },
+    { .row = 5, .col = 1, .x = 1.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 2, .x = 2.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 3, .x = 3.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 4, .x = 4.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 5, .x = 5.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 6, .x = 6.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 7, .x = 7.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 8, .x = 8.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 9, .x = 9.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 10, .x = 10.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 11, .x = 11.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 12, .x = 12.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 13, .x = 13.250000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 15, .x = 14.250000, .y = 5.000000, .w = 1.750000, .h = 1.000000 },
+    { .row = 5, .col = 16, .x = 16.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 17, .x = 17.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 18, .x = 18.500000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 19, .x = 20.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 20, .x = 21.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 5, .col = 21, .x = 22.000000, .y = 5.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 0, .x = 0.000000, .y = 6.000000, .w = 1.750000, .h = 1.000000 },
+    { .row = 6, .col = 2, .x = 1.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 3, .x = 2.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 4, .x = 3.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 5, .x = 4.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 6, .x = 5.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 7, .x = 6.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 8, .x = 7.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 9, .x = 8.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 10, .x = 9.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 11, .x = 10.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 12, .x = 11.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 13, .x = 12.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 14, .x = 13.750000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 15, .x = 14.750000, .y = 6.000000, .w = 1.250000, .h = 1.000000 },
+    { .row = 6, .col = 16, .x = 16.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 17, .x = 17.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 18, .x = 18.500000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 19, .x = 20.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 20, .x = 21.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 6, .col = 21, .x = 22.000000, .y = 6.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 3, .x = 3.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 4, .x = 4.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 5, .x = 5.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 6, .x = 6.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 7, .x = 7.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 8, .x = 8.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 9, .x = 9.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 10, .x = 10.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 11, .x = 11.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 12, .x = 12.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 16, .x = 16.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 17, .x = 17.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 18, .x = 18.500000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 19, .x = 20.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 20, .x = 21.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+    { .row = 7, .col = 21, .x = 22.000000, .y = 7.000000, .w = 1.000000, .h = 1.000000 },
+};
+struct lay_def keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_lays[] = {
+    {
+        .lay_name = "LAYOUT",
+        .n_keys = sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_keys) / sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_keys[0]),
+        .keys = keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_keys,
+    },
+    {
+        .lay_name = "LAYOUT_all",
+        .n_keys = sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_keys) / sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_keys[0]),
+        .keys = keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_keys,
+    },
+    {
+        .lay_name = "LAYOUT_all_no_case_mods",
+        .n_keys = sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_no_case_mods_keys) / sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_no_case_mods_keys[0]),
+        .keys = keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_LAYOUT_all_no_case_mods_keys,
+    },
+};
 struct key_def keyboards_xwhatsit_ibm_5251_through_hole_through_hole_c_LAYOUT_keys[] = {
     { .row = 0, .col = 1, .x = 0.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
     { .row = 0, .col = 2, .x = 1.000000, .y = 0.000000, .w = 1.000000, .h = 1.000000 },
@@ -12219,6 +12684,13 @@ struct kbd_def keyboards[] = {
         .cols = 18,
         .rows = 4,
     },
+    {
+        .kbd_name = "keyboards/xwhatsit/ibm/4978/through_hole/through_hole.c",
+        .n_layouts = sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_lays)/sizeof(keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_lays[0]),
+        .layouts = keyboards_xwhatsit_ibm_4978_through_hole_through_hole_c_lays,
+        .cols = 22,
+        .rows = 8,
+    },
     {
         .kbd_name = "keyboards/xwhatsit/ibm/5251/through_hole/through_hole.c",
         .n_layouts = sizeof(keyboards_xwhatsit_ibm_5251_through_hole_through_hole_c_lays)/sizeof(keyboards_xwhatsit_ibm_5251_through_hole_through_hole_c_lays[0]),