diff --git a/.github/workflows/keymap-drawer.yml b/.github/workflows/keymap-drawer.yml
new file mode 100644
index 0000000..a0305f4
--- /dev/null
+++ b/.github/workflows/keymap-drawer.yml
@@ -0,0 +1,15 @@
+name: Draw ZMK keymaps
+on: [workflow_dispatch]
+
+jobs:
+ draw:
+ uses: caksoylar/keymap-drawer/.github/workflows/draw-zmk.yml@main
+ permissions:
+ contents: write # allow workflow to commit to the repo
+ with:
+ amend_commit: true
+ keymap_patterns: "config/*.keymap" # path to the keymaps to parse
+ config_path: "images/config_keymap-drawer.yaml" # config file, ignored if not exists
+ output_folder: "images" # path to save produced SVG and keymap YAML files
+ parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''"
+ draw_args: "" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'"
diff --git a/images/config_keymap-drawer.yaml b/images/config_keymap-drawer.yaml
new file mode 100644
index 0000000..102a9e6
--- /dev/null
+++ b/images/config_keymap-drawer.yaml
@@ -0,0 +1,555 @@
+# config from: https://github.com/mctechnology17/zmk-config/blob/main/config/config_keymap-drawer.yaml
+
+draw_config:
+ key_w: 60
+ key_h: 56
+ split_gap: 30.0
+ combo_w: 28
+ combo_h: 26
+ key_rx: 6.0
+ key_ry: 6.0
+ dark_mode: true
+ n_columns: 1
+ separate_combo_diagrams: false
+ combo_diagrams_scale: 2
+ inner_pad_w: 2.0
+ inner_pad_h: 2.0
+ outer_pad_w: 40.0
+ outer_pad_h: 56.0
+ line_spacing: 1.2
+ arc_radius: 6.0
+ append_colon_to_layer_header: true
+ small_pad: 2.0
+ legend_rel_x: 0.0
+ legend_rel_y: 0.0
+ draw_key_sides: false
+ key_side_pars:
+ rel_x: 0.0
+ rel_y: 4.0
+ rel_w: 12.0
+ rel_h: 12.0
+ rx: 4.0
+ ry: 4.0
+ svg_extra_style: |
+ /* For default sytles, see https://github.com/caksoylar/keymap-drawer/blob/main/keymap_drawer/config.py#L85 */
+
+ svg.keymap {
+ font-family: Ubuntu Mono, Inconsolata, Consolas, Liberation Mono, Menlo, monospace;
+ font-size: 16px;
+ font-weight: bold;
+ text-rendering: optimizeLegibility;
+ }
+
+ /* Color accent for held keys
+ red = #f00
+ green = #0f0
+ blue = #00f
+ yellow = #ff0
+ cyan = #0ff
+ magenta = #f0f
+ white = #fff
+ black = #000
+ grey = #888
+ light grey = #ccc
+ #ffc
+ */
+ rect.held, rect.combo.held {
+ fill: #f00;
+ }
+
+ /* Technique borrowed and extended from https://github.com/englmaxi/zmk-config/blob/master/keymap-drawer/config.yaml */
+ .sym_sub_text.tap {
+ translate: -5px 2px;
+ font-size: 20px;
+ }
+ .sym_sub_text.shifted {
+ translate: 10px 13px;
+ font-size: 10px;
+ opacity: 1.0;
+ }
+ .combo.sym_sub_text.tap {
+ translate: -1px 1px;
+ }
+ .combo.sym_sub_text.shifted {
+ translate: 7px 5px;
+ font-size: 10px;
+ opacity: 1.0;
+ }
+
+ /* Toggle */
+ .toggle.shifted {
+ translate: -10px 12px;
+ }
+
+ .toggle.hold {
+ translate: 13px -23px;
+ }
+
+ /* Variant for tap-dances */
+ .tap_dance.tap {
+ translate: -7px 0px;
+ font-size: 12px;
+ }
+ .tap_dance.shifted {
+ translate: 7px 17px;
+ font-size: 12px;
+ opacity: 1.0;
+ }
+
+ /* Variant for symbol next to symbol */
+ .sym_by_sym.tap {
+ translate: -6px 0px;
+ }
+ .sym_by_sym.shifted {
+ translate: 10px 12px;
+ opacity: 1.0;
+ }
+
+ .combo.sym_by_sym.tap {
+ translate: -35px 0px;
+ }
+ .combo.sym_by_sym.shifted {
+ translate: 35px 20px;
+ opacity: 1.0;
+ }
+
+ .combo.sym_by_sym.hold {
+ visibility: hidden;
+ }
+
+ /* hide hold box for combo sym_by_sym */
+ .combo.sym_by_sym.hold > path[stroke="none"][fill="none"] {
+ visibility: hidden;
+ }
+ footer_text: 'Keymap View: keymap-drawer'
+ shrink_wide_legends: 6
+ style_layer_activators: true
+ glyph_tap_size: 18
+ glyph_hold_size: 15
+ glyph_shifted_size: 15
+ glyphs: {}
+parse_config:
+ preprocess: true
+ skip_binding_parsing: false
+ raw_binding_map:
+ "&sys_reset": Reset
+ "&bootloader": Boot
+ "&swapper": Win Next
+ "&caps_word": Caps Word
+ "&inv_qm": ¿
+ "&kp LC(LG(LEFT))": Desk Left
+ "&kp LC(LG(RIGHT))": Desk Right
+ "&kp LC(TAB)": Tab Right
+ "&kp LC(LS(TAB))": Tab Left
+ "&kp LA(F4)": Win Close
+ "&kp LC(F4)": Tab Close
+ "&kp LS(TAB)": Win Prev
+ "&kp LS(INS)": Paste
+ "&kp LG(L)": Lock
+ "&out OUT_USB": Out USB
+ "&out OUT_BLE": Out BLE
+ "&bt BT_SEL 0": BT 1
+ "&bt BT_SEL 1": BT 2
+ "&bt BT_SEL 2": BT 3
+ "&bt BT_SEL 3": BT 4
+ "&bt BT_SEL 4": BT 5
+ DISPLAY_UP:
+ t: $$mdi:television-classic$$
+ h: $$mdi:arrow-up$$
+ type: tap_dance
+ DISPLAY_DOWN:
+ t: $$mdi:television-classic$$
+ h: $$mdi:arrow-down$$
+ type: tap_dance
+ DISPLAY_LEFT:
+ t: $$mdi:television-classic$$
+ h: $$mdi:arrow-left$$
+ type: tap_dance
+ DISPLAY_RIGHT:
+ t: $$mdi:television-classic$$
+ h: $$mdi:arrow-right$$
+ type: tap_dance
+ DISPLAY_SPACE:
+ t: $$mdi:television-classic$$
+ h: $$mdi:keyboard-space$$
+ type: tap_dance
+ "&rgb_ug RGB_TOG":
+ t: $$mdi:led-on$$
+ h: $$mdi:toggle-switch$$
+ s: $$mdi:led-outline$$
+ type: toggle
+ "&rgb_ug RGB_VAI":
+ t: $$mdi:led-on$$
+ s: $$tabler:brightness-up$$
+ type: sym_by_sym
+ "&rgb_ug RGB_VAD":
+ t: $$mdi:led-outline$$
+ s: $$tabler:brightness-down$$
+ type: sym_by_sym
+ "&rgb_ug RGB_BRD":
+ t: $$mdi:led-on$$
+ s: $$tabler:brightness-up$$
+ type: sym_by_sym
+ "&rgb_ug RGB_BRI":
+ t: $$mdi:led-outline$$
+ s: $$tabler:brightness-down$$
+ type: sym_by_sym
+ "&rgb_ug RGB_SAI":
+ t: $$mdi:led-outline$$
+ s: $$mdi:eyedropper$$
+ type: sym_by_sym
+ "&rgb_ug RGB_SAD":
+ t: $$mdi:led-on$$
+ s: $$mdi:eyedropper$$
+ type: sym_by_sym
+ "&rgb_ug RGB_HUI":
+ t: $$mdi:led-on$$
+ s: $$mdi:palette$$
+ type: sym_by_sym
+ "&rgb_ug RGB_HUD":
+ t: $$mdi:led-outline$$
+ s: $$mdi:palette$$
+ type: sym_by_sym
+ "&rgb_ug RGB_RMOD":
+ t: $$mdi:led-on$$
+ h: $$mdi:page-previous-outline$$
+ type: tap_dance
+ "&rgb_ug RGB_MOD":
+ t: $$mdi:led-on$$
+ h: $$mdi:page-next-outline$$
+ type: tap_dance
+ "&rgb_ug RGB_EFF":
+ t: $$mdi:led-on$$
+ h: $$mdi:page-previous-outline$$
+ type: tap_dance
+ "&rgb_ug RGB_EFR":
+ t: $$mdi:led-on$$
+ h: $$mdi:page-next-outline$$
+ type: tap_dance
+ "&rgb_ug RGB_SPI":
+ t: $$mdi:led-on$$
+ h: $$mdi:speedometer$$
+ type: sym_by_sym
+ "&rgb_ug RGB_SPD":
+ t: $$mdi:led-on$$
+ h: $$mdi:speedometer-slow$$
+ type: sym_by_sym
+ "&rgb_ug RGB_UP":
+ t: $$mdi:led-on$$
+ h: $$mdi:arrow-up$$
+ type: tap_dance
+ "&rgb_ug RGB_DOWN":
+ t: $$mdi:led-on$$
+ h: $$mdi:arrow-down$$
+ type: tap_dance
+ "&rgb_ug RGB_LEFT":
+ t: $$mdi:led-on$$
+ h: $$mdi:arrow-left$$
+ type: tap_dance
+ "&rgb_ug RGB_RIGHT":
+ t: $$mdi:led-on$$
+ h: $$mdi:arrow-right$$
+ type: tap_dance
+ "&rgb_ug RGB_SPACE":
+ t: $$mdi:led-on$$
+ h: $$mdi:keyboard-space$$
+ type: tap_dance
+ "&rgb_ug RGB_COLOR_HSB(0,0,100)":
+ t: $$mdi:led-on$$
+ h: $$mdi:palette$$
+ type: tap_dance
+ "&rgb_ug RGB_COLOR_HSB(224,100,100)":
+ t: $$mdi:led-on$$
+ h: $$mdi:palette$$
+ type: tap_dance
+ U_WH_L:
+ t: $$mdi:mouse-outline$$
+ h: $$mdi:arrow-left$$
+ type: tap_dance
+ U_WH_R:
+ t: $$mdi:mouse-outline$$
+ h: $$mdi:arrow-right$$
+ type: tap_dance
+ U_WH_U:
+ t: $$mdi:mouse-outline$$
+ h: $$mdi:arrow-up$$
+ type: tap_dance
+ U_WH_D:
+ t: $$mdi:mouse-outline$$
+ h: $$mdi:arrow-down$$
+ type: tap_dance
+ U_MS_L:
+ t: $$mdi:mouse$$
+ h: $$mdi:arrow-left$$
+ type: tap_dance
+ U_MS_D:
+ t: $$mdi:mouse$$
+ h: $$mdi:arrow-down$$
+ type: tap_dance
+ U_MS_R:
+ t: $$mdi:mouse$$
+ h: $$mdi:arrow-right$$
+ type: tap_dance
+ U_MS_U:
+ t: $$mdi:mouse$$
+ h: $$mdi:arrow-up$$
+ type: tap_dance
+ CLICK_LEFT: $$mdi:cursor-default-click$$
+ CLICK_RIGHT: $$mdi:cursor-default-click-outline$$
+ CLICK_MIDDLE: $$mdi:cursor-default-click-outline$$
+ MEDIA_ESC:
+ t: $$mdi:keyboard-esc$$
+ h: $$mdi:music-note$$
+ MOUSE_TAB:
+ t: $$mdi:keyboard-tab$$
+ h: $$mdi:mouse$$
+ NUMBER_SPACE:
+ t: $$mdi:keyboard-space$$
+ h: $$mdi:numeric$$
+ "&mo _FUNCTION": $$mdi:function-variant$$
+ "&mo _CONFIG": $$mdi:cog$$
+ "&mo _LOCK": $$mdi:lock$$
+ "&mo _SYMBOL": $$mdi:symbol$$
+ "&mo _DISPLAY": $$mdi:television-classic$$
+ "&mo _OLED": $$mdi:television-classic$$
+ "&mo _LINUX": $$mdi:linux$$
+ "&mo _RGB": $$mdi:led-on$$
+ DE_CAPS: $$mdi:keyboard-caps$$
+ TAB: $$mdi:keyboard-tab$$
+ "&mt LSHFT COMMA":
+ t: $$mdi:google-downasaur$$
+ h: $$mdi:apple-keyboard-shift$$
+ type: tap_dance
+ "&kp LSHFT": $$mdi:apple-keyboard-shift$$
+ "&kp LCTRL": $$mdi:apple-keyboard-control$$
+ "&kp RCTRL": $$mdi:apple-keyboard-control$$
+ "&kp LGUI": $$mdi:apple-keyboard-command$$
+ "&kp RGUI": $$mdi:apple-keyboard-command$$
+ "&kp LALT": $$mdi:apple-keyboard-option$$
+ "&kp RALT": $$mdi:apple-keyboard-option$$
+ "&kp RSHFT": $$mdi:apple-keyboard-shift$$
+ "&kp BSPC": $$mdi:backspace-outline$$
+ sticky_label: sticky
+ toggle_label: toggle
+ tap_toggle_label: tap-toggle
+ trans_legend:
+ t: ▽
+ type: trans
+ layer_legend_map: {}
+ mark_alternate_layer_activators: false
+ modifier_fn_map:
+ left_ctrl: Ctl
+ right_ctrl: Ctl
+ left_shift: Sft
+ right_shift: Sft
+ left_alt: Alt
+ right_alt: AltGr
+ left_gui: Gui
+ right_gui: Gui
+ keycode_combiner: "{mods}+{key}"
+ mod_combiner: "{mod_1}+{mod_2}"
+ special_combinations:
+ left_ctrl+left_alt+left_gui+left_shift: Hyper
+ left_ctrl+left_alt+left_shift: Meh
+ qmk_remove_keycode_prefix:
+ - KC_
+ qmk_keycode_map:
+ XXXXXXX: ""
+ "NO": ""
+ MINUS: "-"
+ MINS: "-"
+ EQUAL: "="
+ EQL: "="
+ LEFT_BRACKET: "["
+ LBRC: "["
+ RIGHT_BRACKET: "]"
+ RBRC: "]"
+ BACKSLASH: \
+ BSLS: \
+ NONUS_HASH: "#"
+ NUHS: "#"
+ SEMICOLON: ;
+ SCLN: ;
+ QUOTE: "'"
+ QUOT: "'"
+ GRAVE: "`"
+ GRV: "`"
+ COMMA: ","
+ COMM: ","
+ DOT: .
+ SLASH: /
+ SLSH: /
+ TILDE: "~"
+ TILD: "~"
+ EXCLAIM: "!"
+ EXLM: "!"
+ AT: "@"
+ HASH: "#"
+ DOLLAR: $
+ DLR: $
+ PERCENT: "%"
+ PERC: "%"
+ CIRCUMFLEX: ^
+ CIRC: ^
+ AMPERSAND: "&"
+ AMPR: "&"
+ ASTERISK: "*"
+ ASTR: "*"
+ LEFT_PAREN: (
+ LPRN: (
+ RIGHT_PAREN: )
+ RPRN: )
+ UNDERSCORE: _
+ UNDS: _
+ PLUS: +
+ LEFT_CURLY_BRACE: "{"
+ LCBR: "{"
+ RIGHT_CURLY_BRACE: "}"
+ RCBR: "}"
+ PIPE: "|"
+ COLON: ":"
+ COLN: ":"
+ DOUBLE_QUOTE: '"'
+ DQUO: '"'
+ DQT: '"'
+ LEFT_ANGLE_BRACKET: <
+ LABK: <
+ LT: <
+ RIGHT_ANGLE_BRACKET: ">"
+ RABK: ">"
+ GT: ">"
+ QUESTION: "?"
+ QUES: "?"
+ zmk_remove_keycode_prefix: []
+ zmk_keycode_map:
+ C_VOL_UP: Vol Up
+ C_VOL_DN: Vol Down
+ C_AL_CALC: Calc
+ LCTRL: Ctrl
+ RCTRL: Ctrl
+ LALT: Alt
+ RALT: Alt
+ LGUI: Gui
+ RGUI: Gui
+ LSHFT: Shift
+ RSHFT: Shift
+ ESC: Esc
+ SPACE: ␣
+ BSPC: ⌫
+ RET: ⏎
+ TAB: ↹
+ DEL: ⌦
+ PG_UP: Page Up
+ PG_DN: Page Down
+ INS: Insert
+ HOME: Home
+ END: End
+ CAPS: Caps Lock
+ PSCRN: Print Scrn
+ PAUSE_BREAK: Pause Break
+ UP: ↑
+ DOWN: ↓
+ LEFT: ←
+ RIGHT: →
+ C_PP: ⏯
+ C_NEXT: ⏭️
+ C_PREV: ⏮️
+ APOS: "'"
+ APOSTROPHE: "'"
+ ASTERISK: "*"
+ ASTRK: "*"
+ AT: "@"
+ AT_SIGN: "@"
+ BACKSLASH: \
+ BSLH: \
+ CARET: ^
+ COLON: ":"
+ COMMA: ","
+ DLLR: $
+ DOLLAR: $
+ DOT: .
+ DOUBLE_QUOTES: '"'
+ DQT: '"'
+ EQUAL: "="
+ EXCL: "!"
+ EXCLAMATION: "!"
+ FSLH: /
+ GRAVE: "`"
+ GREATER_THAN: ">"
+ GT: ">"
+ HASH: "#"
+ LBKT: "["
+ LBRC: "{"
+ LEFT_BRACE: "{"
+ LEFT_BRACKET: "["
+ LEFT_PARENTHESIS: (
+ LESS_THAN: <
+ LPAR: (
+ LT: <
+ MINUS: "-"
+ NON_US_BACKSLASH: \
+ NON_US_BSLH: "|"
+ NON_US_HASH: "#"
+ NUHS: "#"
+ PERCENT: "%"
+ PERIOD: .
+ PIPE: "|"
+ PIPE2: "|"
+ PLUS: +
+ POUND: "#"
+ PRCNT: "%"
+ QMARK: "?"
+ QUESTION: "?"
+ RBKT: "]"
+ RBRC: "}"
+ RIGHT_BRACE: "}"
+ RIGHT_BRACKET: "]"
+ RIGHT_PARENTHESIS: )
+ RPAR: )
+ SEMI: ;
+ SEMICOLON: ;
+ SINGLE_QUOTE: "'"
+ SLASH: /
+ SQT: "'"
+ STAR: "*"
+ TILDE: "~"
+ TILDE2: "~"
+ UNDER: _
+ UNDERSCORE: _
+ zmk_combos:
+ combo_tab:
+ draw_separate: true
+ combo_del:
+ draw_separate: true
+ combo_f12:
+ align: bottom
+ combo_btclr:
+ align: bottom
+ combo_play:
+ align: right
+ combo_capswd:
+ draw_separate: true
+ combo_semi:
+ draw_separate: true
+ combo_grave:
+ draw_separate: true
+ combo_lpar:
+ draw_separate: true
+ combo_rpar:
+ draw_separate: true
+ combo_lbkt:
+ draw_separate: true
+ combo_rbkt:
+ draw_separate: true
+ combo_esc:
+ draw_separate: true
+ combo_ret:
+ draw_separate: true
+ combo_lock:
+ draw_separate: true
+ combo_bslh:
+ draw_separate: true
+ combo_slsh:
+ draw_separate: true
+ zmk_preamble: "#define KEYMAP_DRAWER"
+ zmk_additional_includes: []
diff --git a/images/corne.svg b/images/corne.svg
new file mode 100644
index 0000000..2bc77f1
--- /dev/null
+++ b/images/corne.svg
@@ -0,0 +1,779 @@
+
diff --git a/images/corne.yaml b/images/corne.yaml
new file mode 100644
index 0000000..c79cfc6
--- /dev/null
+++ b/images/corne.yaml
@@ -0,0 +1,90 @@
+layout: {qmk_keyboard: corne_rotated, layout_name: LAYOUT_split_3x6_3}
+layers:
+ default: [↹, Q, W, E, R, T, Y, U, I, O, P, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K, L, ;, ENTER, '$$mdi:apple-keyboard-shift$$',
+ Z, X, C, V, B, N, M, ',', ., /, Esc, '$$mdi:apple-keyboard-command$$', lower, ␣, ␣, raise, '$$mdi:apple-keyboard-option$$']
+ lower:
+ - Win Prev
+ - '1'
+ - '2'
+ - '3'
+ - '4'
+ - '5'
+ - '6'
+ - '7'
+ - '8'
+ - '9'
+ - '0'
+ - $$mdi:backspace-outline$$
+ - $$mdi:apple-keyboard-control$$
+ - ''
+ - ''
+ - ''
+ - ''
+ - ''
+ - LEFT ARROW
+ - DOWN ARROW
+ - UP ARROW
+ - RIGHT ARROW
+ - ''
+ - ENTER
+ - $$mdi:apple-keyboard-shift$$
+ - BT 1
+ - BT 2
+ - BT 3
+ - BT 4
+ - BT 5
+ - BT CLR
+ - ''
+ - ''
+ - ''
+ - ''
+ - Esc
+ - $$mdi:apple-keyboard-command$$
+ - {t: lower, type: held}
+ - ␣
+ - ␣
+ - raise
+ - $$mdi:apple-keyboard-option$$
+ raise:
+ - Tab Right
+ - '!'
+ - '@'
+ - '#'
+ - $
+ - '%'
+ - ^
+ - AMPERSAND
+ - '*'
+ - +
+ - '='
+ - $$mdi:backspace-outline$$
+ - $$mdi:apple-keyboard-control$$
+ - '`'
+ - '~'
+ - '{'
+ - '['
+ - (
+ - )
+ - ']'
+ - '}'
+ - \
+ - '|'
+ - ENTER
+ - $$mdi:apple-keyboard-shift$$
+ - ''
+ - ''
+ - ''
+ - ''''
+ - '-'
+ - _
+ - '"'
+ - ''
+ - ''
+ - ''
+ - RIGHT SHIFT
+ - $$mdi:apple-keyboard-command$$
+ - lower
+ - ␣
+ - ␣
+ - {t: raise, type: held}
+ - $$mdi:apple-keyboard-option$$