diff --git a/.github/workflows/draw-keymaps.yml b/.github/workflows/draw-keymaps.yml new file mode 100644 index 0000000..039585e --- /dev/null +++ b/.github/workflows/draw-keymaps.yml @@ -0,0 +1,25 @@ +# Use the keymap-drawer ZMK user config workflow +# https://github.com/caksoylar/keymap-drawer#setting-up-an-automated-drawing-workflow +name: Draw ZMK keymaps +on: + workflow_dispatch: # can be triggered manually + push: # automatically run on changes to following paths + paths: + # - 'config/*.keymap' + # - 'config/*.dtsi' + # - 'config/*.json' + - 'config/keymap_drawer.config.yaml' + - '.github/workflows/draw-keymaps.yml' + - 'config/boards/*/*/*.keymap' + +jobs: + draw: + uses: caksoylar/keymap-drawer/.github/workflows/draw-zmk.yml@main + with: + keymap_patterns: "config/boards/*/*/*.keymap" # path to the keymaps to parse + config_path: "config/keymap_drawer.config.yaml" # config file, ignored if not exists + output_folder: "keymap" # path to save produced SVGs # branch to use + amend_commit: true # amend generated files to commit that produces them + 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'" + fail_on_error: true diff --git a/README.md b/README.md index 20fbd8f..e500f38 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,10 @@ This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk) | Left Peripheral | nice!nano v2 (nRF52840) | | Right Peripheral | nice!nano v2 (nRF52840) | +## Keymap + +![keyboard layout](./keymap/cradio.svg) + ## Credits - [Ferris Sweep](https://github.com/davidphilipbarr/Sweep) by David Barr. diff --git a/config/keymap_drawer.config.yaml b/config/keymap_drawer.config.yaml new file mode 100644 index 0000000..547ea24 --- /dev/null +++ b/config/keymap_drawer.config.yaml @@ -0,0 +1,787 @@ +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: false + n_columns: 2 + separate_combo_diagrams: true + 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: true + 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: 12px; + font-weight: bold; + text-rendering: optimizeLegibility; + } + + /* Color accent for held keys */ + rect.held, rect.combo.held { + fill: #ffc; + } + + /* 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: Created with keymap-drawer + shrink_wide_legends: 6 + style_layer_activators: true + glyph_tap_size: 18 + glyph_hold_size: 15 + glyph_shifted_size: 15 + glyphs: {} + glyph_urls: + tabler: https://unpkg.com/@tabler/icons/icons/outline/{}.svg + tablerf: https://unpkg.com/@tabler/icons/icons/filled/{}.svg + mdi: https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/master/svg/{}.svg + mdil: https://raw.githubusercontent.com/Pictogrammers/MaterialDesignLight/master/svg/{}.svg + material: https://fonts.gstatic.com/s/i/short-term/release/materialsymbolsoutlined/{}/default/48px.svg + use_local_cache: true +parse_config: + preprocess: true + skip_binding_parsing: false + raw_binding_map: + '&caps_word': $$mdi:apple-keyboard-caps$$ + '&sys_reset': $$mdi:restart$$ + '&forward': $$mdi:arrow-right-box$$ + '&backward': $$mdi:arrow-left-box$$ + '&tab_next': + tap: $$mdi:tab$$ + shifted: $$mdi:arrow-down-box$$ + type: sym_sub_text + '&tab_prev': + tap: $$mdi:tab$$ + shifted: $$mdi:arrow-up-box$$ + type: sym_sub_text + '&win_next': + tap: $$mdi:curtains$$ + shifted: $$mdi:arrow-right-box$$ + type: sym_sub_text + '&act COLON': '&act :' + '&act QUESTION': '&act ?' + '&act LESS_THAN': '&act <' + '&act GREATER_THAN': '&act >' + '&capsy': 'capsy' + '&dis_tog': '$$tablerf:brand-discord$$' + '&combo_swap_left': + tap: $$mdi:arrow-decision-outline$$ + shifted: $$mdi:apple$$ + type: sym_by_sym + '&combo_swap_right': + tap: $$mdi:arrow-decision-outline$$ + shifted: $$mdi:apple$$ + type: sym_by_sym + '&kple LG(TAB)': $$mdi:arrow-decision-outline$$ + '&kple LA(TAB)': $$mdi:arrow-decision-outline$$ + #'&kple LG(TAB)': + # tap: $$mdi:arrow-decision-outline$$ + # shifted: $$mdi:apple$$ + # type: sym_by_sym + #'&kple LA(TAB)': + # tap: $$mdi:arrow-decision-outline$$ + # shifted: $$mdi:microsoft-windows$$ + # type: sym_by_sym + #'&winswap': $$mdi:microsoft-windows$$ + #'&swap': $$mdi:apple$$ + '&out OUT_BLE': + tap: $$mdi:keyboard$$ + shifted: $$mdi:bluetooth$$ + type: sym_by_sym + '&out OUT_USB': + tap: $$mdi:keyboard$$ + shifted: $$mdi:usb$$ + type: sym_by_sym + '&out OUT_TOG': + tap: $$mdi:toggle-switch$$ + hold: $$mdi:bluetooth$$ + shifted: $$mdi:usb$$ + type: toggle + '&mkp LCLK': $$mdi:cursor-default-click$$ + '&mkp RCLK': $$mdi:cursor-default-click-outline$$ + '&point_tog': '$$tablerf:pointer$$' + #'&mirror_sl': '$$tabler:arrows-left-right$$' + '&mirror_sl': '$$mdi:mirror-rectangle$$' + '&kp KP_NUMLOCK': + tap: $$mdi:numeric$$ + shifted: $$mdi:lock$$ + type: sym_by_sym + '&trigrave': '```' + '&semiquote': + tap: ";" + shifted: '''' + type: tap_dance + '&slashtick': + tap: "/" + shifted: "'" + type: tap_dance + '&shifty': 'shifty' + '&tmux_mode_select': 'tmux app' + '&version': 'config version' + '&ext_power EP_TOG': + tap: $$tabler:bolt$$ + shifted: $$mdi:toggle-switch$$ + type: sym_by_sym + '&bt BT_CLR': + tap: $$mdi:bluetooth-settings$$ + shifted: $$mdi:close-thick$$ + type: sym_sub_text + '&bt BT_CLR_ALL': + tap: $$mdi:bluetooth-settings$$ + shifted: $$mdi:close-thick$$ + hold: $$mdi:asterisk$$ + type: sym_sub_text + '&bt BT_SEL 0': + tap: $$mdi:bluetooth-connect$$ + shifted: '0' + type: sym_sub_text + '&bt BT_SEL 1': + tap: $$mdi:bluetooth-connect$$ + shifted: '1' + type: sym_sub_text + '&bt BT_SEL 2': + tap: $$mdi:bluetooth-connect$$ + shifted: '2' + type: sym_sub_text + '&bt BT_SEL 3': + tap: $$mdi:bluetooth-connect$$ + shifted: '3' + type: sym_sub_text + '&bt BT_SEL 4': + tap: $$mdi:bluetooth-connect$$ + shifted: '4' + type: sym_sub_text + '&bt BT_DISC 0': + tap: $$mdi:bluetooth-off$$ + shifted: '0' + type: sym_sub_text + '&bt BT_DISC 1': + tap: $$mdi:bluetooth-off$$ + shifted: '1' + type: sym_sub_text + '&bt BT_DISC 2': + tap: $$mdi:bluetooth-off$$ + shifted: '2' + type: sym_sub_text + '&bt BT_DISC 3': + tap: $$mdi:bluetooth-off$$ + shifted: '3' + type: sym_sub_text + '&bt BT_DISC 4': + tap: $$mdi:bluetooth-off$$ + shifted: '4' + type: sym_sub_text + '&bt BT_PRV': + tap: $$mdi:bluetooth$$ + shifted: $$mdi:skip-previous$$ + type: sym_sub_text + '&bt BT_NXT': + tap: $$mdi:bluetooth$$ + shifted: $$mdi:skip-next$$ + type: sym_sub_text + '&dis_down': + tap: '$$tablerf:brand-discord$$' + shifted: $$mdi:arrow-down$$ + type: sym_by_sym + '&dis_up': + tap: '$$tablerf:brand-discord$$' + shifted: $$mdi:arrow-up$$ + type: sym_by_sym + '&dis_next_server': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:world-down$$ + type: sym_by_sym + '&dis_prev_server': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:world-up$$ + type: sym_by_sym + '&dis_next_chan': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:row-insert-top$$ + type: sym_by_sym + '&dis_prev_chan': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:row-insert-bottom$$ + type: sym_by_sym + '&dis_next_history': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:corner-down-right-double$$ + type: sym_by_sym + '&dis_prev_history': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:corner-up-left-double$$ + type: sym_by_sym + '&dis_next_mention': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:at$$ + type: sym_by_sym + '&dis_pins': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:pinned$$ + type: sym_by_sym + '&dis_section_nav': + tap: '$$tablerf:brand-discord$$' + shifted: $$tabler:section-sign$$ + type: sym_by_sym + '&msc SCRL_UP': '$$mdi:mouse-move-up$$' + '&msc SCRL_DOWN': '$$mdi:mouse-move-down$$' + '&mmv MOVE_LEFT': + tap: $$mdi:tortoise$$ + shifted: $$mdi:arrow-left$$ + type: sym_by_sym + '&mmv MOVE_RIGHT': + tap: $$mdi:tortoise$$ + shifted: $$mdi:arrow-right$$ + type: sym_by_sym + '&mmv MOVE_UP': + tap: $$mdi:tortoise$$ + shifted: $$mdi:arrow-up$$ + type: sym_by_sym + '&mmv MOVE_DOWN': + tap: $$mdi:tortoise$$ + shifted: $$mdi:arrow-down$$ + type: sym_by_sym + '&fmmv MOVE_LEFT': + tap: $$mdi:mouse$$ + shifted: $$mdi:arrow-left$$ + type: sym_by_sym + '&fmmv MOVE_RIGHT': + tap: $$mdi:mouse$$ + shifted: $$mdi:arrow-right$$ + type: sym_by_sym + '&fmmv MOVE_UP': + tap: $$mdi:mouse$$ + shifted: $$mdi:arrow-up$$ + type: sym_by_sym + '&fmmv MOVE_DOWN': + tap: $$mdi:mouse$$ + shifted: $$mdi:arrow-down$$ + type: sym_by_sym + '&kp LC(W)': + tap: $$mdi:apple-keyboard-control$$ + shifted: "W" + type: sym_sub_text + '&f2_menu': + tap: $$tabler:focus-2$$ + shifted: $$mdi:menu$$ + type: sym_by_sym + '&f2_dock': + tap: $$tabler:focus-2$$ + shifted: $$mdi:dock-bottom$$ + type: sym_by_sym + '&f2_status': + tap: $$tabler:focus-2$$ + shifted: $$mdi:list-status$$ + type: sym_by_sym + '&f2_tool': + tap: $$tabler:focus-2$$ + shifted: $$mdi:tools$$ + type: sym_by_sym + '&help_menu': + tap: $$mdi:help-circle-outline$$ + shifted: $$mdi:menu$$ + type: sym_by_sym + '&win_close': + tap: $$mdi:curtains$$ + shifted: $$mdi:window-close$$ + type: sym_sub_text + '&kple ESC': + tap: $$mdi:keyboard-esc$$ + shifted: $$mdi:layers-triple$$ + type: sym_by_sym + '&warpd_l': + tap: $$mdi:monitor-shimmer$$ + shifted: $$mdi:arrow-top-left-thick$$ + type: sym_by_sym + '&warpd_r': + tap: $$mdi:monitor-shimmer$$ + shifted: $$mdi:arrow-top-right-thick$$ + type: sym_by_sym + '&warpd_t': + tap: $$mdi:monitor-shimmer$$ + shifted: $$mdi:arrow-up-thick$$ + type: sym_by_sym + '&win_screen': + tap: $$mdi:numeric-1-box-multiple-outline$$ + shifted: $$mdi:fullscreen$$ + type: sym_by_sym + #'&win_full': + # tap: $$mdi:numeric-1-box-multiple-outline$$ + # shifted: $$mdi:overscan$$ + # type: sym_by_sym + '&win_half': + tap: $$mdi:numeric-2-box-multiple-outline$$ + shifted: $$mdi:table-arrow-down$$ + type: sym_by_sym + #'&win_vhalf': + # tap: $$mdi:numeric-2-box-multiple-outline$$ + # shifted: $$mdi:table-arrow-right$$ + # type: sym_by_sym + '&win_third': + tap: $$mdi:numeric-3-box-multiple-outline$$ + shifted: $$mdi:table-arrow-down$$ + type: sym_by_sym + #'&win_vthird': + # tap: $$mdi:numeric-3-box-multiple-outline$$ + # shifted: $$mdi:table-arrow-right$$ + # type: sym_by_sym + '&win_quad': + tap: $$mdi:numeric-4-box-multiple-outline$$ + shifted: $$mdi:table-arrow-down$$ + type: sym_by_sym + #'&win_vquad': + # tap: $$mdi:numeric-4-box-multiple-outline$$ + # shifted: $$mdi:table-arrow-right$$ + # type: sym_by_sym + '&tmux_pw': + tap: $$mdi:collage$$ + shifted: "pw" + type: sym_sub_text + '&tmux_ps': + tap: $$mdi:collage$$ + shifted: "ps" + type: sym_sub_text + '&tmux_pp': + tap: $$mdi:collage$$ + shifted: "pp" + type: sym_sub_text + '&tmux_nw': + tap: $$mdi:collage$$ + shifted: "nw" + type: sym_sub_text + '&tmux_ns': + tap: $$mdi:collage$$ + shifted: "ns" + type: sym_sub_text + '&tmux_np': + tap: $$mdi:collage$$ + shifted: "np" + type: sym_sub_text + '&tmux_oz': + tap: $$mdi:collage$$ + shifted: "oz" + type: sym_sub_text + '&tmux_sw': + tap: $$mdi:collage$$ + shifted: "sw" + type: sym_sub_text + '&tmux_paste': + tap: $$mdi:collage$$ + shifted: "P" + type: sym_sub_text + '&tmux_zoom': + tap: $$mdi:collage$$ + shifted: "z" + type: sym_sub_text + '&tmux_func': + tap: $$mdi:collage$$ + shifted: ":" + type: sym_sub_text + '&vim_save': + tap: $$mdi:vimeo$$ + shifted: ":w" + type: sym_sub_text + '&vim_cqall': + tap: $$mdi:vimeo$$ + shifted: ":conf qal" + type: sym_sub_text + '&vim_wqall': + tap: $$mdi:vimeo$$ + shifted: ":wqal" + type: sym_sub_text + '&vim_left': + tap: $$mdi:vimeo$$ + shifted: $$mdi:table-arrow-left$$ + type: sym_sub_text + '&vim_right': + tap: $$mdi:vimeo$$ + shifted: $$mdi:table-arrow-right$$ + type: sym_sub_text + '&vim_up': + tap: $$mdi:vimeo$$ + shifted: $$mdi:table-arrow-up$$ + type: sym_sub_text + '&vim_down': + tap: $$mdi:vimeo$$ + shifted: $$mdi:table-arrow-down$$ + type: sym_sub_text + '&vim_tabn': + tap: $$mdi:vimeo$$ + shifted: ":tabn" + type: sym_sub_text + '&vim_tabp': + tap: $$mdi:vimeo$$ + shifted: ":tabp" + type: sym_sub_text + '&vim_last': + tap: $$mdi:vimeo$$ + shifted: "g" + type: sym_sub_text + '&vim_zoom': + tap: $$mdi:vimeo$$ + shifted: "z" + type: sym_sub_text + '&vim_nav': + tap: $$mdi:vimeo$$ + shifted: "/nav" + type: sym_sub_text + '&vim_func': + tap: $$mdi:vimeo$$ + shifted: "/func" + type: sym_sub_text + '&vim_spec': + tap: $$mdi:vimeo$$ + shifted: "/spec" + type: sym_sub_text + '&ss': + tap: $$mdi:camera$$ + shifted: $$mdi:monitor-screenshot$$ + type: sym_by_sym + '&sss': + tap: $$mdi:camera-image$$ + shifted: $$mdi:monitor-screenshot$$ + type: sym_by_sym + '&ss_win': + tap: $$mdi:camera$$ + shifted: $$mdi:microsoft-windows$$ + type: sym_by_sym + '&ss2c': + tap: $$mdi:camera$$ + shifted: $$mdi:clipboard$$ + type: sym_by_sym + '&sss2c': + tap: $$mdi:camera-image$$ + shifted: $$mdi:clipboard$$ + type: sym_by_sym + '&bootloader': + tap: $$mdi:flash$$ + shifted: $$mdi:micro-sd$$ + hold: $$mdi:new-box$$ + type: sym_by_sym + '&rgb_ug RGB_TOG': + tap: $$mdi:toggle-switch$$ + hold: $$mdi:led-on$$ + shifted: $$mdi:led-outline$$ + type: toggle + '&rgb_ug RGB_BRI': + tap: $$mdi:led-on$$ + shifted: $$mdi:white-balance-sunny$$ + type: sym_by_sym + '&rgb_ug RGB_SAI': + tap: $$mdi:led-on$$ + shifted: $$mdi:eyedropper$$ + type: sym_by_sym + '&rgb_ug RGB_HUI': + tap: $$mdi:led-on$$ + shifted: $$mdi:palette$$ + type: sym_by_sym + '&rgb_ug RGB_BRD': + tap: $$mdi:led-outline$$ + shifted: $$mdi:white-balance-sunny$$ + type: sym_by_sym + '&rgb_ug RGB_SAD': + tap: $$mdi:led-outline$$ + shifted: $$mdi:eyedropper$$ + type: sym_by_sym + '&rgb_ug RGB_HUD': + tap: $$mdi:led-outline$$ + shifted: $$mdi:palette$$ + type: sym_by_sym + '&rgb_ug RGB_COLOR_HSB(25,100,0)': + tap: $$mdi:led-on$$ + shifted: $$mdi:gradient-horizontal$$ + hold: "(25,100,0)" + type: sym_by_sym + '&rgb_ug RGB_COLOR_HSB(25,100,80)': + tap: $$mdi:led-on$$ + shifted: $$mdi:gradient-horizontal$$ + hold: "(25,100,80)" + type: sym_by_sym + '&rgb_ug RGB_COLOR_HSB(25,0,100)': + tap: $$mdi:led-on$$ + shifted: $$mdi:gradient-horizontal$$ + hold: "(25,0,100)" + type: sym_by_sym + sticky_label: sticky + toggle_label: $$mdi:toggle-switch$$ + 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: Alt + left_gui: Cmd + right_gui: Cmd + 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: + EXCLAMATION: '!' + EXCL: '!' + AT_SIGN: '@' + AT: '@' + HASH: '#' + POUND: '#' + DOLLAR: $ + DLLR: $ + PERCENT: '%' + PRCNT: '%' + CARET: ^ + AMPERSAND: '&' + AMPS: '&' + ASTERISK: '*' + ASTRK: '*' + STAR: '*' + LEFT_PARENTHESIS: ( + LPAR: ( + RIGHT_PARENTHESIS: ) + RPAR: ) + EQUAL: '=' + PLUS: + + MINUS: '-' + UNDERSCORE: _ + UNDER: _ + SLASH: / + FSLH: / + QUESTION: '?' + QMARK: '?' + BACKSLASH: \ + BSLH: \ + PIPE: '|' + NON_US_BACKSLASH: \ + PIPE2: '|' + NON_US_BSLH: '|' + SEMICOLON: ; + SEMI: ; + COLON: ':' + SINGLE_QUOTE: '''' + SQT: '''' + APOSTROPHE: '''' + APOS: '''' + DOUBLE_QUOTES: '"' + DQT: '"' + COMMA: ',' + LESS_THAN: < + LT: < + PERIOD: . + DOT: . + GREATER_THAN: '>' + GT: '>' + LEFT_BRACKET: '[' + LBKT: '[' + LEFT_BRACE: '{' + LBRC: '{' + RIGHT_BRACKET: ']' + RBKT: ']' + RIGHT_BRACE: '}' + RBRC: '}' + GRAVE: '`' + TILDE: '~' + NON_US_HASH: '#' + NUHS: '#' + TILDE2: '~' + GLOBE: $$tabler:world$$ + SPACE: $$mdi:keyboard-space$$ + BACKSPACE: $$mdi:backspace-outline$$ + DELETE: $$mdi:backspace-reverse-outline$$ + C_PP: $$mdi:play-pause$$ + C_NEXT: $$mdi:skip-forward$$ + C_PREV: $$mdi:skip-backward$$ + C_MUTE: $$mdi:volume-mute$$ + C_VOL_UP: $$mdi:volume-plus$$ + C_VOL_DN: $$mdi:volume-minus$$ + C_BRI_UP: $$tabler:brightness-up$$ + C_BRI_DN: $$tabler:brightness-down$$ + C_POWER: $$mdi:power$$ + C_SLEEP: $$mdi:power-sleep$$ + UP: $$mdi:arrow-up$$ + DOWN: $$mdi:arrow-down$$ + LEFT: $$mdi:arrow-left$$ + RIGHT: $$mdi:arrow-right$$ + RETURN: ⮐ + KP_NUMLOCK: Numlock + TAB: $$mdi:keyboard-tab$$ + LEFT_GUI: $$mdi:apple-keyboard-command$$ + LGUI: $$mdi:apple-keyboard-command$$ + RIGHT_GUI: $$mdi:apple-keyboard-command$$ + RGUI: $$mdi:apple-keyboard-command$$ + LEFT_ALT: $$mdi:apple-keyboard-option$$ + LALT: $$mdi:apple-keyboard-option$$ + RIGHT_ALT: $$mdi:apple-keyboard-option$$ + RALT: $$mdi:apple-keyboard-option$$ + LEFT_SHIFT: $$mdi:apple-keyboard-shift$$ + LSHIFT: $$mdi:apple-keyboard-shift$$ + LSHFT: $$mdi:apple-keyboard-shift$$ + RIGHT_SHIFT: $$mdi:apple-keyboard-shift$$ + RSHIFT: $$mdi:apple-keyboard-shift$$ + RSHFT: $$mdi:apple-keyboard-shift$$ + RIGHT_CONTROL: $$mdi:apple-keyboard-control$$ + RCTRL: $$mdi:apple-keyboard-control$$ + LCTRL: $$mdi:apple-keyboard-control$$ + LEFT_CONTROL: $$mdi:apple-keyboard-control$$ + zmk_combos: {} + zmk_preamble: '#define KEYMAP_DRAWER' + zmk_additional_includes: []