zones: matrix: anchor: angle: 5 columns: - name: pinky rotate: -5 origin: [7, -7] - name: ring stagger: 12 - name: middle stagger: 5 - name: index stagger: -6 padding: 16 - name: inner stagger: -2 rows: - name: bottom padding: 16 - name: home padding: 16 - name: top thumbfan: anchor: ref: inner_bottom shift: [-4, -22] columns: - name: wrong_near padding: 21.25 rotate: -28 origin: [9.5, -9] skip: yes - name: home column_wire: middle rotate: -28 origin: [9.5, -9] - name: far column_wire: index rows: - name: thumb thumbfan_reverse_pass: anchor: ref: home_thumb reverse: yes columns: - name: home_again rotate: 28 origin: [-9.5, -9] skip: yes - name: near padding: 16 column_wire: ring # TODO: this is just a test for Dan - name: nearer column_wire: pinky rows: - name: thumb angle: -20 mirror: ref: pinky_bottom # The mk1's origin was the bottom left corner of the bottom pinky key. # But it later got rotated by the bottom *right* corner as the pinky angle # and then rotated again for the inter-half angle so [0, 0] was nowhere on # the actual result. # # Since the new origin is the center of the pinky bottom, we have to convert # the old, round 250 width to this new coordinate system if we want backward # compatibility. The following snippet was used to arrive at 233.5881016. # # old_origin = new Point(7, 7) # old_origin.rotate(5, [14, 0]) # old_origin.rotate(-20, [0, 0]) # new_width = 250 - (2 * old_origin.x) # # TODO: Hahaaa, the squishing fails, because the width reference points are # NOT stationary! gotta move to distances between some other points # (definitely something from among the HOME positions!!!) distance: 233.5881016