Commit c95cf580c761
Changed files (4)
keyboards
keyboards/keymap-drawer/config.yaml
@@ -406,7 +406,7 @@ draw_config:
use_local_cache: true
parse_config:
zmk_additional_includes:
- - "/home/vincent/src/experiments/zmk-helpers/include"
+ - "__DEPS_DIR__/zmk-helpers/include"
preprocess: true
skip_binding_parsing: false
raw_binding_map:
keyboards/.gitignore
@@ -0,0 +1,1 @@
+.deps/
keyboards/eyelash_corne.svg
@@ -141,11 +141,15 @@
viewBox="0 0 24 24"
- fill="currentColor"
- class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-down"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="icon icon-tabler icons-tabler-outline icon-tabler-arrow-big-down"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <path d="M10 2l-.15 .005a2 2 0 0 0 -1.85 1.995v6.999l-2.586 .001a2 2 0 0 0 -1.414 3.414l6.586 6.586a2 2 0 0 0 2.828 0l6.586 -6.586a2 2 0 0 0 .434 -2.18l-.068 -.145a2 2 0 0 0 -1.78 -1.089l-2.586 -.001v-6.999a2 2 0 0 0 -2 -2h-4z" />
+ <path d="M15 4v8h3.586a1 1 0 0 1 .707 1.707l-6.586 6.586a1 1 0 0 1 -1.414 0l-6.586 -6.586a1 1 0 0 1 .707 -1.707h3.586v-8a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1" />
</svg>
</svg>
<svg id="tabler:arrow-big-left">
@@ -154,11 +158,15 @@
viewBox="0 0 24 24"
- fill="currentColor"
- class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-left"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="icon icon-tabler icons-tabler-outline icon-tabler-arrow-big-left"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <path d="M9.586 4l-6.586 6.586a2 2 0 0 0 0 2.828l6.586 6.586a2 2 0 0 0 2.18 .434l.145 -.068a2 2 0 0 0 1.089 -1.78v-2.586h7a2 2 0 0 0 2 -2v-4l-.005 -.15a2 2 0 0 0 -1.995 -1.85l-7 -.001v-2.585a2 2 0 0 0 -3.414 -1.414z" />
+ <path d="M20 15h-8v3.586a1 1 0 0 1 -1.707 .707l-6.586 -6.586a1 1 0 0 1 0 -1.414l6.586 -6.586a1 1 0 0 1 1.707 .707v3.586h8a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1" />
</svg>
</svg>
<svg id="tabler:arrow-big-right">
@@ -167,11 +175,15 @@
viewBox="0 0 24 24"
- fill="currentColor"
- class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-right"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="icon icon-tabler icons-tabler-outline icon-tabler-arrow-big-right"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <path d="M12.089 3.634a2 2 0 0 0 -1.089 1.78l-.001 2.586h-6.999a2 2 0 0 0 -2 2v4l.005 .15a2 2 0 0 0 1.995 1.85l6.999 -.001l.001 2.587a2 2 0 0 0 3.414 1.414l6.586 -6.586a2 2 0 0 0 0 -2.828l-6.586 -6.586a2 2 0 0 0 -2.18 -.434l-.145 .068z" />
+ <path d="M4 9h8v-3.586a1 1 0 0 1 1.707 -.707l6.586 6.586a1 1 0 0 1 0 1.414l-6.586 6.586a1 1 0 0 1 -1.707 -.707v-3.586h-8a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1" />
</svg>
</svg>
<svg id="tabler:arrow-big-up">
@@ -180,11 +192,15 @@
viewBox="0 0 24 24"
- fill="currentColor"
- class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-up"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="icon icon-tabler icons-tabler-outline icon-tabler-arrow-big-up"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <path d="M10.586 3l-6.586 6.586a2 2 0 0 0 -.434 2.18l.068 .145a2 2 0 0 0 1.78 1.089h2.586v7a2 2 0 0 0 2 2h4l.15 -.005a2 2 0 0 0 1.85 -1.995l-.001 -7h2.587a2 2 0 0 0 1.414 -3.414l-6.586 -6.586a2 2 0 0 0 -2.828 0z" />
+ <path d="M9 20v-8h-3.586a1 1 0 0 1 -.707 -1.707l6.586 -6.586a1 1 0 0 1 1.414 0l6.586 6.586a1 1 0 0 1 -.707 1.707h-3.586v8a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1" />
</svg>
</svg>
<svg id="tabler:camera">
@@ -211,12 +227,16 @@
viewBox="0 0 24 24"
- fill="currentColor"
- class="icon icon-tabler icons-tabler-filled icon-tabler-player-track-next"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="icon icon-tabler icons-tabler-outline icon-tabler-player-track-next"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <path d="M2 5v14c0 .86 1.012 1.318 1.659 .753l8 -7a1 1 0 0 0 0 -1.506l-8 -7c-.647 -.565 -1.659 -.106 -1.659 .753z" />
- <path d="M13 5v14c0 .86 1.012 1.318 1.659 .753l8 -7a1 1 0 0 0 0 -1.506l-8 -7c-.647 -.565 -1.659 -.106 -1.659 .753z" />
+ <path d="M3 5v14l8 -7l-8 -7" />
+ <path d="M14 5v14l8 -7l-8 -7" />
</svg>
</svg>
<svg id="tabler:player-track-prev">
@@ -225,12 +245,16 @@
viewBox="0 0 24 24"
- fill="currentColor"
- class="icon icon-tabler icons-tabler-filled icon-tabler-player-track-prev"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ stroke-linecap="round"
+ stroke-linejoin="round"
+ class="icon icon-tabler icons-tabler-outline icon-tabler-player-track-prev"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <path d="M20.341 4.247l-8 7a1 1 0 0 0 0 1.506l8 7c.647 .565 1.659 .106 1.659 -.753v-14c0 -.86 -1.012 -1.318 -1.659 -.753z" />
- <path d="M9.341 4.247l-8 7a1 1 0 0 0 0 1.506l8 7c.647 .565 1.659 .106 1.659 -.753v-14c0 -.86 -1.012 -1.318 -1.659 -.753z" />
+ <path d="M21 5v14l-8 -7l8 -7" />
+ <path d="M10 5v14l-8 -7l8 -7" />
</svg>
</svg>
<svg id="tabler:space">
@@ -608,7 +632,7 @@ path.combo {
</g>
<g transform="translate(546, 97)" class="key keypos-20">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
-<text x="0" y="0" class="key tap"><tspan style="font-size: 86%">ALT_REP</tspan></text>
+<use href="#material:keyboard_return" xlink:href="#material:keyboard_return" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_return"/>
</g>
<g transform="translate(602, 97)" class="key keypos-21">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
@@ -739,77 +763,107 @@ path.combo {
<text x="868" y="98" class="combo tap">ESC</text>
</g>
<g class="combo combopos-1">
+<path d="M490,203 l-247,0" class="combo"/>
+<path d="M490,203 l247,0" class="combo"/>
+<rect rx="6" ry="6" x="474" y="187" width="32" height="32" class="combo"/>
+<text x="490" y="203" class="combo tap"><tspan style="font-size: 86%">&leader</tspan></text>
+</g>
+<g class="combo combopos-2">
<rect rx="6" ry="6" x="152" y="15" width="32" height="32" class="combo"/>
<text x="168" y="31" class="combo tap">@</text>
</g>
-<g class="combo combopos-2">
+<g class="combo combopos-3">
<rect rx="6" ry="6" x="96" y="26" width="32" height="32" class="combo"/>
<text x="112" y="42" class="combo tap">|</text>
</g>
-<g class="combo combopos-3">
+<g class="combo combopos-4">
<rect rx="6" ry="6" x="208" y="15" width="32" height="32" class="combo"/>
<text x="224" y="31" class="combo tap">#</text>
</g>
-<g class="combo combopos-4">
+<g class="combo combopos-5">
<rect rx="6" ry="6" x="264" y="22" width="32" height="32" class="combo"/>
<text x="280" y="38" class="combo tap">&</text>
</g>
-<g class="combo combopos-5">
+<g class="combo combopos-6">
<rect rx="6" ry="6" x="236" y="47" width="32" height="32" class="combo"/>
<text x="252" y="63" class="combo tap">$</text>
</g>
-<g class="combo combopos-6">
+<g class="combo combopos-7">
<rect rx="6" ry="6" x="180" y="40" width="32" height="32" class="combo"/>
<text x="196" y="56" class="combo tap">/</text>
</g>
-<g class="combo combopos-7">
+<g class="combo combopos-8">
<rect rx="6" ry="6" x="180" y="96" width="32" height="32" class="combo"/>
<text x="196" y="112" class="combo tap">\</text>
</g>
-<g class="combo combopos-8">
+<g class="combo combopos-9">
<rect rx="6" ry="6" x="124" y="47" width="32" height="32" class="combo"/>
<text x="140" y="63" class="combo tap">-</text>
</g>
-<g class="combo combopos-9">
+<g class="combo combopos-10">
<rect rx="6" ry="6" x="236" y="103" width="32" height="32" class="combo"/>
<text x="252" y="119" class="combo tap">_</text>
</g>
-<g class="combo combopos-10">
+<g class="combo combopos-11">
<rect rx="6" ry="6" x="124" y="103" width="32" height="32" class="combo"/>
<text x="140" y="119" class="combo tap">=</text>
</g>
-<g class="combo combopos-11">
+<g class="combo combopos-12">
<rect rx="6" ry="6" x="768" y="40" width="32" height="32" class="combo"/>
<text x="784" y="56" class="combo tap">(</text>
</g>
-<g class="combo combopos-12">
+<g class="combo combopos-13">
<rect rx="6" ry="6" x="768" y="96" width="32" height="32" class="combo"/>
<text x="784" y="112" class="combo tap">)</text>
</g>
-<g class="combo combopos-13">
+<g class="combo combopos-14">
<rect rx="6" ry="6" x="712" y="47" width="32" height="32" class="combo"/>
<text x="728" y="63" class="combo tap">{</text>
</g>
-<g class="combo combopos-14">
+<g class="combo combopos-15">
<rect rx="6" ry="6" x="712" y="103" width="32" height="32" class="combo"/>
<text x="728" y="119" class="combo tap">}</text>
</g>
-<g class="combo combopos-15">
-<rect rx="6" ry="6" x="824" y="47" width="32" height="32" class="combo"/>
-<text x="840" y="63" class="combo tap">]</text>
-</g>
<g class="combo combopos-16">
-<rect rx="6" ry="6" x="824" y="103" width="32" height="32" class="combo"/>
-<text x="840" y="119" class="combo tap">[</text>
+<rect rx="6" ry="6" x="824" y="47" width="32" height="32" class="combo"/>
+<text x="840" y="63" class="combo tap">[</text>
</g>
<g class="combo combopos-17">
+<rect rx="6" ry="6" x="824" y="103" width="32" height="32" class="combo"/>
+<text x="840" y="119" class="combo tap">]</text>
+</g>
+<g class="combo combopos-18">
<rect rx="6" ry="6" x="796" y="15" width="32" height="32" class="combo"/>
<text x="812" y="31" class="combo tap">></text>
</g>
-<g class="combo combopos-18">
+<g class="combo combopos-19">
<rect rx="6" ry="6" x="740" y="15" width="32" height="32" class="combo"/>
<text x="756" y="31" class="combo tap"><</text>
</g>
+<g class="combo combopos-20">
+<rect rx="6" ry="6" x="656" y="53" width="32" height="32" class="combo"/>
+<text x="672" y="69" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-21">
+<rect rx="6" ry="6" x="292" y="53" width="32" height="32" class="combo"/>
+<text x="308" y="69" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-22">
+<rect rx="6" ry="6" x="292" y="109" width="32" height="32" class="combo"/>
+<text x="308" y="125" class="combo tap">%</text>
+</g>
+<g class="combo combopos-23">
+<rect rx="6" ry="6" x="656" y="109" width="32" height="32" class="combo"/>
+<text x="672" y="125" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-24">
+<rect rx="6" ry="6" x="880" y="61" width="32" height="32" class="combo"/>
+<text x="896" y="77" class="combo tap">*</text>
+</g>
+<g class="combo combopos-25">
+<rect rx="6" ry="6" x="880" y="117" width="32" height="32" class="combo"/>
+<text x="896" y="133" class="combo tap">+</text>
+</g>
</g>
</g>
<g transform="translate(30, 318)" class="layer-ErgoL">
@@ -901,7 +955,7 @@ path.combo {
</g>
<g transform="translate(546, 97)" class="key keypos-20">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
-<text x="0" y="0" class="key tap"><tspan style="font-size: 86%">ALT_REP</tspan></text>
+<use href="#material:keyboard_return" xlink:href="#material:keyboard_return" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_return"/>
</g>
<g transform="translate(602, 97)" class="key keypos-21">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
@@ -1023,77 +1077,107 @@ path.combo {
<text x="868" y="98" class="combo tap">ESC</text>
</g>
<g class="combo combopos-1">
+<path d="M490,203 l-247,0" class="combo"/>
+<path d="M490,203 l247,0" class="combo"/>
+<rect rx="6" ry="6" x="474" y="187" width="32" height="32" class="combo"/>
+<text x="490" y="203" class="combo tap"><tspan style="font-size: 86%">&leader</tspan></text>
+</g>
+<g class="combo combopos-2">
<rect rx="6" ry="6" x="152" y="15" width="32" height="32" class="combo"/>
<text x="168" y="31" class="combo tap">@</text>
</g>
-<g class="combo combopos-2">
+<g class="combo combopos-3">
<rect rx="6" ry="6" x="96" y="26" width="32" height="32" class="combo"/>
<text x="112" y="42" class="combo tap">|</text>
</g>
-<g class="combo combopos-3">
+<g class="combo combopos-4">
<rect rx="6" ry="6" x="208" y="15" width="32" height="32" class="combo"/>
<text x="224" y="31" class="combo tap">#</text>
</g>
-<g class="combo combopos-4">
+<g class="combo combopos-5">
<rect rx="6" ry="6" x="264" y="22" width="32" height="32" class="combo"/>
<text x="280" y="38" class="combo tap">&</text>
</g>
-<g class="combo combopos-5">
+<g class="combo combopos-6">
<rect rx="6" ry="6" x="236" y="47" width="32" height="32" class="combo"/>
<text x="252" y="63" class="combo tap">$</text>
</g>
-<g class="combo combopos-6">
+<g class="combo combopos-7">
<rect rx="6" ry="6" x="180" y="40" width="32" height="32" class="combo"/>
<text x="196" y="56" class="combo tap">/</text>
</g>
-<g class="combo combopos-7">
+<g class="combo combopos-8">
<rect rx="6" ry="6" x="180" y="96" width="32" height="32" class="combo"/>
<text x="196" y="112" class="combo tap">\</text>
</g>
-<g class="combo combopos-8">
+<g class="combo combopos-9">
<rect rx="6" ry="6" x="124" y="47" width="32" height="32" class="combo"/>
<text x="140" y="63" class="combo tap">-</text>
</g>
-<g class="combo combopos-9">
+<g class="combo combopos-10">
<rect rx="6" ry="6" x="236" y="103" width="32" height="32" class="combo"/>
<text x="252" y="119" class="combo tap">_</text>
</g>
-<g class="combo combopos-10">
+<g class="combo combopos-11">
<rect rx="6" ry="6" x="124" y="103" width="32" height="32" class="combo"/>
<text x="140" y="119" class="combo tap">=</text>
</g>
-<g class="combo combopos-11">
+<g class="combo combopos-12">
<rect rx="6" ry="6" x="768" y="40" width="32" height="32" class="combo"/>
<text x="784" y="56" class="combo tap">(</text>
</g>
-<g class="combo combopos-12">
+<g class="combo combopos-13">
<rect rx="6" ry="6" x="768" y="96" width="32" height="32" class="combo"/>
<text x="784" y="112" class="combo tap">)</text>
</g>
-<g class="combo combopos-13">
+<g class="combo combopos-14">
<rect rx="6" ry="6" x="712" y="47" width="32" height="32" class="combo"/>
<text x="728" y="63" class="combo tap">{</text>
</g>
-<g class="combo combopos-14">
+<g class="combo combopos-15">
<rect rx="6" ry="6" x="712" y="103" width="32" height="32" class="combo"/>
<text x="728" y="119" class="combo tap">}</text>
</g>
-<g class="combo combopos-15">
-<rect rx="6" ry="6" x="824" y="47" width="32" height="32" class="combo"/>
-<text x="840" y="63" class="combo tap">]</text>
-</g>
<g class="combo combopos-16">
-<rect rx="6" ry="6" x="824" y="103" width="32" height="32" class="combo"/>
-<text x="840" y="119" class="combo tap">[</text>
+<rect rx="6" ry="6" x="824" y="47" width="32" height="32" class="combo"/>
+<text x="840" y="63" class="combo tap">[</text>
</g>
<g class="combo combopos-17">
+<rect rx="6" ry="6" x="824" y="103" width="32" height="32" class="combo"/>
+<text x="840" y="119" class="combo tap">]</text>
+</g>
+<g class="combo combopos-18">
<rect rx="6" ry="6" x="796" y="15" width="32" height="32" class="combo"/>
<text x="812" y="31" class="combo tap">></text>
</g>
-<g class="combo combopos-18">
+<g class="combo combopos-19">
<rect rx="6" ry="6" x="740" y="15" width="32" height="32" class="combo"/>
<text x="756" y="31" class="combo tap"><</text>
</g>
+<g class="combo combopos-20">
+<rect rx="6" ry="6" x="656" y="53" width="32" height="32" class="combo"/>
+<text x="672" y="69" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-21">
+<rect rx="6" ry="6" x="292" y="53" width="32" height="32" class="combo"/>
+<text x="308" y="69" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-22">
+<rect rx="6" ry="6" x="292" y="109" width="32" height="32" class="combo"/>
+<text x="308" y="125" class="combo tap">%</text>
+</g>
+<g class="combo combopos-23">
+<rect rx="6" ry="6" x="656" y="109" width="32" height="32" class="combo"/>
+<text x="672" y="125" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-24">
+<rect rx="6" ry="6" x="880" y="61" width="32" height="32" class="combo"/>
+<text x="896" y="77" class="combo tap">*</text>
+</g>
+<g class="combo combopos-25">
+<rect rx="6" ry="6" x="880" y="117" width="32" height="32" class="combo"/>
+<text x="896" y="133" class="combo tap">+</text>
+</g>
</g>
</g>
<g transform="translate(30, 637)" class="layer-Qwerty">
@@ -1185,7 +1269,7 @@ path.combo {
</g>
<g transform="translate(546, 97)" class="key keypos-20">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
-<text x="0" y="0" class="key tap"><tspan style="font-size: 86%">ALT_REP</tspan></text>
+<use href="#material:keyboard_return" xlink:href="#material:keyboard_return" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_return"/>
</g>
<g transform="translate(602, 97)" class="key keypos-21">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
@@ -1304,77 +1388,107 @@ path.combo {
<text x="868" y="98" class="combo tap">ESC</text>
</g>
<g class="combo combopos-1">
+<path d="M490,203 l-247,0" class="combo"/>
+<path d="M490,203 l247,0" class="combo"/>
+<rect rx="6" ry="6" x="474" y="187" width="32" height="32" class="combo"/>
+<text x="490" y="203" class="combo tap"><tspan style="font-size: 86%">&leader</tspan></text>
+</g>
+<g class="combo combopos-2">
<rect rx="6" ry="6" x="152" y="15" width="32" height="32" class="combo"/>
<text x="168" y="31" class="combo tap">@</text>
</g>
-<g class="combo combopos-2">
+<g class="combo combopos-3">
<rect rx="6" ry="6" x="96" y="26" width="32" height="32" class="combo"/>
<text x="112" y="42" class="combo tap">|</text>
</g>
-<g class="combo combopos-3">
+<g class="combo combopos-4">
<rect rx="6" ry="6" x="208" y="15" width="32" height="32" class="combo"/>
<text x="224" y="31" class="combo tap">#</text>
</g>
-<g class="combo combopos-4">
+<g class="combo combopos-5">
<rect rx="6" ry="6" x="264" y="22" width="32" height="32" class="combo"/>
<text x="280" y="38" class="combo tap">&</text>
</g>
-<g class="combo combopos-5">
+<g class="combo combopos-6">
<rect rx="6" ry="6" x="236" y="47" width="32" height="32" class="combo"/>
<text x="252" y="63" class="combo tap">$</text>
</g>
-<g class="combo combopos-6">
+<g class="combo combopos-7">
<rect rx="6" ry="6" x="180" y="40" width="32" height="32" class="combo"/>
<text x="196" y="56" class="combo tap">/</text>
</g>
-<g class="combo combopos-7">
+<g class="combo combopos-8">
<rect rx="6" ry="6" x="180" y="96" width="32" height="32" class="combo"/>
<text x="196" y="112" class="combo tap">\</text>
</g>
-<g class="combo combopos-8">
+<g class="combo combopos-9">
<rect rx="6" ry="6" x="124" y="47" width="32" height="32" class="combo"/>
<text x="140" y="63" class="combo tap">-</text>
</g>
-<g class="combo combopos-9">
+<g class="combo combopos-10">
<rect rx="6" ry="6" x="236" y="103" width="32" height="32" class="combo"/>
<text x="252" y="119" class="combo tap">_</text>
</g>
-<g class="combo combopos-10">
+<g class="combo combopos-11">
<rect rx="6" ry="6" x="124" y="103" width="32" height="32" class="combo"/>
<text x="140" y="119" class="combo tap">=</text>
</g>
-<g class="combo combopos-11">
+<g class="combo combopos-12">
<rect rx="6" ry="6" x="768" y="40" width="32" height="32" class="combo"/>
<text x="784" y="56" class="combo tap">(</text>
</g>
-<g class="combo combopos-12">
+<g class="combo combopos-13">
<rect rx="6" ry="6" x="768" y="96" width="32" height="32" class="combo"/>
<text x="784" y="112" class="combo tap">)</text>
</g>
-<g class="combo combopos-13">
+<g class="combo combopos-14">
<rect rx="6" ry="6" x="712" y="47" width="32" height="32" class="combo"/>
<text x="728" y="63" class="combo tap">{</text>
</g>
-<g class="combo combopos-14">
+<g class="combo combopos-15">
<rect rx="6" ry="6" x="712" y="103" width="32" height="32" class="combo"/>
<text x="728" y="119" class="combo tap">}</text>
</g>
-<g class="combo combopos-15">
-<rect rx="6" ry="6" x="824" y="47" width="32" height="32" class="combo"/>
-<text x="840" y="63" class="combo tap">]</text>
-</g>
<g class="combo combopos-16">
-<rect rx="6" ry="6" x="824" y="103" width="32" height="32" class="combo"/>
-<text x="840" y="119" class="combo tap">[</text>
+<rect rx="6" ry="6" x="824" y="47" width="32" height="32" class="combo"/>
+<text x="840" y="63" class="combo tap">[</text>
</g>
<g class="combo combopos-17">
+<rect rx="6" ry="6" x="824" y="103" width="32" height="32" class="combo"/>
+<text x="840" y="119" class="combo tap">]</text>
+</g>
+<g class="combo combopos-18">
<rect rx="6" ry="6" x="796" y="15" width="32" height="32" class="combo"/>
<text x="812" y="31" class="combo tap">></text>
</g>
-<g class="combo combopos-18">
+<g class="combo combopos-19">
<rect rx="6" ry="6" x="740" y="15" width="32" height="32" class="combo"/>
<text x="756" y="31" class="combo tap"><</text>
</g>
+<g class="combo combopos-20">
+<rect rx="6" ry="6" x="656" y="53" width="32" height="32" class="combo"/>
+<text x="672" y="69" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-21">
+<rect rx="6" ry="6" x="292" y="53" width="32" height="32" class="combo"/>
+<text x="308" y="69" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-22">
+<rect rx="6" ry="6" x="292" y="109" width="32" height="32" class="combo"/>
+<text x="308" y="125" class="combo tap">%</text>
+</g>
+<g class="combo combopos-23">
+<rect rx="6" ry="6" x="656" y="109" width="32" height="32" class="combo"/>
+<text x="672" y="125" class="combo tap"><tspan style="font-size: 60%">&standalo…</tspan></text>
+</g>
+<g class="combo combopos-24">
+<rect rx="6" ry="6" x="880" y="61" width="32" height="32" class="combo"/>
+<text x="896" y="77" class="combo tap">*</text>
+</g>
+<g class="combo combopos-25">
+<rect rx="6" ry="6" x="880" y="117" width="32" height="32" class="combo"/>
+<text x="896" y="133" class="combo tap">+</text>
+</g>
</g>
</g>
<g transform="translate(30, 955)" class="layer-Accents">
@@ -2174,6 +2288,7 @@ path.combo {
</g>
<g transform="translate(196, 28)" class="key keypos-3">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#scroll-up" xlink:href="#scroll-up" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-up"/>
</g>
<g transform="translate(252, 35)" class="key keypos-4">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
@@ -2209,11 +2324,10 @@ path.combo {
</g>
<g transform="translate(84, 105)" class="key keypos-14">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
-<use href="#scroll-left" xlink:href="#scroll-left" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-left"/>
</g>
<g transform="translate(140, 91)" class="key keypos-15">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
-<use href="#scroll-up" xlink:href="#scroll-up" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-up"/>
+<use href="#scroll-left" xlink:href="#scroll-left" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-left"/>
</g>
<g transform="translate(196, 84)" class="key keypos-16">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
@@ -2335,160 +2449,6 @@ path.combo {
<g transform="translate(0, 56)">
<g transform="translate(28, 28)" class="key combo-separate keypos-0">
<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key combo-separate"/>
-<a href="#ErgoL">
-<text x="0" y="0" class="key combo-separate tap layer-activator">ErgoL</text>
-</a><text x="0" y="23" class="key combo-separate hold">toggle</text>
-</g>
-<g transform="translate(14, 83)" class="key keypos-1">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(42, 83)" class="key keypos-2">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(70, 76)" class="key keypos-3">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(98, 73)" class="key keypos-4">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(126, 76)" class="key keypos-5">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(154, 80)" class="key keypos-6">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(273, 80)" class="key keypos-7">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(336, 80)" class="key keypos-8">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(364, 76)" class="key keypos-9">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(392, 73)" class="key keypos-10">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(420, 76)" class="key keypos-11">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(448, 83)" class="key keypos-12">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(476, 83)" class="key keypos-13">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(14, 111)" class="key keypos-14">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(42, 111)" class="key keypos-15">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(70, 104)" class="key keypos-16">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(98, 101)" class="key keypos-17">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(126, 104)" class="key keypos-18">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(154, 108)" class="key keypos-19">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(245, 108)" class="key keypos-20">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(273, 108)" class="key keypos-21">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(301, 108)" class="key keypos-22">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(336, 108)" class="key keypos-23">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(364, 104)" class="key keypos-24">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(392, 101)" class="key keypos-25">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(420, 104)" class="key keypos-26">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(448, 111)" class="key keypos-27">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(476, 111)" class="key keypos-28">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(14, 139)" class="key keypos-29">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(42, 139)" class="key keypos-30">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(70, 132)" class="key keypos-31">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(98, 129)" class="key keypos-32">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(126, 132)" class="key keypos-33">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(154, 136)" class="key keypos-34">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(189, 136)" class="key keypos-35">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(273, 136)" class="key keypos-36">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(336, 136)" class="key keypos-37">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(364, 132)" class="key keypos-38">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(392, 129)" class="key keypos-39">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(420, 132)" class="key keypos-40">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(448, 139)" class="key keypos-41">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(476, 139)" class="key keypos-42">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(112, 160)" class="key keypos-43">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(143, 164) rotate(12.0)" class="key held keypos-44">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
-</g>
-<g transform="translate(174, 172) rotate(24.0)" class="key keypos-45">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(316, 171) rotate(-24.0)" class="key keypos-46">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(347, 164) rotate(-12.0)" class="key held keypos-47">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
-</g>
-<g transform="translate(378, 160)" class="key keypos-48">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-</g>
-</g>
-<g transform="translate(550, 2548)" class="layer-combopos-1">
-<g transform="translate(0, 56)">
-<g transform="translate(28, 28)" class="key combo-separate keypos-0">
-<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key combo-separate"/>
<a href="#Bepo">
<text x="0" y="0" class="key combo-separate tap layer-activator">Bepo</text>
</a><text x="0" y="23" class="key combo-separate hold">toggle</text>
@@ -2639,6 +2599,160 @@ path.combo {
</g>
</g>
</g>
+<g transform="translate(550, 2548)" class="layer-combopos-1">
+<g transform="translate(0, 56)">
+<g transform="translate(28, 28)" class="key combo-separate keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key combo-separate"/>
+<a href="#ErgoL">
+<text x="0" y="0" class="key combo-separate tap layer-activator">ErgoL</text>
+</a><text x="0" y="23" class="key combo-separate hold">toggle</text>
+</g>
+<g transform="translate(14, 83)" class="key keypos-1">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 83)" class="key held keypos-2">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(70, 76)" class="key keypos-3">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 73)" class="key keypos-4">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 76)" class="key keypos-5">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 80)" class="key keypos-6">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(273, 80)" class="key keypos-7">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(336, 80)" class="key keypos-8">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(364, 76)" class="key keypos-9">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(392, 73)" class="key keypos-10">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(420, 76)" class="key keypos-11">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(448, 83)" class="key held keypos-12">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(476, 83)" class="key keypos-13">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 111)" class="key keypos-14">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 111)" class="key keypos-15">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 104)" class="key keypos-16">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 101)" class="key keypos-17">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 104)" class="key keypos-18">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 108)" class="key keypos-19">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(245, 108)" class="key keypos-20">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(273, 108)" class="key keypos-21">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(301, 108)" class="key keypos-22">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(336, 108)" class="key keypos-23">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(364, 104)" class="key keypos-24">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(392, 101)" class="key keypos-25">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(420, 104)" class="key keypos-26">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(448, 111)" class="key keypos-27">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(476, 111)" class="key keypos-28">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 139)" class="key keypos-29">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 139)" class="key keypos-30">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 132)" class="key keypos-31">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 129)" class="key keypos-32">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 132)" class="key keypos-33">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 136)" class="key keypos-34">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(189, 136)" class="key keypos-35">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(273, 136)" class="key keypos-36">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(336, 136)" class="key keypos-37">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(364, 132)" class="key keypos-38">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(392, 129)" class="key keypos-39">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(420, 132)" class="key keypos-40">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(448, 139)" class="key keypos-41">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(476, 139)" class="key keypos-42">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(112, 160)" class="key keypos-43">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(143, 164) rotate(12.0)" class="key keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(174, 172) rotate(24.0)" class="key keypos-45">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(316, 171) rotate(-24.0)" class="key keypos-46">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(347, 164) rotate(-12.0)" class="key keypos-47">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 160)" class="key keypos-48">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+</g>
+</g>
<g transform="translate(30, 2794)" class="layer-combopos-2">
<g transform="translate(0, 28)">
<g transform="translate(28, 28)" class="key combo-separate keypos-0">
@@ -2773,24 +2887,24 @@ path.combo {
<g transform="translate(476, 139)" class="key keypos-42">
<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
</g>
-<g transform="translate(112, 160)" class="key held keypos-43">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
-</g>
-<g transform="translate(143, 164) rotate(12.0)" class="key keypos-44">
+<g transform="translate(112, 160)" class="key keypos-43">
<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
</g>
+<g transform="translate(143, 164) rotate(12.0)" class="key held keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
<g transform="translate(174, 172) rotate(24.0)" class="key keypos-45">
<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
</g>
<g transform="translate(316, 171) rotate(-24.0)" class="key keypos-46">
<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
</g>
-<g transform="translate(347, 164) rotate(-12.0)" class="key keypos-47">
-<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
-</g>
-<g transform="translate(378, 160)" class="key held keypos-48">
+<g transform="translate(347, 164) rotate(-12.0)" class="key held keypos-47">
<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
</g>
+<g transform="translate(378, 160)" class="key keypos-48">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
</g>
</g>
<g transform="translate(550, 2794)" class="layer-combopos-3">
keyboards/generate-keymaps.sh
@@ -10,6 +10,7 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
KEYMAP_DRAWER_DIR="$SCRIPT_DIR/keymap-drawer"
OUTPUT_DIR="${OUTPUT_DIR:-$SCRIPT_DIR}"
+DEPS_DIR="$SCRIPT_DIR/.deps"
# Colors for output
GREEN='\033[0;32m'
@@ -32,11 +33,57 @@ log_warn() {
# Create output directory
mkdir -p "$OUTPUT_DIR"
+# Ensure zmk-helpers is cloned at the correct revision from west.yml
+ensure_zmk_helpers() {
+ local west_yml="$SCRIPT_DIR/eyelash_corne/config/west.yml"
+ local target_dir="$DEPS_DIR/zmk-helpers"
+
+ if [[ ! -f "$west_yml" ]]; then
+ log_warn "west.yml not found at $west_yml, skipping zmk-helpers setup"
+ return 1
+ fi
+
+ # Parse revision from west.yml (the revision line after "name: zmk-helpers")
+ local revision
+ revision=$(awk '/name: zmk-helpers/{found=1} found && /revision:/{print $2; exit}' "$west_yml")
+ if [[ -z "$revision" ]]; then
+ log_warn "Could not parse zmk-helpers revision from west.yml"
+ return 1
+ fi
+
+ # Parse remote URL from west.yml
+ local remote_name
+ remote_name=$(awk '/name: zmk-helpers/{found=1} found && /remote:/{print $2; exit}' "$west_yml")
+ local url_base
+ url_base=$(awk -v name="$remote_name" '$0 ~ "name: " name {found=1} found && /url-base:/{print $2; exit}' "$west_yml")
+ local repo_url="${url_base}/zmk-helpers.git"
+
+ if [[ ! -d "$target_dir" ]]; then
+ log_info "Cloning zmk-helpers ($revision) to $target_dir..."
+ mkdir -p "$DEPS_DIR"
+ git clone --depth 1 --branch "$revision" "$repo_url" "$target_dir" 2>/dev/null
+ log_success "zmk-helpers cloned at $revision"
+ fi
+}
+
+# Generate resolved config with absolute deps path
+resolve_config() {
+ local config_template="$KEYMAP_DRAWER_DIR/config.yaml"
+ local resolved_config
+ resolved_config=$(mktemp "${TMPDIR:-/tmp}/keymap-drawer-config.XXXXXX.yaml")
+ sed "s|__DEPS_DIR__|$DEPS_DIR|g" "$config_template" >"$resolved_config"
+ echo "$resolved_config"
+}
+
+# Setup deps and config
+ensure_zmk_helpers
+RESOLVED_CONFIG=$(resolve_config)
+trap 'rm -f "$RESOLVED_CONFIG"' EXIT
+
generate_eyelash_corne() {
log_info "Generating keymap for eyelash_corne (ZMK)..."
local zmk_config="$SCRIPT_DIR/eyelash_corne/config/eyelash_corne.keymap"
- local config_yaml="$KEYMAP_DRAWER_DIR/config.yaml"
local output_svg="$OUTPUT_DIR/eyelash_corne.svg"
if [[ ! -f "$zmk_config" ]]; then
@@ -45,8 +92,8 @@ generate_eyelash_corne() {
fi
# Parse ZMK keymap and draw SVG
- keymap -c "$config_yaml" parse -z "$zmk_config" |
- keymap -c "$config_yaml" draw - >"$output_svg"
+ keymap -c "$RESOLVED_CONFIG" parse -z "$zmk_config" |
+ keymap -c "$RESOLVED_CONFIG" draw - >"$output_svg"
log_success "Generated: $output_svg"
}
@@ -60,7 +107,6 @@ generate_moonlander() {
local qmk_json="/tmp/moonlander_keymap.json"
local keymap_yaml="/tmp/moonlander_keymap.yaml"
local output_svg="$OUTPUT_DIR/moonlander.svg"
- local config_yaml="$KEYMAP_DRAWER_DIR/config.yaml"
# Check if QMK firmware is checked out
if [[ ! -d "$qmk_firmware_dir" ]]; then
@@ -85,7 +131,7 @@ generate_moonlander() {
# Parse QMK JSON to YAML
log_info "Parsing keymap to YAML..."
- keymap -c "$config_yaml" parse -c 14 -q "$qmk_json" >"$keymap_yaml"
+ keymap -c "$RESOLVED_CONFIG" parse -c 14 -q "$qmk_json" >"$keymap_yaml"
# Add manual combo definitions to the YAML
log_info "Adding manual combo definitions..."
@@ -129,7 +175,7 @@ EOF
# Draw SVG from YAML with combos
log_info "Drawing SVG with combos..."
- if keymap -c "$config_yaml" draw "$keymap_yaml" >"$output_svg" 2>&1; then
+ if keymap -c "$RESOLVED_CONFIG" draw "$keymap_yaml" >"$output_svg" 2>&1; then
log_success "Generated: $output_svg"
# Clean up temp files
rm -f "$qmk_json" "$keymap_yaml"