[
  {
    "path": ".gitattributes",
    "content": "*.dtsi linguist-language=C++\n*.keymap linguist-language=C++\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n# WebSite: https://www.youtube.com/c/mctechnology17\ngithub: mctechnology17 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Open Collective username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: # Replace with a single IssueHunt username\notechie: # Replace with a single Otechie username\ncustom:\n  - https://www.paypal.com/paypalme/mctechnology17\n  - https://buymeacoffee.com/mctechnology17\n  - https://revolut.me/mctechnology17\n# Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']\n"
  },
  {
    "path": ".github/workflows/build.yml",
    "content": "on: [push, pull_request, workflow_dispatch]\n\njobs:\n  build:\n    uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@v0.3.0\n"
  },
  {
    "path": ".github/workflows/keymap-drawer.yaml",
    "content": "#     keymap -c config/config_keymap-drawer.yaml parse -c 12 -z config/corne.keymap > keymap-drawer/corne.yaml\n#     keymap -c config/config_keymap-drawer.yaml draw keymap-drawer/corne.yaml > keymap-drawer/corne.svg\n\n# Example for using the keymap-drawer ZMK user config workflow\nname: Draw ZMK keymaps\non:\n  workflow_dispatch: # can be triggered manually\n  push: # automatically run on changes to following paths\n    paths:\n      - \"config/*.keymap\"\n      - \"config/config_keymap-drawer.yaml\"\n      - .github/workflows/keymap-drawer.yaml\n\njobs:\n  draw:\n    uses: caksoylar/keymap-drawer/.github/workflows/draw-zmk.yml@main\n    permissions:\n      contents: write # allow workflow to commit to the repo\n    with:\n      amend_commit: true\n      keymap_patterns: \"config/*.keymap\" # path to the keymaps to parse\n      config_path: \"config/config_keymap-drawer.yaml\" # config file, ignored if not exists\n      output_folder: \"keymap-drawer\" # path to save produced SVG and keymap YAML files\n      parse_args: \"\" # map of extra args to pass to `keymap parse`, e.g. \"corne:'-l Def Lwr Rse' cradio:''\"\n      draw_args: \"\" # map of extra args to pass to `keymap draw`, e.g. \"corne:'-k corne_rotated' cradio:'-k paroxysm'\"\n"
  },
  {
    "path": ".gitignore",
    "content": "# zmk\nzmk/\n\n# sketchybar\nsketchybar/dotfiles/\nsketchybar/dotfiles\nsketchybar/dotfiles/*\n\n# MacOS\n.DS_Store\nvim-tools_notiz.vim\n.DS_Store\n./*/.DS_Store\n.vscode\n# .vimspector.json\npush.sh\n/test\ntest/\n\n# c, cpp\n*.x\n*.d\n*.dSYM\n*.o\n*.out\n\n# log\n*.log\n\n# cache\n*.cache\ncache/\n\n# Windows\nThumbs.db\nDesktop.ini\n\n# Tags\n#TAGS\n#!TAGS/\n#tags\ndoc/tags\ntags-cn\n!tags/\n.tags\n.tags1\ntags.lock\ntags.temp\ngtags.files\nGTAGS\nGRTAGS\nGPATH\ncscope.files\ncscope.out\ncscope.in.out\ncscope.po.out\n\n# Vim\n[._]*.s[a-w][a-z]\n[._]s[a-w][a-z]\n*.un~\nSession.vim\n.netrwhist\n*~\n\n# Test % Tmp\ntest.*\ntmp.*\ntemp.*\n\n# Java\n*.class\n\n# JavaScript\nnode_modules\n\n# Python\n*.pyc\n.idea/\n/.idea\n# build/\n__pycache__\n\n# Rust\ntarget/\n**/*.rs.bk\n"
  },
  {
    "path": "CHANGELOG.txt",
    "content": "Changelog file for Structures extra.\nhttps://github.com/mctechnology17/zmk-config/blob/main/CHANGELOG.txt\n\n# FEATURES 0.0.2-beta4 (Feb 27, 2025)\n=======================================\n+ NEW FEATURES\n- [x] build.yaml updated\n- [x] Add build for rgb + oled display\n- [x] seeeduino_xiao_ble.overlay rgb added\n- [x] Add build for rgb + oled display + dongle\n- [x] corne.overlay rgb led definition, layer reserved added\n- [x] snippet: rgb-config common-config dongle-config for multiple settings\n- [x] Add right- left_encoder definition sofle_dongle_pro_micro.overlay sofle_dongle_xiao.overlay\n- [x] Add right- left_encoder definition splitkb_aurora_sofle_dongle_pro_micro.overlay splitkb_aurora_sofle_dongle_xiao.overlay\n- [x] Add left_encoder definition lily58_dongle_pro_micro.overlay lily58_dongle_xiao.overlay\n\n# FEATURES 0.0.2-beta3 (Jan 06, 2025)\n=======================================\n+ NEW FEATURES\n- [x] lily58 support (see boards/shields/lily58/)\n- [x] splitkb_aurora_sofle support (boards/shields/splitkb_aurora_sofle/)\n- [x] readme updated\n- [x] build.yaml updated\n- [x] config_keymap-drawer.yaml updated\n- [x] corne.keymap updated (The option to see the layer on the screen was added)\n\n# FEATURES 0.0.2-beta2 (Jan 03, 2025)\n=======================================\n+ NEW FEATURES\n- [x] sofle support\n- [x] dongle_display!view support\n- [x] oled Adapter support\n- [x] readme updated\n\n# FEATURES 0.0.2-beta1 (Dec 19, 2024)\n=======================================\n+ NEW FEATURES\n- [x] nice!oled support\n- [x] dongle_display as modul support\n- [x] oled display changed 128x32 to 128x64 for xiao\n- [x] readme updated\n- [x] firmware updated\n\n# FEATURES 0.0.1-beta1 (Aug 22, 2024)\n=======================================\n+ NEW FEATURES\n- [x] zmk-studio support\n- [x] Add zmk modules from the community\n- [x] Add better keymap-drawer customization\n- [x] NiceView support for seeeduino_xiao_ble\n- [x] Dongle with NiceView support for all nrf52840\n\n# List of exciting new features\n+ NEW FEATURES\n- [x]   local/github integration module\n- [x]   makefile redundancy eliminated\n- [x]   CHANGELOG.md file added\n- [x]   dongle support\n- [x]   rgb support\n- [x]   oled display support\n- [x]   rgb + oled display support\n- [x]   rgb + oled display + dongle support\n\n+ TODO\n- [ ] Add set up the workspace https://github.com/urob/zmk-config?tab=readme-ov-file#set-up-the-workspace\n- [ ] Add a wiki to the repository\n- [ ] Add a video tutorial to the repository\n- [ ] README.md updated + fotos as reference\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 The ZMK Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "# ========================================\n# FileName: Makefile\n# Date: 07.03.2023\n# Author: Marcos Chow Castro\n# Email: mctechnology170318@gmail.com\n# GitHub: https://github.com/mctechnology17\n# Brief: Makefile for ZMK firmware with Docker\n# Shields: corne sofle splitkb_aurora_sofle\n# Boards: nice_nano_v2 puchi_ble_v1 seeeduino_xiao_ble\n# =========================================\n#                              ╔═╦═╦═╗\n#                       ╔════╗ ║║║║║╔╝\n#                       ║╔╗╔╗║ ║║║║║╚╗\n#                       ╚╝║║╚╝ ║╠═╩╩═╝\n#                         ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n#                         ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n#                         ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n#                                         ╚═╩═╝\n# to update the branch\n# https://hub.docker.com/r/zmkfirmware/zmk-dev-arm/tags\n# https://github.com/zmkfirmware/zmk/blob/main/.devcontainer/Dockerfile\n# docker pull zmkfirmware/zmk-dev-arm:3.2-branch\n#\n# CUSTOM BRANCH EXAMPLE:\n# git clone https://github.com/petejohanson/zmk -b v3.4.0+zmk-fixes\n#\n# WIDGET BRANCH ANIMATED\n# cmake-args: -DKEYMAP_FILE=../../config/other-corne.keymap -DCONFIG_ZMK_KEYBOARD_NAME=\\\"other-corne\\\" -DEXTRA_CONF_FILE=../../config/other-corne.conf\n# /Users/marcos/zmk-privat/config/config_ready/nice/oled_rgb/corne.conf\n# -DKEYMAP_FILE=../../config/other-corne.keymap -DCONFIG_ZMK_KEYBOARD_NAME=\\\"other-corne\\\" -DEXTRA_CONF_FILE=../../config/other-corne.conf\n# module:\n# https://github.com/caksoylar/zmk-rgbled-widget\n\n### config\n# extra_conf_file_oled_rgb= -DEXTRA_CONF_FILE=${PWD}/config/config_ready/nice/oled_rgb/corne.conf\nextra_modules_dir=${PWD}\nextra_modules= -DZMK_EXTRA_MODULES=\"/boards\"\nconfig=${PWD}/config\nnice_mount=/Volumes/NICENANO\npuchi_mount=/Volumes/NRF52BOOT\nxiao_mount=/Volumes/XIAO-SENSE\nzmk_image=zmkfirmware/zmk-dev-arm:3.5\nnice=nice_nano_v2\npuchi=puchi_ble_v1\nxiao=seeeduino_xiao_ble\nurob=zmk-codebase_urob\ndefault=zmk-codebase_default\n# --name zmk-$@ is for codebase_urob, for example: zmk-codebase_urob\ndocker_opts= \\\n\t--interactive \\\n\t--tty \\\n\t--name zmk-$@ \\\n\t--workdir /zmk \\\n\t--volume \"${config}:/zmk-config:Z\" \\\n\t--volume \"${PWD}/zmk:/zmk:Z\" \\\n\t--volume \"${extra_modules_dir}:/boards:Z\" \\\n\t${zmk_image}\n\n### name\nkeyboard_name_nice= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Nice_Corne_View\"'\nkeyboard_name_nice_oled= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Nice_Corne_Oled\"'\nkeyboard_name_nice_dongle= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Nice_Dongle\"'\nkeyboard_name_nice_dongle_oled= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Nice_Dongle_O\"'\nkeyboard_name_nice_dongle_view= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Nice_Dongle_V\"'\nkeyboard_name_puchi_view= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Puchi_Corne_View\"'\nkeyboard_name_puchi_oled= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Puchi_Corne_Oled\"'\nkeyboard_name_puchi_dongle= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Puchi_Dongle\"'\nkeyboard_name_puchi_dongle_oled= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Puchi_Dongle_O\"'\nkeyboard_name_puchi_dongle_view= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Puchi_Dongle_V\"'\nkeyboard_name_xiao_dongle= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Xiao_Dongle\"'\nkeyboard_name_xiao_dongle_oled= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Xiao_Dongle_O\"'\nkeyboard_name_xiao_dongle_view= '-DCONFIG_ZMK_KEYBOARD_NAME=\"Xiao_Dongle_V\"'\n\n### west\nwest_built_puchi= \\\n\t    west build /zmk/app \\\n\t    --pristine --board \"${puchi}\"\n\nwest_built_nice= \\\n\t    west build /zmk/app \\\n\t    --pristine --board \"${nice}\"\n\nwest_built_xiao= \\\n\t    west build /zmk/app \\\n\t    --pristine --board \"${xiao}\"\n\n### shields\nshield_settings_reset= \\\n\t    -- -DSHIELD=\"settings_reset\" -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_left= \\\n\t    -- -DSHIELD=\"corne_left\" -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_right_view= \\\n\t    -- -DSHIELD=\"corne_right nice_view_adapter nice_view\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_right= \\\n\t    -- -DSHIELD=\"corne_right\" -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_left_view= \\\n\t    -- -DSHIELD=\"corne_left nice_view_adapter nice_view\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_xiao_corne_dongle_xiao= \\\n\t    -- -DSHIELD=\"corne_dongle_xiao\" -DZMK_CONFIG=\"/zmk-config\"\nshield_xiao_corne_dongle_xiao_dongle_display= \\\n\t    -- -DSHIELD=\"corne_dongle_xiao dongle_display\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_xiao_corne_dongle_xiao_rgbled_adapter= \\\n\t    -- -DSHIELD=\"corne_dongle_xiao rgbled_adapter\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter= \\\n\t    -- -DSHIELD=\"corne_dongle_xiao dongle_display rgbled_adapter\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_left_peripheral_view= \\\n\t    -- -DSHIELD=\"corne_left_peripheral nice_view_adapter nice_view\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_left_peripheral_oled= \\\n\t    -- -DSHIELD=\"corne_left_peripheral\" \\\n\t    -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_dongle_pro_micro= \\\n\t    -- -DSHIELD=\"corne_dongle_pro_micro\" -DZMK_CONFIG=\"/zmk-config\"\nshield_corne_dongle_pro_micro_dongle_display= \\\n\t    -- -DSHIELD=\"corne_dongle_pro_micro dongle_display\" -DZMK_CONFIG=\"/zmk-config\"\n###  uf2\nuf2_copy_puchi_corne_settings_reset=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/puchi_corne_settings_reset.uf2\nuf2_copy_puchi_corne_left=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t  firmware/puchi_corne_left.uf2\nuf2_copy_puchi_corne_right=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t   firmware/puchi_corne_right.uf2\nuf2_copy_puchi_corne_left_peripheral_view=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/puchi_corne_left_peripheral.uf2\nuf2_copy_niceuf2_copy_puchi_corne_dongle_pro_micro=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/puchi_corne_dongle_pro_micro.uf2\nuf2_copy_puchi_corne_dongle_pro_micro_dongle_display=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/puchi_corne_dongle_pro_micro_dongle_display.uf2\nuf2_copy_nice_corne_settings_reset=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t   firmware/nice_corne_settings_reset.uf2\nuf2_copy_nice_corne_left=/zmk/build/zephyr/zmk.uf2 firmware/nice_corne_left.uf2\nuf2_copy_nice_corne_right=/zmk/build/zephyr/zmk.uf2 firmware/nice_corne_right.uf2\nuf2_copy_nice_corne_left_peripheral_view=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/nice_corne_left_peripheral.uf2\nuf2_copy_nice_corne_left_peripheral_oled=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/nice_corne_left_peripheral.uf2\nuf2_copy_nice_corne_dongle_pro_micro=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/nice_corne_dongle_pro_micro.uf2\nuf2_copy_nice_corne_dongle_pro_micro_dongle_display=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/nice_corne_dongle_pro_micro_dongle_display.uf2\nuf2_copy_xiao_corne_dongle_xiao=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/xiao_corne_dongle_xiao.uf2\nuf2_copy_xiao_corne_settings_reset=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t   firmware/xiao_corne_settings_reset.uf2\nuf2_copy_xiao_corne_dongle_xiao_dongle_display=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/xiao_corne_dongle_xiao_dongle_display.uf2\nuf2_copy_xiao_corne_dongle_xiao_rgbled_adapter=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/xiao_corne_dongle_xiao_rgbled_adapter.uf2\nuf2_copy_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter=/zmk/build/zephyr/zmk.uf2 \\\n\t\t\t\t    firmware/xiao_corne_dongle_xiao_dongle_display_rgbled_adapter.uf2\n### chmod\nuf2_chmod_puchi_corne_settings_reset=chmod go+wrx \\\n\t\t\t\t     firmware/puchi_corne_settings_reset.uf2\nuf2_chmod_puchi_corne_left=chmod go+wrx firmware/puchi_corne_left.uf2\nuf2_chmod_puchi_corne_right=chmod go+wrx firmware/puchi_corne_right.uf2\nuf2_chmod_puchi_corne_left_peripheral_view=chmod go+wrx firmware/puchi_corne_left_peripheral.uf2\nuf2_chmod_puchi_corne_dongle_pro_micro=chmod go+wrx firmware/puchi_corne_dongle_pro_micro.uf2\nuf2_chmod_puchi_corne_dongle_pro_micro_dongle_display=chmod go+wrx firmware/puchi_corne_dongle_pro_micro_dongle_display.uf2\nuf2_chmod_nice_corne_settings_reset=chmod go+wrx \\\n\t\t\t\t    firmware/nice_corne_settings_reset.uf2\nuf2_chmod_nice_corne_left=chmod go+wrx firmware/nice_corne_left.uf2\nuf2_chmod_nice_corne_right=chmod go+wrx firmware/nice_corne_right.uf2\nuf2_chmod_nice_corne_left_peripheral_view=chmod go+wrx firmware/nice_corne_left_peripheral.uf2\nuf2_chmod_nice_corne_left_peripheral_oled=chmod go+wrx firmware/nice_corne_left_peripheral.uf2\nuf2_chmod_nice_corne_dongle_pro_micro=chmod go+wrx firmware/nice_corne_dongle_pro_micro.uf2\nuf2_chmod_nice_corne_dongle_pro_micro_dongle_display=chmod go+wrx firmware/nice_corne_dongle_pro_micro_dongle_display.uf2\nuf2_chmod_xiao_corne_dongle_xiao=chmod go+wrx firmware/xiao_corne_dongle_xiao.uf2\nuf2_chmod_xiao_corne_settings_reset=chmod go+wrx \\\n\t\t\t\t    firmware/xiao_corne_settings_reset.uf2\nuf2_chmod_xiao_corne_dongle_xiao_dongle_display=chmod go+wrx firmware/xiao_corne_dongle_xiao_dongle_display.uf2\nuf2_chmod_xiao_corne_dongle_xiao_rgbled_adapter=chmod go+wrx firmware/xiao_corne_dongle_xiao_rgbled_adapter.uf2\nuf2_chmod_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter=chmod go+wrx firmware/xiao_corne_dongle_xiao_dongle_display_rgbled_adapter.uf2\n\nclone_zmk_default:\n\tif [ ! -d zmk ]; then git clone https://github.com/zmkfirmware/zmk; fi\n\ncodebase_default: clone_zmk_default\n\tdocker run ${docker_opts} sh -c '\\\n\t\twest init -l /zmk/app/; \\\n\t\twest update'\nclone_zmk_urob:\n\tif [ ! -d zmk ]; then git clone https://github.com/urob/zmk; fi\n\ncodebase_urob: clone_zmk_urob\n\tdocker run ${docker_opts} sh -c '\\\n\t\twest init -l /zmk/app/; \\\n\t\twest update'\n\n### CODEBASE_UROB START\nonly_nice_corne_left_view_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_corne_left_view} \\\n\t\t${keyboard_name_nice} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_left}\n\t${uf2_chmod_nice_corne_left}\nonly_nice_corne_right_view_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_corne_right_view} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_right}\n\t${uf2_chmod_nice_corne_right}\nonly_puchi_corne_left_view_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_corne_left_view} \\\n\t\t${keyboard_name_puchi} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_left}\n\t${uf2_chmod_puchi_corne_left}\nonly_puchi_corne_right_view_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_corne_right} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_right}\n\t${uf2_chmod_puchi_corne_right}\nonly_nice_corne_left_peripheral_view_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_corne_left_peripheral_view} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_left_peripheral_view}\n\t${uf2_chmod_nice_corne_left_peripheral_view}\nonly_puchi_corne_left_peripheral_view_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_corne_left_peripheral_view} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_left_peripheral_view}\n\t${uf2_chmod_puchi_corne_left_peripheral_view}\nonly_nice_corne_dongle_pro_micro_dongle_display_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_corne_dongle_pro_micro_dongle_display} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_dongle_pro_micro_dongle_display}\n\t${uf2_chmod_nice_corne_dongle_pro_micro_dongle_display}\nonly_puchi_corne_dongle_pro_micro_dongle_display_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_corne_dongle_pro_micro_dongle_display} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_dongle_pro_micro_dongle_display}\n\t${uf2_chmod_puchi_corne_dongle_pro_micro_dongle_display}\nonly_corne_xiao_corne_dongle_xiao_dongle_display_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_xiao} ${shield_xiao_corne_dongle_xiao_dongle_display} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_xiao_corne_dongle_xiao_dongle_display}\n\t${uf2_chmod_xiao_corne_dongle_xiao_dongle_display}\nonly_nice_settings_reset_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_settings_reset}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_settings_reset}\n\t${uf2_chmod_nice_corne_settings_reset}\nonly_puchi_settings_reset_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_settings_reset}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_settings_reset}\n\t${uf2_chmod_puchi_corne_settings_reset}\nonly_xiao_settings_reset_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_xiao} ${shield_settings_reset}\n\tdocker cp ${urob}:${uf2_copy_xiao_corne_settings_reset}\n\t${uf2_chmod_xiao_corne_settings_reset}\n\n### MC: TODO: excluded for the moment START\nonly_corne_left_peripheral_oled_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_corne_left_peripheral_oled} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_left_peripheral_oled}\n\t${uf2_chmod_nice_corne_left_peripheral_oled}\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_corne_left_peripheral_oled} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_left_peripheral_oled}\n\t${uf2_chmod_puchi_corne_left_peripheral_oled}\nonly_corne_dongle_pro_micro_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_nice} ${shield_corne_dongle_pro_micro} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_nice_corne_dongle_pro_micro}\n\t${uf2_chmod_nice_corne_dongle_pro_micro}\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_puchi} ${shield_corne_dongle_pro_micro} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_puchi_corne_dongle_pro_micro}\n\t${uf2_chmod_puchi_corne_dongle_pro_micro}\nonly_corne_xiao_corne_dongle_xiao_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_xiao} ${shield_xiao_corne_dongle_xiao} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_xiao_corne_dongle_xiao}\n\t${uf2_chmod_xiao_corne_dongle_xiao}\n### MC: TODO: excluded for the moment END\n\n### MC: rgbled_adapter TODO: START\nonly_corne_xiao_corne_dongle_xiao_rgbled_adapter_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_xiao} ${shield_xiao_corne_dongle_xiao_rgbled_adapter} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_xiao_corne_dongle_xiao_rgbled_adapter}\n\t${uf2_chmod_xiao_corne_dongle_xiao_rgbled_adapter}\nonly_corne_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter_urob:\n\tdocker run --rm ${docker_opts} \\\n\t\t${west_built_xiao} ${shield_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter} ${extra_modules}\n\tdocker cp ${urob}:${uf2_copy_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter}\n\t${uf2_chmod_xiao_corne_dongle_xiao_dongle_display_rgbled_adapter}\n### MC: rgbled_adapter TODO: END\n\nonly_corne_left_view_urob: only_nice_corne_left_view_urob \\\n\tonly_puchi_corne_left_view_urob\nonly_corne_right_view_urob: only_nice_corne_right_view_urob \\\n\tonly_puchi_corne_right_view_urob\nonly_corne_left_peripheral_view_urob: only_nice_corne_left_peripheral_view_urob \\\n\tonly_puchi_corne_left_peripheral_view_urob\nonly_corne_dongle_pro_micro_dongle_display_urob: only_nice_corne_dongle_pro_micro_dongle_display_urob \\\n\t\t\t\t\t\tonly_puchi_corne_dongle_pro_micro_dongle_display_urob\nsettings_reset_urob: only_nice_settings_reset_urob \\\n\tonly_puchi_settings_reset_urob \\\n\tonly_xiao_settings_reset_urob\ncorne_urob: only_corne_left_view_urob \\\n\tonly_corne_right_view_urob \\\n\tonly_corne_left_peripheral_view_urob \\\n\tonly_corne_dongle_pro_micro_dongle_display_urob \\\n\tonly_corne_xiao_corne_dongle_xiao_dongle_display_urob \\\n\tsettings_reset_urob\n### CODEBASE_UROB END\n\n# Open a shell within the ZMK environment\nshell:\n\tdocker run --rm ${docker_opts} /bin/bash\n\n# Flash the appropriate firmware to the bootloader\nnice_corne_flash_left:\n\t@ printf \"Waiting for ${nice} bootloader to appear at ${nice_mount}..\"\n\t@ while [ ! -d ${nice_mount} ]; do sleep 1; printf \".\"; done; printf \"\\n\"\n\tcp -av firmware/nice_corne_left.uf2 ${nice_mount}\n\nnice_corne_flash_right:\n\t@ printf \"Waiting for ${nice} bootloader to appear at ${nice_mount}..\"\n\t@ while [ ! -d ${nice_mount} ]; do sleep 1; printf \".\"; done; printf \"\\n\"\n\tcp -av firmware/nice_corne_right.uf2 ${nice_mount}\n\npuchi_corne_flash_left:\n\t@ printf \"Waiting for ${puchi} bootloader to appear at ${puchi_mount}..\"\n\t@ while [ ! -d ${puchi_mount} ]; do sleep 1; printf \".\"; done; printf \"\\n\"\n\tcp -av firmware/puchi_corne_left.uf2 ${puchi_mount}\n\npuchi_corne_flash_right:\n\t@ printf \"Waiting for ${puchi} bootloader to appear at ${puchi_mount}..\"\n\t@ while [ ! -d ${puchi_mount} ]; do sleep 1; printf \".\"; done; printf \"\\n\"\n\tcp -av firmware/puchi_corne_right.uf2 ${puchi_mount}\n\nclean_firmware:\n\tfind firmware/*.uf2 -type f -delete\n\nclean_zmk:\n\tif [ -d zmk ]; then rm -rfv zmk; fi\n\nclean: clean_zmk\n\tdocker ps -aq --filter name='^zmk' | xargs -r docker container rm\n\tdocker volume list -q --filter name='zmk' | xargs -r docker volume rm\n\nclean_all: clean clean_firmware\n\t@echo \"cleaning all\"\n\n# vim: set ft=make fdm=marker:\n"
  },
  {
    "path": "README.md",
    "content": "# MC Technology's zmk-config for corne - sofle - lily58\n\n[![MC Technology](https://github.com/mctechnology17/mctechnology17/blob/main/src/mctechnology_extendido.GIF)](https://www.youtube.com/channel/UC_mYh5PYPHBJ5YYUj8AIkcw)\n\n<div align=\"center\">\n\n  [<img align=\"center\" alt=\"MC Technology | YouTube\" width=\"22px\" src=\"https://github.com/mctechnology17/mctechnology17/blob/main/src/youtube.png\" />][youtube]\n  [<img align=\"center\" alt=\"MC Technology17 | Facebook\" width=\"22px\" src=\"https://github.com/mctechnology17/mctechnology17/blob/main/src/facebook.png\" />][facebook]\n  [<img align=\"center\" alt=\"MC Technology17 | Reddit\" width=\"22px\" src=\"https://github.com/mctechnology17/mctechnology17/blob/main/src/reddit.png\" />][reddit]\n\n</div>\n<br>\n\n\n- [INTRO](#INTRO)\n- [QUICK START](#QUICK-START)\n  - [keymap corne](#keymap-corne)\n  - [keymap sofle](#keymap-sofle)\n  - [keymap splitkb_aurora_sofle](#keymap-splitkb_aurora_sofle)\n  - [keymap lily58](#keymap-lily58)\n- [LOCAL INSTALLATION](#LOCAL-INSTALLATION)\n- [DISPLAY](#DISPLAY)\n- [RGB](#RGB)\n  - [rgb with niceview](#rgb-with-niceview)\n  - [rgb with niceview in two step](#rgb-with-niceview-in-two-step)\n- [DONGLE](#DONGLE)\n- [USEFUL TIPS](#USEFUL-TIPS)\n- [ZMK STUDIO](#ZMK-STUDIO)\n- [MODULE INTEGRATION](#MODULE-INTEGRATION)\n   - [modules used in this repository](#modules-used-in-this-repository)\n   - [list of useful modules](#list-of-useful-modules)\n- [THIS REPOSITORY AS A MODULE](#THIS-REPOSITORY-AS-A-MODULE)\n- [INSPIRATIONS](#INSPIRATIONS)\n- [MY OTHER PROJECTS](#MY-OTHER-PROJECTS)\n- [RELATED PROJECTS](#RELATED-PROJECTS)\n- [DONGLE DESIGNS](#DONGLE-DESIGNS)\n\n----\n\n- If you already have your corne - sofle - lily58 configured with this repository and want to make\na modification to your keymap, you can do it with the online [ZMK-STUDIO](https://zmk.studio/).\n\n- If you already have your corne - sofle - lily58 configured with this repository and want to make\na modification to your keymap, you can do it with the online [keymap-editor](https://nickcoutsos.github.io/keymap-editor/).\n\n- If you already have a repository and you want only the dongle option of this repository with support for `zmk-studio`, just add this repository as a module to your configuration, look the section [THIS REPOSITORY AS A MODULE](#THIS-REPOSITORY-AS-A-MODULE).\n\n# INTRO\n\n> [!CAUTION]\n>\n> I AM NOT RESPONSIBLE FOR ANY DAMAGE THIS CODE MAY CAUSE, USE IT AT YOUR OWN\n> RISK.\n\n> [!NOTE]\n>\n>\n> FEEL FREE TO MODIFY THE CODE TO YOUR LIKING OR USE WHATEVER YOU NEED. I\n> DECIDED TO REVOKE MANY CHANGES AND RETURN TO THE BASE MAPPING, SO THAT\n> ADVANCED AND NON-ADVANCED  USERS CAN USE THIS REPOSITORY AS A BASE FOR THEIR\n> CONFIGURATIONS. IF YOU HAVE ANY QUESTIONS, DON'T HESITATE TO ASK. IF YOU HAVE\n> ANY SUGGESTIONS, FEEL FREE TO SUGGEST.\n\n\nThe objective of this repository is to serve as a base for configuring your\ncorne - sofle - lily58 keyboard with the firmware [ZMK firmware] in a simple and fast way.\nwithout having to configure everything from scratch. Many of us are fascinated\nby customizing our keyboards, but sometimes we don't have the time or\nexperience to do it. That is why I have decided to create this repository so\nthat you can have a base configuration and you can modify it to your liking.\n\nThis base includes the most recent corne - sofle - lily58 configurations, featuring a setup for\nthe corne - sofle - lily58 dongle with/without an OLED screen.\nYou can also use your keyboard WITH / WITHOUT a dongle of course. with any of the\nplates or screens you have.\n\nTested with **[puchi_ble_v1]** (used as a dongle and as\nperipherals), **[nice_nano_v2]** (used as a dongle and as peripherals),\n**clones of nice_nano_v2** (used as a dongle and as peripherals), and the\n**[seeeduino_xiao_ble]** (used only as a dongle).\n\n| Main Pros                                                                                       |\n|-------------------------------------------------------------------------------------------------|\n| mobility and flexibility                                                                        |\n| reduction of tension and fatigue (ergonomic and ortholinear)                                    |\n| improved productivity                                                                           |\n| bluetooth and usb-c connection                                                                  |\n| Highly customizable programmable with [ZMK firmware].                                           |\n| compatibility with linux, windows, macos, android, ios and more                                 |\n| completely wireless between the two halves and with the PC                                      |\n| ultra-low consumption. extends battery life to the limit                                        |\n| drag and drop thanks to the included uf2 bootloader                                             |\n| no additional software required for flashing                                                    |\n| support for multiple devices (up to 5)                                                          |\n| mouse keys                                                                                      |\n| rgb                                                                                             |\n| macros                                                                                          |\n| tap dance                                                                                       |\n| combos                                                                                          |\n| up to 1 week of use without charger (with 100mah)                                               |\n| support [nice-view] screen and oled screen                                                      |\n| online editor for keymap. see               [keymap-editor]                                     |\n| 100% open source                                                                                |\n| support for puchi-ble dongle, nice!nano v2, nice!nano v2 clones, seeeduino xiao ble and more... |\n| support with dongle with display 128x32, 128x64 and 128x128                                     |\n| and more...                                                                                     |\n\n# QUICK START\n> [!NOTE]\n>\n> 1. With this configuration you can use the corne - sofle - lily58 keyboard practically\n> immediately, you just have to follow the following steps and that's it.\n>\n> 2. If you need precompiled files you can download them from the [firmware\n>    folder](./firmware)\n>\n> 3. If you have any problems, you just have to flash the reset firmwares that\n>    are in the [firmware](./firmware) folder and that's it.\n>\n> 4. Disable the builds you don't need in the file [build.yaml](./build.yaml),\n>    by default they are all activated.\n\n\n### zmk-studio (quick start)\nThis repository includes the necessary configuration to use zmk-studio without\nthe need to configure anything else. You just have to follow the steps below:\n- fork this repository y flash the firmware to the keyboard with the uf2 files (see as below en normal procedure)\n- connect the master (dongle or central) to the PC\n- Modify the keyboard mapping on the go with [ZMK Studio\n  Web](https://zmk.studio/) and enjoy the changes!\n\n### normal procedure\n1. Fork this repository (I appreciate if you follow me on [github] and [youtube])\n2. Modify the keyboard mapping with [keymap-editor]. If you want to read about\n   the features of this editor you can do so here: [ZMK Studio Web](https://zmk.studio/) or [keymap-editor](https://github.com/nickcoutsos/keymap-editor).\n3. Save changes and commit (optional)\n4. Go to actions on github and download the artifacts\n   - Actions(click) -> All Workflows (click)-> Initial User Config. (here you\n     scroll to the bottom and click)\n   - Here is something called artifacts, click to download the file, it is a .zip\n   - now go to download on your computer (or wherever you have downloads by default):\n   - unzip the .zip file\n   - Connect the nice!nano v2 microcontroller to the USB-C port of your computer\n   - the microcontroller is recognized as a storage device\n5. Flash the firmware to the keyboard with the uf2 files (drag and drop and WITH dongle)\n   - xiao_corne_dongle_xiao_dongle_display.uf2 for [seeeduino_xiao_ble] as a dongle\n   - nice_corne_left_peripheral.uf2 for [nice_nano_v2] as a peripheral\n   - nice_corne_right.uf2 for [nice_nano_v2] as a peripheral\n6. Flash the firmware to the keyboard with the uf2 files (drag and drop and WITHOUT dongle)\n   - nice_corne_left.uf2 for [nice_nano_v2] as a master side\n   - nice_corne_right.uf2 for [nice_nano_v2] as a peripheral\n7. If you need help, you can ask in the [ZMK Discord]\n8. Enjoy your new keyboard\n\nHere you can see the visual changes to the configuration:\n> [!NOTE]\n>\n> This .svg image is automatically generated every time a change is made with\n> the keymap editor. Github's workflows are responsible for building and\n> generating the .svg file. You just have to go to the\n> [keymap-drawer](./keymap-drawer)  folder and open the .svg file with your\n> preferred browser if you want to see the files. The keymap-drawer\n> configuration file is located in\n> [config](./config/config_keymap-drawer.yaml).\n> The file for the workflows is in [workflows](./.github/workflows/keymap-drawer.yaml) in case you want to modify it.\n\n## keymap corne\n[![keymap-drawer-demo-corne](keymap-drawer/corne.svg)](https://www.youtube.com/c/mctechnology17)\n## keymap sofle\n[![keymap-drawer-demo-sofle](keymap-drawer/sofle.svg)](https://www.youtube.com/c/mctechnology17)\n## keymap splitkb_aurora_sofle\n[![keymap-drawer-demo-splitkb_aurora_sofle](keymap-drawer/splitkb_aurora_sofle.svg)](https://www.youtube.com/c/mctechnology17)\n## keymap lily58\n[![keymap-drawer-demo-lily58](keymap-drawer/lily58.svg)](https://www.youtube.com/c/mctechnology17)\n\nIf you want to customize this image with shapes/colors/etc. You can see these references:\n[^1] [^2] [^3]\n\n\n# LOCAL INSTALLATION\nBefore making any modifications, please see the [ZMK documentation]\ndocumentation.\n\nExample of an advanced configuration hier -> [^4]\n\n1. Clone _your fork_ of this repository.\n\n   ```bash\n   # Replace `mctechnology17` with your username\n   git clone https://github.com/mctechnology17/zmk-config.git\n   ```\n\n2. Enter the repository.\n\n   ```bash\n   cd zmk-config\n   ```\n\nHere you have a preview of how the repository is organized:\n\n```bash\nzmk-config # main folder\n├── LICENSE # license\n├── Makefile # file for compilation\n├── README.md # readme this file\n├── build.yaml # config file for compilation on the github server\n│   boards\n│   ├── ... # other boards\n│   ├── nice_nano_v2.overlay\n│   ├── puchi_ble_v1.overlay\n│   └── shields\n│       ├── corne\n│       │   ├── Kconfig.defconfig # modify if you want to add a new shield\n│       │   ├── Kconfig.shield # modify if you want to add a new shield\n│       │   ├── boards\n│       │   │   ├── ... # other boards\n│       │   ├── corne.conf # general configurations of the corne\n│       │   ├── corne.dtsi # default dtsi\n│       │   ├── corne.keymap # default keymap\n│       │   ├── corne.zmk.yml # modify if you want to add a new shield\n│       │   ├── corne_dongle_pro_micro.conf # conf dongle pro_micro pinout\n│       │   ├── corne_dongle_pro_micro.overlay # properties/displays dongle\n│       │   ├── corne_dongle_xiao.conf # conf dongle xiao pinout\n│       │   ├── corne_dongle_xiao.overlay # properties/displays dongle\n│       │   ├── corne_left.conf # conf left\n│       │   ├── corne_left_peripheral.conf # config left peripheral\n│       │   ├── corne_right.conf # conf right\n│       │   ├── ... # other files\n│       └── dongle_display\n│           ├── ... # here you can modify the screen widgets\n│           └── widgets\n│               └── # here you can modify the screen widgets\n│   config # configuration folder\n│   ├── config_keymap-drawer.yaml # config file keymap-drawer\n│   ├── corne.conf # general configurations of the corne\n│   ├── corne.keymap # your keymap file\n│   ├── keymap_german_mac_iso_zmk.h # example of definition for german mac iso\n│   └── west.yml # conf to connect with the repository\n├── firmware\n│   └── *.uf2 # all the firmwares\n├── keymap-drawer # folder with the keymap-drawer\n│   ├── corne.svg # img of the keymap\n│   └── corne.yaml # keymap file yaml format for keymap-drawer\n└── src\n    └── ... # other files\n```\n\nTo compile with make, just run the following command:\n\n> [!IMPORTANT]\n>\n> 1. You have to have [docker](https://www.docker.com/products/docker-desktop/)\n>    installed on your computer to use this command.\n> 2. Check the [makefile](./makefile) file for build options.\n\n\n```bash\nmake codebase_urob # clones urob's zmk firmware and initializes it\nmake corne_urob # compile all the *.uf2 of the corne and copy them to the firmware folder\n```\n\n# DISPLAY\n1. ePAPER\n   - The nice!view is a SSD1306 OLED replacement boasting >1,000x power savings\n     while keeping a 30Hz refresh rate. It has a similar pinout to SSD1306\n     OLEDs with one extra pin making it easy to add on to existing boards.\n   - the [nice-view] screen is compiled by default in this repository.\n2. OLED\n   - SSD1306 / sh1107 / sh1106 OLED displays are one of the most common in\n     mechanical keyboard kits. They're often used to display information about\n     your keyboard, such as which layer is active, or if any modifiers like\n     Caps Lock, Num Lock or Scroll Lock are on. Of course, you can display\n     anything you want, including images and animations.\n   - These displays work over I2C and should be powered with 5V. They are\n     compatible with Pro Micro-based kits.\n   - the oled screen for the dongle is enabled by default in this repository.\n   - If you want to enable the OLED screen for the halves, you can do so by\n     modifying the `.conf` files for their respective halves.\n   - Remember to disable the [nice-view] screens to avoid conflict in the compilation.\n3. FULL COLOR LCD SCREEN\n   - [Prospector](https://github.com/carrefinho/prospector) is a desktop ZMK dongle with full color LCD screen.\n\n> [!IMPORTANT]\n>\n> 1. To modify the dongle's OLED screen you can modify the `.overlay` file as follows for its respective board:\n[corne_dongle_xiao.overlay](./config/boards/shields/corne/corne_dongle_xiao.overlay) and\n[corne_dongle_pro_micro.overlay](./config/boards/shields/corne/corne_dongle_pro_micro.overlay). There you can find as a comment examples for the 128x32, 128x64, 128x128 screens and [nice-view] for the dongle screen.\n> 3. For the 128x128 OLED screen model sh1107 there are no default drivers in Zephyr, so neither in ZMK, but you can add it yourself with this small tutorial (This tutorial is the same for the OLED screens mentioned above):\n\nYou just have to modify the following line:\n```dts\n// replace the following lines for the 128x64 screen by default\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// for this (i.e. just copy and paste) replace the 128x64 screen with the 128x128 sh1107 screen\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n```\n\n# RGB\n> [!WARNING]\n>\n> 1. If you use [nice-view] you cannot use rgb, since [nice-view] uses the same\n>    pinout as rgb.\n\nIf you are interested in using RGB on your keyboard you can see the\nconfiguration in the branch\n[power/domains-and-device-runtime](https://github.com/mctechnology17/zmk-config/tree/power/domains-and-device-runtime)\nfrom this same repository.\n\nHere is an example of what it looks like:\n[![rgb-demo](src/demo.GIF)](https://www.youtube.com/c/mctechnology17)\n\n## rgb with niceview\nPoints to take into account if you want to use niceview with RGB:\n- In a nutshell, the problem is that the backlight and the nice!view display\n  use the same pin on the pcb, causing conflicts.\n- The common solution is to solder the backlight to pin 008 and set it to the keymap.\n- However, this means that both the screen and backlight share the same power\n  source, which can drain the battery quickly.\n- There is no ideal solution, but some options include redesigning the boards\n  to separate the power or powering the display directly from a gpio pin.\n\n## rgb with niceview in two step\n1. solder the nice!view display to pin 008\n2. set the display to use pin 008 in the keymap\n3. recompile the firmware and enjoy the nice!view display with RGB\n```c\n&nice_view_spi {\n    cs-gpios = <&pro_micro 0 GPIO_ACTIVE_HIGH>;  // use D0 (008) for CS (no 006)\n};\n```\n\n# DONGLE\n> [!TIP]\n>\n> 1. You can connect the display to the dongle directly to the i2c port of the\n> handwired style dongle, or you can connect it to a usb-c port of the pcb\n> style dongle.\n> 2. You can see the connections in the following diagram for [seeeduino_xiao_ble](./src/pinout-seeeduino_xiao_ble.png) and for the boards with [pro_micro](./src/pinout-pro_micro.png) connections as the [nice_nano_v2] and the [puchi_ble_v1].\n> 3. You can print a case for the dongle, you can see the designs below in the section [Dongle Designs](#Dongle-Designs).\n> 4. You can print a pcb for the dongle, you can see the designs in the section [Dongle Designs](#Dongle-Designs).\n> 5. You can program a macro that references the `&bootloader` action so that the dongle enters bootloader mode and you can flash the firmware again. The macros are executed on the master so this action causes the dongle to enter bootloader mode. Thanks @chadtrans for the tip!\n\nIn the following image you can see how you can connect the OLED screen to the\ndongle:\n[![dongle-demo](src/dongle.jpg)](https://www.youtube.com/c/mctechnology17)\n\nInformation about this image:\n- The photo shows a [seeeduino_xiao_ble] dongle with an OLED 128x128 sh1107 display connected to the handwired style i2c port. This dongle acts as master.\n- The left side acts as peripheral in this case, the board is a [puchi_ble_v1].\n- The right side acts as a peripheral in this case, the board is a [nice_nano_v2].\n- The photo shows a clone [nice_nano_v2] dongle with an OLED display connected to a traditional i2c port in a pcb style. This dongle is only for sample photo and is not connected to any device shown in the photo.\n\nCombo example to enter bootloader mode. On  your\n[corne.keymap](./config/corne.keymap) file you can add the following combo (Thanks @VictorSCamargo for the tip!):\n> [!TIP]\n>\n> 1. You can program this `combo` with the online editor [keymap-editor]\n> 2. These examples were tested using a `corne` keyboard, so the numbers `0 1 2` correspond to the keys on the left of the first row of the keyboard and the numbers `9 10 11` correspond to the 3 right keys at the top of columns 3, 4 and 5. see the reference below `COMBO` for more details.\n> 3. You can combine both forms of combos and in both cases the keyboard that is the master (dongle or central) is the one that executes the action, in this case the dongle or the left master enters bootloader mode.\n\n1. This is the manual way to do it using `c` code:\n\n```c\n// this is the manual way to do it\n#define COMBO(NAME, BINDINGS, KEYPOS, LAYERS) \\\n    combo_##NAME { \\\n        bindings = <BINDINGS>; \\\n        key-positions = <KEYPOS>; \\\n        layers = <LAYERS>; \\\n    };\n// for the right side\n// COMBO NAME = combo_bootloader_right,\n// BINDINGS = &bootloader,\n// KEYPOSITION = 9 10 11,\n// LAYERS = 0\nCOMBO(combo_bootloader_right,        &bootloader,     9 10 11,           0);\n```\n\n2. This is the manual way to do it using `dts` code:\n\n```dts\n// for the left side\ncombo_bootloader_left {\n        timeout-ms = <50>;\n        key-positions = <0 1 2>; // Pressing the 3 first keys on the keyboard will trigger &bootloader\n        bindings = <&bootloader>;\n        };\n   };\n```\n\n# USEFUL TIPS\n> [!TIP]\n>\n> Below are some useful tips for using your corne - sofle - lily58 keyboard with this\n> configuration.\n\n- You can add a reset key on each half, that's useful for when your halves disconnect/desynchronize, or something unusual happens. That way the firmware is loaded again. see reference in [corne.keymap](./config/corne.keymap)\n- You can add a bootloader activator on each half in case you don't have access to the bootloader button, it is useful in case your case is not optimized or you just want that option. see reference in [corne.keymap](./config/corne.keymap)\n- If both halves were disconnected/unsynchronized, you just have to press the reset button on both halves 10 times in a row and they will reconnect.\n- If you want to flash the firmware again you just have to connect the keyboard (that is, one half first, usually the left one) press the reset button 2 times in a row\n  and your device is recognized as a hard disk storage drive, then just drag the file to flash and that's it. do the same with the other half.\n- Remember that if your corne - sofle - lily58 only has some functional RGB lights you can activate only the ones that you have functional, it is not necessary to activate all the lights. see reference in [led strip](./config/corne.keymap)\n- You can combine the boards, for example: on the left you can have a [nice_nano_v2], on the right a [puchi_ble_v1] and on the dongle a [seeeduino_xiao_ble] or some clone [nice_nano_v2], or any combination you can think of.\n\n# ZMK STUDIO\n\nThis repository includes the necessary configuration to use zmk-studio without\nthe need to configure anything else. You just have to follow the steps below:\n- fork this repository y flash the firmware to the keyboard with the uf2 files\n- connect the master (dongle or central) to the PC\n- Modify the keyboard mapping on the go with [ZMK Studio\n  Web](https://zmk.studio/) and enjoy the changes!\n\n> [!TIP]\n>\n> 1. For zmk-studio it is necessary to enable the `&studio_unlock` macro but you\n> can skip this if you use `CONFIG_ZMK_STUDIO_LOCKING=n` in your zmk\n> configuration. This is enabled by default in this repository.\n> 2. Remember that this has to be activated on the master and the dongle:\n> `snippet: studio-rpc-usb-uart`\n> 3. with the `cmake-args: -DCONFIG_ZMK_USB=y` flag you can activate the master\n>    (dongle or central) to connect always defaults to usb.\n> 4. The zmk-studio only connects with USB on the web and only BLE in the app,\n>    it is useful to have a toggle key to switch between BLE and USB. (this is\n>    what I understood, if not, please correct me)\n\nUseful links:\n- [ZMK Studio Web](https://zmk.studio/)\n- [ZMK Studio Unlock Behavior](https://zmk.dev/docs/keymaps/behaviors/studio-unlock/)\n- [ZMK Studio Testing Steps / click hier for more ...](https://discord.com/channels/719497620560543766/719544534500900886/1296241576263024641):\n\t* [Set up ZMK Studio](https://zmk.dev/docs/development/hardware-integration/studio-setup) for your device, if needed.\n\t* [Build with ZMK Studio enabled](https://zmk.dev/docs/features/studio) and flash to the device.\n\t* Test ZMK Studio by loading https://zmk.studio/ or installing the app from the latest release at https://github.com/zmkfirmware/zmk-studio/releases/\n\n### Reporting\n\nPlease report any and all testing results, even successful results in [Discord\nzmk-studio](https://discord.com/channels/719497620560543766/722441502948851741.)\nIf you have a genuine bug to report, please file a new [GitHub\nIssue](https://github.com/zmkfirmware/zmk-studio/issues/new/choose). With any\nbugs or testing results, please include all the relevant details, including the\nhost OS, app/browser details, keyboard used, link to your config repo, etc.\n\n# MODULE INTEGRATION\n> [!TIP]\n>\n> 1. Remember that animations consume energy, so if you want to conserve your battery, turn off the animations!\n> 2. Please consult the documentation of each module that you are going to use, here I leave you the links for each one.\n\n## modules used in this repository\nSee module details here for more information and more configurations:\n- [**nice_view_gem**](https://github.com/M165437/nice-view-gem) a sleek customization for the nice!view shield\n- [**nice_oled**](https://github.com/mctechnology17/zmk-nice-oled) vertical widgets for oled screens with zmk for split and non-split keyboards using the standard [oled screen](https://keycapsss.com/keyboard-parts/parts/80/0.91-oled-lcd-display-128x32-ssd1306-i2c) 128x32.\n- [**zmk-dongle-display**](https://github.com/englmaxi/zmk-dongle-display) to show the peripheral battery percentage (and more!) on the display of the dongle.\n- [**dongle_display!view**](https://github.com/mctechnology17/zmk-dongle-display-view) to show the peripheral battery percentage (and more!) on the display of the dongle using the nice!view display.\n- [**oled Adapter**](https://github.com/mctechnology17/zmk-oled-adapter) to use the 128x32, 128x64 and 128x128 OLED screens on keyboards with ZMK without having to modify the shields of the keyboards.\n\n## list of useful modules\nAdditional features are provided by the following [modules](https://zmk.dev/docs/features/modules):\n\n- [**zmk-antecedent-morph**](https://github.com/ssbb/zmk-antecedent-morph) to change the behavior of a key based on the previously pressed key. This is used to type `<=`, `>=`, `!=`, `=>`, `->`, `|>`, `./` and `#include ` more comfortably.\n- [**zmk-locales**](https://github.com/joelspadin/zmk-locales) to provide key codes for non-US keyboard locales.\n- [**zmk-rgbled-widgets**](https://github.com/caksoylar/zmk-rgbled-widget) to show the connection and battery status with the built-in LEDs of the Xiao BLE controller.\n- [**zmk-led_indicator**](https://github.com/englmaxi/zmk-config/tree/main/boards/shields/led_indicator) to show the connection and battery status with the built-in LEDs to be used with the single LED of the nice!nano. Based on the [**zmk-rgbled-widgets**](https://github.com/caksoylar/zmk-rgbled-widget)\n- [**zmk-tri-state**](https://github.com/urob/zmk-tri-state) to define a custom <kbd>swapper</kbd> and a <kbd>select-word</kbd> behavior.\n- [**zmk-layer-listeners**](https://github.com/ssbb/zmk-layer-listeners) - call something on layer enter/leave. I use it for haptic feedback and to reset nav layer toggled keys on leave.\n- [**zmk-deadkey-slayer**](https://github.com/ssbb/zmk-deadkey-slayer) - drop invalid keycodes. I use them quite a lot as a markers, way to reset sticky keys, etc. so they aren't sent to the host (in which case eg MacOS disconnects device after some limit)\n- [**zmk-raw-hid**](https://github.com/zzeneg/zmk-raw-hid) - raw HID - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK).\n- [**zmk-nice-view-hid**](https://github.com/zzeneg/zmk-nice-view-hid) - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK).\n- [**zmk-hid-host**](https://github.com/zzeneg/qmk-hid-host) - HID host - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK).\n\n# THIS REPOSITORY AS A MODULE\n1. In the `config/west.yml` file, add a new remote and its related project.\n```yaml\nmanifest:\n  remotes:\n    - name: zmkfirmware\n      url-base: https://github.com/zmkfirmware\n    # include corne with dongle pro_micro and xiao compatible\n    - name: mctechnology17\n      url-base: https://github.com/mctechnology17\n  projects:\n    - name: zmk\n      remote: zmkfirmware\n      revision: main\n      import: app/west.yml\n    # include corne with dongle pro_micro and xiao compatible\n    - name: zmk-config\n      remote: mctechnology17\n      revision: main\n  self:\n    path: config\n```\n\n2. In the `build.yaml` file, add the `corne_dongle_pro_micro` or the `corne_dongle_xiao` shield.\n\n```yaml\n---\ninclude:\n  # example with xiao dongle without display\n  - board: seeeduino_xiao_ble\n    shield: corne_dongle_xiao\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Xiao_Dongle\\\" -DCONFIG_ZMK_STUDIO=y\n    artifact-name: xiao_corne_dongle_xiao\n    snippet: studio-rpc-usb-uart\n  # ... the rest of the shields\n```\n\n3. Build the firmware, flash it to your keyboard, and enjoy!\n\n# INSPIRATIONS\n\n- [englmaxi/zmk-config](https://github.com/englmaxi/zmk-config)\n- [caksoylar/zmk-config](https://github.com/caksoylar/zmk-config)\n- [joelspadin/zmk-locale-generator](https://github.com/joelspadin/zmk-locale-generator)\n- [minusfive/zmk-config](https://github.com/minusfive/zmk-config)\n- [infused-kim/zmk-config](https://github.com/infused-kim/zmk-config)\n- [urob/zmk-config](https://github.com/urob/zmk-config)\n\n# MY OTHER PROJECTS:\n- [nice!oled](https://github.com/mctechnology17/zmk-nice-oled): nice_oled\n  vertical widgets for oled screens with zmk (for split and non-split\n  keyboards)\n- [dongle_display!view](https://github.com/mctechnology17/zmk-dongle-display-view): This is a mix between display_dongle and nice!view that allows you to use the nice!view display with your dongle.\n- [oled_adapter](https://github.com/mctechnology17/zmk-oled-adapter): This\n  module is an adapter for 128x32, 128x64 and 128x128 OLED screens, to be used\n  on keyboards with ZMK without having to modify the shields of the keyboards.\n- [qmk-config] will be updated soon\n- [qmk_userspace] will be updated soon\n- [vimtools] swiss army knife for vim (features and settings that will make your life easier)\n- [gm] cross-platform git manager with friendly user interface\n- [vim-better-header] the best automated template\n- [vim-executor] multilanguage code executor\n\nIf you enjoy my contributions, feel free to donate. I appreciate if you follow me on [github] and [youtube]\n- [paypal]\n- [sponsor]\n\n# RELATED PROJECTS\n\nI used this project as a reference to configure the dongles with OLED screen:\n- [cygnus](https://github.com/rain2813/zmk-cygnus-oled.git) by @rain2813\n- [zmk keyboard Macintosh dongle display](https://makerworld.com/en/models/403660) by @rain2813\n- [corne with dongle](https://github.com/tomgroenwoldt/zmk-config.git) by @tomgroenwoldt\n- [zmk-dongle-display](https://github.com/englmaxi/zmk-dongle-display.git) by @englmaxi\n- [zmk-config for module](https://github.com/englmaxi/zmk-config/tree/master/boards/shields) by @englmaxi\n- [zmk-config for dongle pro micro](https://github.com/joaopedropio/zmk-swoop/tree/dongle-sdd1306) by @joaopedropio\n\nIn the following animations created by @englmaxi you can see what the dongle\nlooks like with the 128x64 OLED screen:\n\n![output](https://github.com/englmaxi/zmk-config/assets/43675074/8d268f23-1a4f-44c3-817e-c36dc96a1f8b)\n\nIn that animation you can see the connection or output with the computer, that\nis, if it is through a USB or Bluetooth port. Also information about the status\nof both batteries.\n\n![mods](https://github.com/englmaxi/zmk-config/assets/43675074/af9ec3f5-8f61-4629-abed-14ba0047f0bd)\n\nIn this animation you can see the actions of the modifier keys, such as\ncontrol, shift, alt, windows/mac, etc.\n\n# DONGLE DESIGNS\n- [case1](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case1.zip) by @englmaxi\n- [case2](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case2.zip) by @englmaxi\n- [Cyberdeck](https://github.com/rafaelromao/keyboards/tree/main/stls/Dongle) by @rafaelromao\n- [Dongle PCB](https://github.com/spe2/zmk_dongle_hardware) by @spe2\n- [Macintosh](https://makerworld.com/en/models/403660) by @rain2813\n- [Redox](https://makerworld.com/en/models/242951) by @rurounikexin\n- [ZMK Display Dongle](https://makerworld.com/en/models/496738) by @yingeling\n\nAn example of Dongle Designs (by @rain2813):\n[![dongle-designs-demo](src/macintosh.png)](https://www.youtube.com/c/mctechnology17)\n\n# TODO\n- [ ] Add more features to the repository\n- [ ] Update the documentation\n\n[^1]: Keymap-drawer, https://github.com/caksoylar/keymap-drawer https://keymap-drawer.streamlit.app/\n[^2]: caksoylar zmk-config example for keymap-drawer https://github.com/caksoylar/zmk-config\n[^3]: Install pipx, https://pipx.pypa.io/stable/\n[^4]: Urob zmk-config, https://github.com/urob/zmk-config\n[^5]: Urob ZMK Firmware: Personal fork, https://github.com/urob/zmk/\n\n[qmk-config]: https://github.com/mctechnology17/qmk-config\n[qmk_userspace]: https://github.com/mctechnology17/qmk_userspace\n[github]: https://github.com/mctechnology17\n[twitter]: https://twitter.com/mctechnology17\n[youtube]: https://www.youtube.com/c/mctechnology17\n[instagram]: https://www.instagram.com/mctechnology17/\n[facebook]: https://m.facebook.com/mctechnology17/\n[reddit]: https://www.reddit.com/user/mctechnology17\n[nice-view]: https://nicekeyboards.com/nice-view\n[puchi_ble_v1]: (https://keycapsss.com/keyboard-parts/mcu-controller/202/puchi-ble-wireless-microcontroller-pro-micro-replacement?number=KC10157_SWITCH&c=18)\n[seeeduino_xiao_ble]: (https://keycapsss.com/keyboard-parts/mcu-controller/212/seeed-studio-xiao-nrf52840-rp2040-esp32c3?number=KC10167_NRF)\n[nice_nano_v2]: (https://nicekeyboards.com/nice-nano)\n[keymap-editor]: https://nickcoutsos.github.io/keymap-editor/\n[ZMK firmware]: https://github.com/zmkfirmware/zmk/\n[ZMK documentation]: https://zmk.dev/docs/user-setup\n[ZMK keycodes]: https://zmk.dev/docs/codes\n[ZMK Discord]: https://zmk.dev/community/discord/invite\n[git]: (https://github.com/git-guides/install-git)\n\n[vim-executor]: https://github.com/mctechnology17/vim-executor\n[vim-better-header]: https://github.com/mctechnology17/vim-better-header\n[gm]: https://github.com/mctechnology17/gm\n[vimtools]: https://github.com/mctechnology17/vimtools\n[jailbreakrepo]: https://mctechnology17.github.io/\n[uiglitch]: https://repo.packix.com/package/com.mctechnology.uiglitch/\n[uiswitches]: https://repo.packix.com/package/com.mctechnology.uiswitches/\n[uibadge]: https://repo.packix.com/package/com.mctechnology.uibadge/\n[youtuberepo]: https://github.com/mctechnology17/youtube_repo_mc_technology\n[sponsor]: https://github.com/sponsors/mctechnology17\n[paypal]: https://www.paypal.me/mctechnology17\n[readline]: https://github.com/PowerShell/PSReadLine/blob/master/README.md\n"
  },
  {
    "path": "boards/nice_nano.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/nice_nano_v2.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/nrfmicro_11.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi1_default: spi1_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi1_sleep: spi1_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi1 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi1_default>;\n    pinctrl-1 = <&spi1_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/nrfmicro_11_flipped.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi1_default: spi1_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi1_sleep: spi1_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi1 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi1_default>;\n    pinctrl-1 = <&spi1_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/nrfmicro_13.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi1_default: spi1_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi1_sleep: spi1_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi1 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi1_default>;\n    pinctrl-1 = <&spi1_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n        // label = \"WS2812\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/puchi_ble_v1.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n        // label = \"WS2812\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/seeeduino_xiao_ble.overlay",
    "content": "/*\nref: For future reference, this pinout shows both pin numberings https://files.seeedstudio.com/wiki/XIAO-BLE/pinout2.png\nThe &gpioX Y  and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF pin numbers), &xiao_d x uses the unified pinout Dx\n*/\n#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi0_default: spi0_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 29)>;\n        };\n    };\n\n    spi0_sleep: spi0_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 29)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi0_default>;\n    pinctrl-1 = <&spi0_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n        // label = \"WS2812\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <27>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/corne/Kconfig.defconfig",
    "content": "if SHIELD_CORNE_LEFT || SHIELD_CORNE_DONGLE_XIAO || SHIELD_CORNE_DONGLE_PRO_MICRO\n\nconfig ZMK_KEYBOARD_NAME\n    default \"Corne\"\n\nconfig ZMK_SPLIT_ROLE_CENTRAL\n    default y\n\n# if SHIELD_CORNE_DONGLE_XIAO || SHIELD_CORNE_DONGLE_PRO_MICRO\n\n# config ZMK_USB\n#     default y\n\n# endif\n\nendif\n\nif SHIELD_CORNE_LEFT || SHIELD_CORNE_RIGHT || SHIELD_CORNE_LEFT_PERIPHERAL || SHIELD_CORNE_DONGLE_XIAO || SHIELD_CORNE_DONGLE_PRO_MICRO\n\nconfig ZMK_SPLIT\n    default y\n\nif ZMK_DISPLAY\n\nconfig I2C\n    default y\n\nconfig SSD1306\n    default y\n\nif SHIELD_CORNE_DONGLE_XIAO || SHIELD_CORNE_DONGLE_PRO_MICRO\n\nchoice ZMK_DISPLAY_WORK_QUEUE\n    default ZMK_DISPLAY_WORK_QUEUE_DEDICATED\nendchoice\n\nendif\n\nendif # ZMK_DISPLAY\n\nif LVGL\n\nconfig LV_Z_VDB_SIZE\n    default 64\n\nconfig LV_DPI_DEF\n    default 148\n\nconfig LV_Z_BITS_PER_PIXEL\n    default 1\n\nchoice LV_COLOR_DEPTH\n    default LV_COLOR_DEPTH_1\nendchoice\n\nendif # LVGL\n\nendif\n"
  },
  {
    "path": "boards/shields/corne/Kconfig.shield",
    "content": "# Copyright (c) 2020 Pete Johanson\n# SPDX-License-Identifier: MIT\n\nconfig SHIELD_CORNE_LEFT\n    def_bool $(shields_list_contains,corne_left)\n\nconfig SHIELD_CORNE_RIGHT\n    def_bool $(shields_list_contains,corne_right)\n\nconfig SHIELD_CORNE_DONGLE_XIAO\n    def_bool $(shields_list_contains,corne_dongle_xiao)\n\nconfig SHIELD_CORNE_LEFT_PERIPHERAL\n    def_bool $(shields_list_contains,corne_left_peripheral)\n\nconfig SHIELD_CORNE_DONGLE_PRO_MICRO\n    def_bool $(shields_list_contains,corne_dongle_pro_micro)\n"
  },
  {
    "path": "boards/shields/corne/boards/nice_nano.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/corne/boards/nice_nano_v2.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/corne/corne.conf",
    "content": "# Uncomment the following lines to enable the Corne RGB Underglow\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n# CONFIG_WS2812_STRIP=y\n\n# Uncomment the following line to enable the Corne OLED Display\n# CONFIG_ZMK_DISPLAY=y\n"
  },
  {
    "path": "boards/shields/corne/corne.dtsi",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/foostan/corne/5column.dtsi>\n#include <layouts/foostan/corne/6column.dtsi>\n\n&foostan_corne_6col_layout {\n    transform = <&default_transform>;\n};\n\n&foostan_corne_5col_layout {\n    transform = <&five_column_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &kscan0;\n        zmk,physical-layout = &foostan_corne_6col_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <12>;\n        rows = <4>;\n// | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |\n// | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |\n// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |\n//                      | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)\n                        RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)\n        >;\n    };\n\n    five_column_transform: keymap_transform_1 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <10>;\n        rows = <4>;\n// | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  |\n// | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  |\n// | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 |\n//               | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |\n        map = <\nRC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10)\nRC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10)\nRC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10)\n                        RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)\n        >;\n    };\n\n    kscan0: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n        row-gpios\n            = <&pro_micro 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            ;\n\n    };\n\n    // TODO: per-key RGB node(s)?\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n"
  },
  {
    "path": "boards/shields/corne/corne.keymap",
    "content": "// #include \"../../../corne.keymap\"\n\n/*\n * Copyright (c) 2020 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n\n/ {\n        keymap {\n                compatible = \"zmk,keymap\";\n\n                default_layer {\n// -----------------------------------------------------------------------------------------\n// |  TAB |  Q  |  W  |  E  |  R  |  T  |   |  Y  |  U   |  I  |  O  |  P  | BKSP |\n// | CTRL |  A  |  S  |  D  |  F  |  G  |   |  H  |  J   |  K  |  L  |  ;  |  '   |\n// | SHFT |  Z  |  X  |  C  |  V  |  B  |   |  N  |  M   |  ,  |  .  |  /  | ESC  |\n//                    | GUI | LWR | SPC |   | ENT | RSE  | ALT |\n                        bindings = <\n   &kp TAB   &kp Q &kp W &kp E &kp R &kp T   &kp Y &kp U  &kp I     &kp O   &kp P    &kp BSPC\n   &kp LCTRL &kp A &kp S &kp D &kp F &kp G   &kp H &kp J  &kp K     &kp L   &kp SEMI &kp SQT\n   &kp LSHFT &kp Z &kp X &kp C &kp V &kp B   &kp N &kp M  &kp COMMA &kp DOT &kp FSLH &kp ESC\n                  &kp LGUI &mo 1 &kp SPACE   &kp RET &mo 2 &kp RALT\n                        >;\n                };\n                lower_layer {\n// -----------------------------------------------------------------------------------------\n// |  TAB |  1  |  2  |  3  |  4  |  5  |   |  6  |  7  |  8  |  9  |  0  | BKSP |\n// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 |   | LFT | DWN |  UP | RGT |     |      |\n// | SHFT |     |     |     |     |     |   |     |     |     |     |     |      |\n//                    | GUI |     | SPC |   | ENT |     | ALT |\n                        bindings = <\n   &kp TAB    &kp N1       &kp N2       &kp N3       &kp N4       &kp N5         &kp N6   &kp N7   &kp N8 &kp N9    &kp N0 &kp BSPC\n   &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4   &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans\n   &kp LSHFT  &trans       &trans       &trans       &trans       &trans         &trans   &trans   &trans &trans    &trans &trans\n                                    &kp LGUI     &trans       &kp SPACE      &kp RET  &trans   &kp RALT\n                        >;\n                };\n\n                raise_layer {\n// -----------------------------------------------------------------------------------------\n// |  TAB |  !  |  @  |  #  |  $  |  %  |   |  ^  |  &  |  *  |  (  |  )  | BKSP |\n// | CTRL |     |     |     |     |     |   |  -  |  =  |  [  |  ]  |  \\  |  `   |\n// | SHFT |     |     |     |     |     |   |  _  |  +  |  {  |  }  | \"|\" |  ~   |\n//                    | GUI |     | SPC |   | ENT |     | ALT |\n                        bindings = <\n   &kp  TAB  &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT   &kp CARET &kp AMPS  &kp ASTRK &kp LPAR &kp RPAR &kp BSPC\n   &kp LCTRL &trans   &trans &trans   &trans   &trans      &kp MINUS &kp EQUAL &kp LBKT  &kp RBKT &kp BSLH &kp GRAVE\n   &kp LSHFT &trans   &trans &trans   &trans   &trans      &kp UNDER &kp PLUS  &kp LBRC  &kp RBRC &kp PIPE &kp TILDE\n                             &kp LGUI &trans   &kp SPACE   &kp RET   &trans    &kp RALT\n                        >;\n                };\n        };\n};\n"
  },
  {
    "path": "boards/shields/corne/corne.zmk.yml",
    "content": "file_format: \"1\"\nid: corne\nname: Corne\ntype: shield\nurl: https://github.com/foostan/crkbd/\nrequires: [pro_micro]\nexposes: [i2c_oled]\nfeatures:\n  - keys\n  - display\n  - underglow\n  - studio\nsiblings:\n  - corne_left\n  - corne_right\n  - corne_left_peripheral\n  - corne_dongle_xiao\n  - corne_dongle_pro_micro\n"
  },
  {
    "path": "boards/shields/corne/corne_dongle_pro_micro.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (pro_micro):\n# - nice_nano (no  probado)\n# - nice_nano_v2 (probado)\n# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado)\n# - nrfmicro_11 (no probado)\n# - nrfmicro_11_flipped (no probado)\n# - nrfmicro_13 (no probado)\n# - puchi_ble_v1 (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/corne/corne_dongle_pro_micro.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/foostan/corne/5column.dtsi>\n#include <layouts/foostan/corne/6column.dtsi>\n\n&foostan_corne_6col_layout {\n    transform = <&default_transform>;\n};\n\n&foostan_corne_5col_layout {\n    transform = <&five_column_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &foostan_corne_6col_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <12>;\n        rows = <4>;\n// | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |\n// | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |\n// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |\n//                      | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)\n                        RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)\n        >;\n    };\n\n    five_column_transform: keymap_transform_1 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <10>;\n        rows = <4>;\n// | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  |\n// | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  |\n// | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 |\n//               | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |\n        map = <\nRC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10)\nRC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10)\nRC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10)\n                        RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)\n        >;\n    };\n\n    /*\n        kscan0: kscan {\n        compatible = \"zmk,kscan-gpio-direct\";\n\n        input-gpios\n            = <&xiao_d 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            , <&xiao_d 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            , <&xiao_d 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            , <&xiao_d 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            ;\n    };\n    */\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n    // TODO: per-key RGB node(s)?\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n// 128x64 OLED model sh1106\n\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/corne/corne_dongle_xiao.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (xiao):\n# - seeeduino_xiao_ble (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/corne/corne_dongle_xiao.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/foostan/corne/5column.dtsi>\n#include <layouts/foostan/corne/6column.dtsi>\n\n&foostan_corne_6col_layout {\n    transform = <&default_transform>;\n};\n\n&foostan_corne_5col_layout {\n    transform = <&five_column_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &foostan_corne_6col_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <12>;\n        rows = <4>;\n// | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |\n// | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |\n// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |\n//                      | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)\n                        RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)\n        >;\n    };\n\n    five_column_transform: keymap_transform_1 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <10>;\n        rows = <4>;\n// | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  |\n// | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  |\n// | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 |\n//               | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |\n        map = <\nRC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10)\nRC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10)\nRC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10)\n                        RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)\n        >;\n    };\n\n    /*\n        kscan0: kscan {\n        compatible = \"zmk,kscan-gpio-direct\";\n\n        input-gpios\n            = <&xiao_d 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            , <&xiao_d 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            , <&xiao_d 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            , <&xiao_d 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>\n            ;\n    };\n    */\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n    // TODO: per-key RGB node(s)?\n};\n\n// 128x64 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n\n// 128x64 OLED model sh1106\n\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// ################# niceview working fine START #################\n// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/\n// @bravekarma nice Discord server\n// The &gpioX Y  and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF\n// pin numbers), &xiao_d x uses the unified pinout Dx\n\n&pinctrl {\n    spi0_default: spi0_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n        };\n    };\n    spi0_sleep: spi0_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n            low-power-enable;\n        };\n    };\n};\n\nnice_view_spi: &spi0 {\n    compatible = \"nordic,nrf-spim\";\n    pinctrl-0 = <&spi0_default>;\n    pinctrl-1 = <&spi0_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n    cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>;  // Pin D6 as CS\n};\n\n&xiao_i2c {\n    status = \"disabled\";\n};\n// ################# niceview working fine END #################\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/corne/corne_left.conf",
    "content": ""
  },
  {
    "path": "boards/shields/corne/corne_left.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"corne.dtsi\"\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 21 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 20 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/corne/corne_left_peripheral.conf",
    "content": ""
  },
  {
    "path": "boards/shields/corne/corne_left_peripheral.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"corne.dtsi\"\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 21 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 20 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/corne/corne_right.conf",
    "content": ""
  },
  {
    "path": "boards/shields/corne/corne_right.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"corne.dtsi\"\n\n&default_transform {\n    col-offset = <6>;\n};\n\n&five_column_transform {\n    col-offset = <6>;\n};\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 20 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 21 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/lily58/Kconfig.defconfig",
    "content": "\nif SHIELD_LILY58_LEFT || SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO\n\nconfig ZMK_KEYBOARD_NAME\n    default \"Lily58\"\n\nconfig ZMK_SPLIT_ROLE_CENTRAL\n    default y\n\nendif\n\nif SHIELD_LILY58_LEFT || SHIELD_LILY58_RIGHT || SHIELD_LILY58_LEFT_PERIPHERAL || SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO\n\nconfig ZMK_SPLIT\n    default y\n\nif ZMK_DISPLAY\n\nconfig I2C\n    default y\n\nconfig SSD1306\n    default y\n\nif SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO\n\nchoice ZMK_DISPLAY_WORK_QUEUE\n    default ZMK_DISPLAY_WORK_QUEUE_DEDICATED\nendchoice\n\nendif\n\nendif # ZMK_DISPLAY\n\nif LVGL\n\nconfig LV_Z_VDB_SIZE\n    default 64\n\nconfig LV_DPI_DEF\n    default 148\n\nconfig LV_Z_BITS_PER_PIXEL\n    default 1\n\nchoice LV_COLOR_DEPTH\n    default LV_COLOR_DEPTH_1\nendchoice\n\nendif # LVGL\n\nendif\n"
  },
  {
    "path": "boards/shields/lily58/Kconfig.shield",
    "content": "# Copyright (c) 2020 Pete Johanson\n# SPDX-License-Identifier: MIT\n\nconfig SHIELD_LILY58_LEFT\n    def_bool $(shields_list_contains,lily58_left)\n\nconfig SHIELD_LILY58_RIGHT\n    def_bool $(shields_list_contains,lily58_right)\n\nconfig SHIELD_LILY58_LEFT_PERIPHERAL\n    def_bool $(shields_list_contains,lily58_left_peripheral)\n\nconfig SHIELD_LILY58_DONGLE_XIAO\n    def_bool $(shields_list_contains,lily58_dongle_xiao)\n\nconfig SHIELD_LILY58_DONGLE_PRO_MICRO\n    def_bool $(shields_list_contains,lily58_dongle_pro_micro)\n"
  },
  {
    "path": "boards/shields/lily58/boards/nice_nano.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/lily58/boards/nice_nano_v2.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <10>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/lily58/lily58.conf",
    "content": "# Uncomment to enable encoder\n# CONFIG_EC11=y\n# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y\n\n# Uncomment the following line to enable the Lily58 OLED Display\n# CONFIG_ZMK_DISPLAY=y\n"
  },
  {
    "path": "boards/shields/lily58/lily58.dtsi",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/kata0510/lily58.dtsi>\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &kscan0;\n        zmk,physical-layout = &kata0510_lily58_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <16>;\n        rows = <5>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//                      | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)\n                        RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10)\n        >;\n    };\n\n    kscan0: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n        row-gpios\n            = <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            ;\n\n    };\n\n    left_encoder: encoder_left {\n        compatible = \"alps,ec11\";\n        a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        steps = <80>;\n    };\n\n    sensors: sensors {\n        compatible = \"zmk,keymap-sensors\";\n        sensors = <&left_encoder>;\n        triggers-per-rotation = <20>;\n    };\n};\n\n&kata0510_lily58_layout {\n    transform = <&default_transform>;\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n"
  },
  {
    "path": "boards/shields/lily58/lily58.keymap",
    "content": "/*\n * Copyright (c) 2020 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/ext_power.h>\n\n/ {\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n// ------------------------------------------------------------------------------------------------------------\n// |  ESC  |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |   `   |\n// |  TAB  |  Q  |  W  |  E   |  R   |  T   |                   |  Y   |  U    |  I    |  O   |   P   |   -   |\n// |  CTRL |  A  |  S  |  D   |  F   |  G   |                   |  H   |  J    |  K    |  L   |   ;   |   '   |\n// | SHIFT |  Z  |  X  |  C   |  V   |  B   |   \"[\"  |  |  \"]\"  |  N   |  M    |  ,    |  .   |   /   | SHIFT |\n//                     | ALT  | GUI  | LOWER|  SPACE |  | ENTER | RAISE| BSPC  | GUI   |\n            bindings = <\n&kp ESC   &kp N1 &kp N2 &kp N3   &kp N4   &kp N5                     &kp N6 &kp N7   &kp N8    &kp N9  &kp N0   &kp GRAVE\n&kp TAB   &kp Q  &kp W  &kp E    &kp R    &kp T                      &kp Y  &kp U    &kp I     &kp O   &kp P    &kp MINUS\n&kp LCTRL &kp A  &kp S  &kp D    &kp F    &kp G                      &kp H  &kp J    &kp K     &kp L   &kp SEMI &kp SQT\n&kp LSHFT &kp Z  &kp X  &kp C    &kp V    &kp B  &kp LBKT   &kp RBKT &kp N  &kp M    &kp COMMA &kp DOT &kp FSLH &kp RSHFT\n                        &kp LALT &kp LGUI &mo 1  &kp SPACE  &kp RET  &mo 2  &kp BSPC &kp RGUI\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        lower_layer {\n// ------------------------------------------------------------------------------------------------------------\n// | BTCLR | BT1 | BT2 |  BT3 |  BT4 |  BT5 |                   |      |       |       |      |       |       |\n// |  F1   |  F2 |  F3 |  F4  |  F5  |  F6  |                   |  F7  |  F8   |  F9   |  F10 |  F11  |  F12  |\n// |   `   |  !  |  @  |  #   |  $   |  %   |                   |  ^   |  &    |  *    |  (   |   )   |   ~   |\n// |       |     |     |      |      |      |        |  |       |      |  _    |  +    |  {   |   }   |  \"|\"  |\n//                     |      |      |      |        |  |       |      |       |       |\n            bindings = <\n&bt BT_CLR &bt BT_SEL 0     &bt BT_SEL 1      &bt BT_SEL 2      &bt BT_SEL 3 &bt BT_SEL 4                 &trans    &trans    &trans    &trans    &trans    &trans\n&kp F1     &kp F2           &kp F3            &kp F4            &kp F5       &kp F6                       &kp F7    &kp F8    &kp F9    &kp F10   &kp F11   &kp F12\n&kp GRAVE  &kp EXCL         &kp AT            &kp HASH          &kp DOLLAR   &kp PRCNT                    &kp CARET &kp AMPS  &kp ASTRK &kp LPAR  &kp RPAR  &kp TILDE\n&trans     &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans       &trans    &trans   &trans    &trans    &kp MINUS &kp PLUS  &kp LBRC  &kp RBRC  &kp PIPE\n                                              &trans            &trans       &trans    &trans   &trans    &trans    &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        raise_layer {\n// ------------------------------------------------------------------------------------------------------------\n// |       |     |     |      |      |      |                   |      |       |       |      |       |       |\n// |   `   |  1  |  2  |  3   |  4   |  5   |                   |  6   |   7   |   8   |  9   |   0   |       |\n// |   F1  |  F2 |  F3 |  F4  |  F5  |  F6  |                   |      |   <-  |   v   |  ^   |  ->   |       |\n// |   F7  |  F8 |  F9 |  F10 |  F11 |  F12 |        |  |       |  +   |   -   |   =   |  [   |   ]   |   \\   |\n//                     |      |      |      |        |  |       |      |       |       |\n            bindings = <\n&trans    &trans &trans &trans  &trans  &trans                       &trans      &trans    &trans    &trans   &trans    &trans\n&kp GRAVE &kp N1 &kp N2 &kp N3  &kp N4  &kp N5                       &kp N6      &kp N7    &kp N8    &kp N9   &kp N0    &trans\n&kp F1    &kp F2 &kp F3 &kp F4  &kp F5  &kp F6                       &trans      &kp LEFT  &kp DOWN  &kp UP   &kp RIGHT &trans\n&kp F7    &kp F8 &kp F9 &kp F10 &kp F11 &kp F12   &trans   &trans    &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT  &kp BSLH\n                        &trans  &trans  &trans    &trans   &trans    &trans      &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n    };\n};\n"
  },
  {
    "path": "boards/shields/lily58/lily58.zmk.yml",
    "content": "file_format: \"1\"\nid: lily58\nname: Lily58\ntype: shield\nurl: https://github.com/kata0510/Lily58\nrequires: [pro_micro]\nexposes: [i2c_oled]\nfeatures:\n  - keys\n  - display\n  - studio\nsiblings:\n  - lily58_left\n  - lily58_right\n  - lily58_left_peripheral\n  - lily58_dongle_xiao\n  - lily58_dongle_pro_micro\n"
  },
  {
    "path": "boards/shields/lily58/lily58_dongle_pro_micro.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (pro_micro):\n# - nice_nano (no  probado)\n# - nice_nano_v2 (probado)\n# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado)\n# - nrfmicro_11 (no probado)\n# - nrfmicro_11_flipped (no probado)\n# - nrfmicro_13 (no probado)\n# - puchi_ble_v1 (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/lily58/lily58_dongle_pro_micro.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/kata0510/lily58.dtsi>\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &kata0510_lily58_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <16>;\n        rows = <5>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//                      | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)\n                        RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10)\n        >;\n    };\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n\n    left_encoder: encoder_left {\n        compatible = \"alps,ec11\";\n        a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        steps = <80>;\n    };\n\n    sensors: sensors {\n        compatible = \"zmk,keymap-sensors\";\n        sensors = <&left_encoder>;\n        triggers-per-rotation = <20>;\n    };\n};\n\n&kata0510_lily58_layout {\n    transform = <&default_transform>;\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n// 128x64 OLED model sh1106\n\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/lily58/lily58_dongle_xiao.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (xiao):\n# - seeeduino_xiao_ble (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/lily58/lily58_dongle_xiao.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/kata0510/lily58.dtsi>\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &kata0510_lily58_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <16>;\n        rows = <5>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//                      | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)\n                        RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10)\n        >;\n    };\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n\n    left_encoder: encoder_left {\n    compatible = \"alps,ec11\";\n    a-gpios = <&xiao_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    b-gpios = <&xiao_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    steps = <80>;\n    };\n\n    sensors {\n    \tcompatible = \"zmk,keymap-sensors\";\n    \tsensors = <&left_encoder>;\n        triggers-per-rotation = <20>;\n    };\n};\n\n&kata0510_lily58_layout {\n    transform = <&default_transform>;\n};\n\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n\n// 128x64 OLED model sh1106\n\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// ################# niceview working fine START #################\n// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/\n// @bravekarma nice Discord server\n// The &gpioX Y  and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF\n// pin numbers), &xiao_d x uses the unified pinout Dx\n\n&pinctrl {\n    spi0_default: spi0_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n        };\n    };\n    spi0_sleep: spi0_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n            low-power-enable;\n        };\n    };\n};\n\nnice_view_spi: &spi0 {\n    compatible = \"nordic,nrf-spim\";\n    pinctrl-0 = <&spi0_default>;\n    pinctrl-1 = <&spi0_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n    cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>;  // Pin D6 as CS\n};\n\n&xiao_i2c {\n    status = \"disabled\";\n};\n// ################# niceview working fine END #################\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/lily58/lily58_left.conf",
    "content": "# Uncomment to enable encoder\n# CONFIG_EC11=y\n# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y\n"
  },
  {
    "path": "boards/shields/lily58/lily58_left.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"lily58.dtsi\"\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 16 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 10 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n&left_encoder {\n    status = \"okay\";\n};\n"
  },
  {
    "path": "boards/shields/lily58/lily58_left_peripheral.conf",
    "content": ""
  },
  {
    "path": "boards/shields/lily58/lily58_left_peripheral.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"lily58.dtsi\"\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 16 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 10 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n&left_encoder {\n    status = \"okay\";\n};\n"
  },
  {
    "path": "boards/shields/lily58/lily58_right.conf",
    "content": "\n"
  },
  {
    "path": "boards/shields/lily58/lily58_right.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"lily58.dtsi\"\n\n&default_transform {\n    col-offset = <6>;\n};\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 10 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 16 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        ;\n};\n"
  },
  {
    "path": "boards/shields/sofle/Kconfig.defconfig",
    "content": "# Copyright (c) 2020 Ryan Cross\n# SPDX-License-Identifier: MIT\n\nif SHIELD_SOFLE_LEFT || SHIELD_SOFLE_DONGLE_XIAO || SHIELD_SOFLE_DONGLE_PRO_MICRO\n\nconfig ZMK_KEYBOARD_NAME\n    default \"Sofle\"\n\nconfig ZMK_SPLIT_ROLE_CENTRAL\n    default y\n\nendif\n\nif SHIELD_SOFLE_LEFT || SHIELD_SOFLE_RIGHT || SHIELD_SOFLE_LEFT_PERIPHERAL || SHIELD_SOFLE_DONGLE_XIAO || SHIELD_SOFLE_DONGLE_PRO_MICRO\n\nconfig ZMK_SPLIT\n    default y\n\nif ZMK_DISPLAY\n\nconfig I2C\n    default y\n\nconfig SSD1306\n    default y\n\nif SHIELD_SOFLE_DONGLE_XIAO || SHIELD_SOFLE_DONGLE_PRO_MICRO\n\nchoice ZMK_DISPLAY_WORK_QUEUE\n    default ZMK_DISPLAY_WORK_QUEUE_DEDICATED\nendchoice\n\nendif\n\nendif # ZMK_DISPLAY\n\nif LVGL\n\nconfig LV_Z_VDB_SIZE\n    default 64\n\nconfig LV_DPI_DEF\n    default 148\n\nconfig LV_Z_BITS_PER_PIXEL\n    default 1\n\nchoice LV_COLOR_DEPTH\n    default LV_COLOR_DEPTH_1\nendchoice\n\nendif # LVGL\n\nif ZMK_RGB_UNDERGLOW\n\nconfig WS2812_STRIP\n    default y\nendif\n\nendif\n"
  },
  {
    "path": "boards/shields/sofle/Kconfig.shield",
    "content": "# Copyright (c) 2020 Ryan Cross\n# SPDX-License-Identifier: MIT\n\nconfig SHIELD_SOFLE_LEFT\n    def_bool $(shields_list_contains,sofle_left)\n\nconfig SHIELD_SOFLE_RIGHT\n    def_bool $(shields_list_contains,sofle_right)\n\nconfig SHIELD_SOFLE_LEFT_PERIPHERAL\n    def_bool $(shields_list_contains,sofle_left_peripheral)\n\nconfig SHIELD_SOFLE_DONGLE_XIAO\n    def_bool $(shields_list_contains,sofle_dongle_xiao)\n\nconfig SHIELD_SOFLE_DONGLE_PRO_MICRO\n    def_bool $(shields_list_contains,sofle_dongle_pro_micro)\n"
  },
  {
    "path": "boards/shields/sofle/boards/nice_nano.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <36>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <\n            LED_COLOR_ID_GREEN\n            LED_COLOR_ID_RED\n            LED_COLOR_ID_BLUE\n        >;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/sofle/boards/nice_nano_v2.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <36>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <\n            LED_COLOR_ID_GREEN\n            LED_COLOR_ID_RED\n            LED_COLOR_ID_BLUE\n        >;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/sofle/boards/nrfmicro_11.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <36>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <\n            LED_COLOR_ID_GREEN\n            LED_COLOR_ID_RED\n            LED_COLOR_ID_BLUE\n        >;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/sofle/boards/nrfmicro_13.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <36>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n\n        color-mapping = <\n            LED_COLOR_ID_GREEN\n            LED_COLOR_ID_RED\n            LED_COLOR_ID_BLUE\n        >;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/sofle/sofle.conf",
    "content": "# Copyright (c) 2020 Ryan Cross\n# SPDX-License-Identifier: MIT\n\n# Uncomment the following line to enable the Sofle OLED Display\n# CONFIG_ZMK_DISPLAY=y\n\n# Uncomment these two lines to add support for encoders\n# CONFIG_EC11=y\n# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y\n\n# Uncomment this line below to add rgb underglow / backlight support\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n\n# Uncomment the line below to disable external power toggling by the underglow.\n# By default toggling the underglow on and off also toggles external power\n# on and off. This also causes the display to turn off.\n# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n\n"
  },
  {
    "path": "boards/shields/sofle/sofle.dtsi",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson, Ryan Cross\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n#include <layouts/josefadamcik/sofle.dtsi>\n\n&josefadamcik_sofle_layout {\n    transform = <&default_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &kscan0;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <16>;\n        rows = <4>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//               | SW30 | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 | SW30 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8)  RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8)  RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8)  RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8)  RC(3,9) RC(3,10) RC(3,11)\n                RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)\n        >;\n    };\n\n    kscan0: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n        row-gpios\n            = <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            ;\n    };\n\n    left_encoder: encoder_left {\n        compatible = \"alps,ec11\";\n        a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        steps = <80>;\n        status = \"disabled\";\n    };\n\n    right_encoder: encoder_right {\n        compatible = \"alps,ec11\";\n        a-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        b-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        steps = <80>;\n        status = \"disabled\";\n    };\n\n    sensors: sensors {\n        compatible = \"zmk,keymap-sensors\";\n        sensors = <&left_encoder &right_encoder>;\n        triggers-per-rotation = <20>;\n    };\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n"
  },
  {
    "path": "boards/shields/sofle/sofle.keymap",
    "content": "/*\n * Copyright (c) 2020 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/rgb.h>\n#include <dt-bindings/zmk/ext_power.h>\n\n#define BASE 0\n#define LOWER 1\n#define RAISE 2\n#define ADJUST 3\n\n/ {\n\n   // Activate ADJUST layer by pressing raise and lower\n    conditional_layers {\n        compatible = \"zmk,conditional-layers\";\n        adjust_layer {\n            if-layers = <LOWER RAISE>;\n            then-layer = <ADJUST>;\n        };\n    };\n\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n            display-name = \"default\";\n// ------------------------------------------------------------------------------------------------------------\n// |   `   |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |       |\n// |  ESC  |  Q  |  W  |  E   |  R   |  T   |                   |  Y   |  U    |  I    |  O   |   P   | BKSPC |\n// |  TAB  |  A  |  S  |  D   |  F   |  G   |                   |  H   |  J    |  K    |  L   |   ;   |   '   |\n// | SHIFT |  Z  |  X  |  C   |  V   |  B   |  MUTE  |  |       |  N   |  M    |  ,    |  .   |   /   | SHIFT |\n//               | GUI | ALT  | CTRL | LOWER|  ENTER |  | SPACE | RAISE| CTRL  | ALT   | GUI  |\n            bindings = <\n&kp GRAVE &kp N1 &kp N2   &kp N3   &kp N4    &kp N5                           &kp N6 &kp N7    &kp N8    &kp N9   &kp N0   &none\n&kp ESC   &kp Q  &kp W    &kp E    &kp R     &kp T                            &kp Y  &kp U     &kp I     &kp O    &kp P    &kp BSPC\n&kp TAB   &kp A  &kp S    &kp D    &kp F     &kp G                            &kp H  &kp J     &kp K     &kp L    &kp SEMI &kp SQT\n&kp LSHFT &kp Z  &kp X    &kp C    &kp V     &kp B      &kp C_MUTE &none      &kp N  &kp M     &kp COMMA &kp DOT  &kp FSLH &kp RSHFT\n                 &kp LGUI &kp LALT &kp LCTRL &mo LOWER  &kp RET    &kp SPACE  &mo RAISE  &kp RCTRL &kp RALT  &kp RGUI\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;\n        };\n\n        lower_layer {\n            display-name = \"lower\";\n// TODO: Some binds are waiting for shifted keycode support.\n// ------------------------------------------------------------------------------------------------------------\n// |       |  F1 |  F2 |  F3  |  F4  |  F5  |                   |  F6  |  F7   |  F8   |  F9  |  F10  |  F11  |\n// |   `   |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |  F12  |\n// |       |  !  |  @  |  #   |  $   |  %   |                   |  ^   |  &    |  *    |  (   |   )   |   |   |\n// |       |  =  |  -  |  +   |  {   |  }   |        |  |       |  [   |  ]    |  ;    |  :   |   \\   |       |\n//               |     |      |      |      |        |  |       |      |       |       |      |\n            bindings = <\n&trans    &kp F1    &kp F2    &kp F3      &kp F4    &kp F5                    &kp F6    &kp F7   &kp F8    &kp F9    &kp F10   &kp F11\n&kp GRAVE &kp N1    &kp N2    &kp N3      &kp N4    &kp N5                    &kp N6    &kp N7   &kp N8    &kp N9    &kp N0    &kp F12\n&trans    &kp EXCL  &kp AT    &kp HASH    &kp DLLR  &kp PRCNT                 &kp CARET &kp AMPS &kp ASTRK &kp LPAR  &kp RPAR  &kp PIPE\n&trans    &kp EQUAL &kp MINUS &kp PLUS &kp LBRC  &kp RBRC   &trans &trans  &kp LBKT  &kp RBKT &kp SEMI  &kp COLON &kp BSLH  &trans\n                    &trans    &trans      &trans    &trans     &trans &trans  &trans    &trans   &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;\n        };\n\n        raise_layer {\n            display-name = \"raise\";\n// ------------------------------------------------------------------------------------------------------------\n// | BTCLR | BT1  | BT2  |  BT3  |  BT4  |  BT5 |                |      |      |       |      |       |       |\n// |       | INS  | PSCR | GUI   |       |      |                | PGUP |      |   ^   |      |       |       |\n// |       | ALT  | CTRL | SHIFT |       | CAPS |                | PGDN |   <- |   v   |  ->  |  DEL  | BKSPC |\n// |       | UNDO | CUT  | COPY  | PASTE |      |      |  |      |      |      |       |      |       |       |\n//                |      |       |       |      |      |  |      |      |      |       |      |\n            bindings = <\n&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4                  &trans    &trans    &trans   &trans    &trans  &trans\n&trans     &kp INS      &kp PSCRN    &kp K_CMENU  &trans       &trans                        &kp PG_UP &trans    &kp UP   &trans    &kp N0  &trans\n&trans     &kp LALT     &kp LCTRL    &kp LSHFT    &trans       &kp CLCK                      &kp PG_DN &kp LEFT  &kp DOWN &kp RIGHT &kp DEL &kp BSPC\n&trans     &kp K_UNDO   &kp K_CUT    &kp K_COPY   &kp K_PASTE  &trans        &trans  &trans  &trans    &trans    &trans   &trans    &trans  &trans\n                        &trans       &trans       &trans       &trans        &trans  &trans  &trans    &trans    &trans   &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;\n        };\n\n        adjust_layer {\n// ----------------------------------------------------------------------------------------------------------------------------\n// | BTCLR  |  BT1    |  BT2    |   BT3   |   BT4   |   BT5   |                  |      |      |       |      |       |       |\n// | EXTPWR | RGB_HUD | RGB_HUI | RGB_SAD | RGB_SAI | RGB_EFF |                  |      |      |       |      |       |       |\n// |        | RGB_BRD | RGB_BRI |         |         |         |                  |      |      |       |      |       |       |\n// |        |         |         |         |         |         | RGB_TOG | |      |      |      |       |      |       |       |\n//                    |         |         |         |         |         | |      |      |      |       |      |\n            display-name = \"adjust\";\n            bindings = <\n&bt BT_CLR        &bt BT_SEL 0    &bt BT_SEL 1    &bt BT_SEL 2    &bt BT_SEL 3    &bt BT_SEL 4                            &none &none &none &none &none &none\n&ext_power EP_TOG &rgb_ug RGB_HUD &rgb_ug RGB_HUI &rgb_ug RGB_SAD &rgb_ug RGB_SAI &rgb_ug RGB_EFF                         &none &none &none &none &none &none\n&none             &rgb_ug RGB_BRD &rgb_ug RGB_BRI &none           &none           &none                                   &none &none &none &none &none &none\n&none             &none           &none           &none           &none           &none            &rgb_ug RGB_TOG &none  &none &none &none &none &none &none\n                                  &none           &none           &none           &none            &none           &none  &none &none &none &none\n            >;\n        };\n\n    };\n};\n"
  },
  {
    "path": "boards/shields/sofle/sofle.zmk.yml",
    "content": "file_format: \"1\"\nid: sofle\nname: Sofle\ntype: shield\nurl: https://github.com/josefadamcik/SofleKeyboard\nrequires: [pro_micro]\nexposes: [i2c_oled]\nfeatures:\n  - keys\n  - display\n  - encoder\n  - underglow\n  - studio\nsiblings:\n  - sofle_left\n  - sofle_right\n  - sofle_left_peripheral\n  - sofle_dongle_xiao\n  - sofle_dongle_pro_micro\n"
  },
  {
    "path": "boards/shields/sofle/sofle_dongle_pro_micro.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (pro_micro):\n# - nice_nano (no  probado)\n# - nice_nano_v2 (probado)\n# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado)\n# - nrfmicro_11 (no probado)\n# - nrfmicro_11_flipped (no probado)\n# - nrfmicro_13 (no probado)\n# - puchi_ble_v1 (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/sofle/sofle_dongle_pro_micro.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n#include <layouts/josefadamcik/sofle.dtsi>\n\n&josefadamcik_sofle_layout {\n    transform = <&default_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &josefadamcik_sofle_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <16>;\n        rows = <4>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//               | SW30 | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 | SW30 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8)  RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8)  RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8)  RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8)  RC(3,9) RC(3,10) RC(3,11)\n                RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)\n        >;\n    };\n\n    /*\n    kscan0: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n        row-gpios\n            = <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            , <&pro_micro 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>\n            ;\n    };\n    */\n\n    left_encoder: encoder_left {\n        compatible = \"alps,ec11\";\n        a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        steps = <80>;\n        status = \"disabled\";\n    };\n\n    right_encoder: encoder_right {\n        compatible = \"alps,ec11\";\n        a-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        b-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n        steps = <80>;\n        status = \"disabled\";\n    };\n\n    sensors: sensors {\n        compatible = \"zmk,keymap-sensors\";\n        sensors = <&left_encoder &right_encoder>;\n        triggers-per-rotation = <20>;\n    };\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n// 128x64 OLED model sh1106\n\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/sofle/sofle_dongle_xiao.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (xiao):\n# - seeeduino_xiao_ble (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/sofle/sofle_dongle_xiao.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n#include <layouts/josefadamcik/sofle.dtsi>\n\n&josefadamcik_sofle_layout {\n    transform = <&default_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &josefadamcik_sofle_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <16>;\n        rows = <4>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//               | SW30 | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 | SW30 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8)  RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8)  RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8)  RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8)  RC(3,9) RC(3,10) RC(3,11)\n                RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)\n        >;\n    };\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n\n    /*\n    row-gpios\n        = <&xiao_d 0 GPIO_ACTIVE_HIGH>\n        , <&xiao_d 1 GPIO_ACTIVE_HIGH>\n        , <&xiao_d 2 GPIO_ACTIVE_HIGH>\n        , <&xiao_d 3 GPIO_ACTIVE_HIGH>\n        ;\n    };\n    */\n\n    left_encoder: encoder_left {\n    compatible = \"alps,ec11\";\n    a-gpios = <&xiao_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    b-gpios = <&xiao_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    steps = <80>;\n    status = \"disabled\";\n    };\n\n    right_encoder: encoder_right {\n    compatible = \"alps,ec11\";\n    a-gpios = <&xiao_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    b-gpios = <&xiao_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    steps = <80>;\n    status = \"disabled\";\n\n    };\n\n    sensors {\n    \tcompatible = \"zmk,keymap-sensors\";\n    \tsensors = <&left_encoder &right_encoder>;\n        triggers-per-rotation = <20>;\n    };\n};\n\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n\n// 128x64 OLED model sh1106\n\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// ################# niceview working fine START #################\n// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/\n// @bravekarma nice Discord server\n// The &gpioX Y  and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF\n// pin numbers), &xiao_d x uses the unified pinout Dx\n\n&pinctrl {\n    spi0_default: spi0_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n        };\n    };\n    spi0_sleep: spi0_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n            low-power-enable;\n        };\n    };\n};\n\nnice_view_spi: &spi0 {\n    compatible = \"nordic,nrf-spim\";\n    pinctrl-0 = <&spi0_default>;\n    pinctrl-1 = <&spi0_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n    cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>;  // Pin D6 as CS\n};\n\n&xiao_i2c {\n    status = \"disabled\";\n};\n// ################# niceview working fine END #################\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/sofle/sofle_left.conf",
    "content": "# Copyright (c) 2020 Ryan Cross\n# SPDX-License-Identifier: MIT\n"
  },
  {
    "path": "boards/shields/sofle/sofle_left.overlay",
    "content": "/*\n * Copyright (c) 2020 Ryan Cross\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"sofle.dtsi\"\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 16 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 10 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n&left_encoder {\n    status = \"okay\";\n};\n"
  },
  {
    "path": "boards/shields/sofle/sofle_left_peripheral.conf",
    "content": ""
  },
  {
    "path": "boards/shields/sofle/sofle_left_peripheral.overlay",
    "content": "/*\n * Copyright (c) 2020 Ryan Cross\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"sofle.dtsi\"\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 16 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 10 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n&left_encoder {\n    status = \"okay\";\n};\n"
  },
  {
    "path": "boards/shields/sofle/sofle_right.conf",
    "content": "# Copyright (c) 2020 Ryan Cross\n# SPDX-License-Identifier: MIT\n"
  },
  {
    "path": "boards/shields/sofle/sofle_right.overlay",
    "content": "/*\n * Copyright (c) 2020 Ryan Cross\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"sofle.dtsi\"\n\n&default_transform {\n    col-offset = <6>;\n};\n\n&kscan0 {\n    col-gpios\n        = <&pro_micro 10 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 16 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 14 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 15 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 18 GPIO_ACTIVE_HIGH>\n        , <&pro_micro 19 GPIO_ACTIVE_HIGH>\n        ;\n};\n\n&right_encoder {\n    status = \"okay\";\n};\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/Kconfig.defconfig",
    "content": "# Copyright (c) 2023 The ZMK Contributors\n# SPDX-License-Identifier: MIT\n\nif SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO\n\nconfig ZMK_KEYBOARD_NAME\n    default \"Aurora Sofle\"\n\nconfig ZMK_SPLIT_ROLE_CENTRAL\n    default y\n\nendif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT\n\nif SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT || SHIELD_SPLITKB_AURORA_SOFLE_LEFT_PERIPHERAL || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO\n\nconfig ZMK_SPLIT\n    default y\n\nconfig ZMK_RGB_UNDERGLOW\n    select WS2812_STRIP\n    select SPI\n\nif ZMK_DISPLAY\n\nconfig SSD1306\n    default y\n\nconfig I2C\n    default y\n\nif SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO\n\nchoice ZMK_DISPLAY_WORK_QUEUE\n    default ZMK_DISPLAY_WORK_QUEUE_DEDICATED\nendchoice\n\nendif\n\nendif # ZMK_DISPLAY\n\nif LVGL\n\nconfig LV_Z_VDB_SIZE\n    default 64\n\nconfig LV_DPI_DEF\n    default 148\n\nconfig LV_Z_BITS_PER_PIXEL\n    default 1\n\nchoice LV_COLOR_DEPTH\n    default LV_COLOR_DEPTH_1\nendchoice\n\nendif # LVGL\n\nendif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/Kconfig.shield",
    "content": "# Copyright (c) 2023 The ZMK Contributors\n# SPDX-License-Identifier: MIT\n\nconfig SHIELD_SPLITKB_AURORA_SOFLE_LEFT\n    def_bool $(shields_list_contains,splitkb_aurora_sofle_left)\n\nconfig SHIELD_SPLITKB_AURORA_SOFLE_RIGHT\n    def_bool $(shields_list_contains,splitkb_aurora_sofle_right)\n\nconfig SHIELD_SPLITKB_AURORA_SOFLE_LEFT_PERIPHERAL\n    def_bool $(shields_list_contains,splitkb_aurora_sofle_left_peripheral)\n\nconfig SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO\n    def_bool $(shields_list_contains,splitkb_aurora_sofle_dongle_xiao)\n\nconfig SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO\n    def_bool $(shields_list_contains,splitkb_aurora_sofle_dongle_pro_micro)\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <6>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/boards/nice_nano_v2.overlay",
    "content": "#include <dt-bindings/led/led.h>\n\n&pinctrl {\n    spi3_default: spi3_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n        };\n    };\n\n    spi3_sleep: spi3_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;\n            low-power-enable;\n        };\n    };\n};\n\n&spi3 {\n    compatible = \"nordic,nrf-spim\";\n    status = \"okay\";\n\n    pinctrl-0 = <&spi3_default>;\n    pinctrl-1 = <&spi3_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n\n    led_strip: ws2812@0 {\n        compatible = \"worldsemi,ws2812-spi\";\n\n        /* SPI */\n        reg = <0>; /* ignored, but necessary for SPI bindings */\n        spi-max-frequency = <4000000>;\n\n        /* WS2812 */\n        chain-length = <6>; /* arbitrary; change at will */\n        spi-one-frame = <0x70>;\n        spi-zero-frame = <0x40>;\n        color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;\n    };\n};\n\n/ {\n    chosen {\n        zmk,underglow = &led_strip;\n    };\n};\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.conf",
    "content": "# Uncomment these two line to add support for encoders to your firmware\n# CONFIG_EC11=y\n# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y\n\n# Uncomment the following line to enable the OLED Display\n# CONFIG_ZMK_DISPLAY=y\n\n# Uncomment the following lines to enable RGB underglow\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.dtsi",
    "content": "/*\n * Copyright (c) 2023 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n\n#include <layouts/josefadamcik/sofle.dtsi>\n\n&josefadamcik_sofle_layout {\n    transform = <&default_transform>;\n};\n\n/ {\n\n    chosen {\n        zephyr,display = &oled;\n        zmk,physical-layout = &josefadamcik_sofle_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <14>;\n        rows = <5>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//               | SW30 | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 | SW30 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8)  RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8)  RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8)  RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8)  RC(3,9) RC(3,10) RC(3,11)\n                RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)\n        >;\n    };\n\n    left_encoder: left_encoder {\n        compatible = \"alps,ec11\";\n        steps = <144>;\n        status = \"disabled\";\n\n        a-gpios = <&pro_micro 16 GPIO_PULL_UP>;\n        b-gpios = <&pro_micro 10 GPIO_PULL_UP>;\n    };\n\n    right_encoder: right_encoder {\n        compatible = \"alps,ec11\";\n        steps = <144>;\n        status = \"disabled\";\n\n        a-gpios = <&pro_micro 16 GPIO_PULL_UP>;\n        b-gpios = <&pro_micro 10 GPIO_PULL_UP>;\n    };\n\n    sensors: sensors {\n        compatible = \"zmk,keymap-sensors\";\n        sensors = <&left_encoder &right_encoder>;\n        triggers-per-rotation = <36>;\n    };\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.keymap",
    "content": "/*\n * Copyright (c) 2023 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/ext_power.h>\n\n/* Uncomment this block if using RGB\n&led_strip {\n    chain-length = <6>;\n    // chain-length = <35>; // Uncomment if using both per-key and underglow LEDs\n    // chain-length = <29>; // Uncomment if using only per-key LEDs.\n};\n */\n\n/ {\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n// ------------------------------------------------------------------------------------------------------------\n// |  ESC  |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |   `   |\n// |  TAB  |  Q  |  W  |  E   |  R   |  T   |                   |  Y   |  U    |  I    |  O   |   P   |   -   |\n// |  CTRL |  A  |  S  |  D   |  F   |  G   |                   |  H   |  J    |  K    |  L   |   ;   |   '   |\n// | SHIFT |  Z  |  X  |  C   |  V   |  B   |   \"[\"  |  |  \"]\"  |  N   |  M    |  ,    |  .   |   /   | SHIFT |\n//               |CTRL | ALT  | GUI  | LOWER|  SPACE |  | ENTER | RAISE| BSPC  | GUI   | RALT |\n            bindings = <\n&kp ESC   &kp N1 &kp N2    &kp N3   &kp N4   &kp N5                     &kp N6 &kp N7   &kp N8    &kp N9   &kp N0   &kp GRAVE\n&kp TAB   &kp Q  &kp W     &kp E    &kp R    &kp T                      &kp Y  &kp U    &kp I     &kp O    &kp P    &kp MINUS\n&kp LCTRL &kp A  &kp S     &kp D    &kp F    &kp G                      &kp H  &kp J    &kp K     &kp L    &kp SEMI &kp SQT\n&kp LSHFT &kp Z  &kp X     &kp C    &kp V    &kp B  &kp LBKT   &kp RBKT &kp N  &kp M    &kp COMMA &kp DOT  &kp FSLH &kp RSHFT\n                 &kp LCTRL &kp LALT &kp LGUI &mo 1  &kp SPACE  &kp RET  &mo 2  &kp BSPC &kp RGUI  &kp RALT\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        lower_layer {\n// ------------------------------------------------------------------------------------------------------------\n// | BTCLR | BT1 | BT2 |  BT3 |  BT4 |  BT5 |                   |      |       |       |      |       |       |\n// |  F1   |  F2 |  F3 |  F4  |  F5  |  F6  |                   |  F7  |  F8   |  F9   |  F10 |  F11  |  F12  |\n// |   `   |  !  |  @  |  #   |  $   |  %   |                   |  ^   |  &    |  *    |  (   |   )   |   ~   |\n// |       |     |     |      |      |      |        |  |       |      |  _    |  +    |  {   |   }   |  \"|\"  |\n//               |     |      |      |      |        |  |       |      |       |       |      |\n            bindings = <\n&bt BT_CLR &bt BT_SEL 0     &bt BT_SEL 1      &bt BT_SEL 2      &bt BT_SEL 3 &bt BT_SEL 4                 &trans    &trans    &trans    &trans    &trans    &trans\n&kp F1     &kp F2           &kp F3            &kp F4            &kp F5       &kp F6                       &kp F7    &kp F8    &kp F9    &kp F10   &kp F11   &kp F12\n&kp GRAVE  &kp EXCL         &kp AT            &kp HASH          &kp DOLLAR   &kp PRCNT                    &kp CARET &kp AMPS  &kp STAR  &kp LPAR  &kp RPAR  &kp TILDE\n&trans     &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans       &trans    &trans   &trans    &trans    &kp MINUS &kp PLUS  &kp LBRC  &kp RBRC  &kp PIPE\n                            &trans            &trans            &trans       &trans    &trans   &trans    &trans    &trans    &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        raise_layer {\n// ------------------------------------------------------------------------------------------------------------\n// |       |     |     |      |      |      |                   |      |       |       |      |       |       |\n// |   `   |  1  |  2  |  3   |  4   |  5   |                   |  6   |   7   |   8   |  9   |   0   |       |\n// |   F1  |  F2 |  F3 |  F4  |  F5  |  F6  |                   |      |   <-  |   v   |  ^   |  ->   |       |\n// |   F7  |  F8 |  F9 |  F10 |  F11 |  F12 |        |  |       |  +   |   -   |   =   |  [   |   ]   |   \\   |\n//               |     |      |      |      |        |  |       |      |       |       |      |\n            bindings = <\n&trans    &trans &trans &trans  &trans  &trans                       &trans      &trans    &trans    &trans   &trans    &trans\n&kp GRAVE &kp N1 &kp N2 &kp N3  &kp N4  &kp N5                       &kp N6      &kp N7    &kp N8    &kp N9   &kp N0    &trans\n&kp F1    &kp F2 &kp F3 &kp F4  &kp F5  &kp F6                       &trans      &kp LEFT  &kp DOWN  &kp UP   &kp RIGHT &trans\n&kp F7    &kp F8 &kp F9 &kp F10 &kp F11 &kp F12   &trans   &trans    &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT  &kp BSLH\n                 &trans &trans  &trans  &trans    &trans   &trans    &trans      &trans    &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n    };\n};\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.zmk.yml",
    "content": "file_format: \"1\"\nid: splitkb_aurora_sofle\nname: splitkb.com Aurora Sofle\ntype: shield\nurl: https://splitkb.com/products/aurora-sofle-pcb-kit\nrequires: [pro_micro]\nexposes: [i2c_oled]\nfeatures:\n  - keys\n  - display\n  - encoder\n  - underglow\n  - studio\nsiblings:\n  - splitkb_aurora_sofle_left\n  - splitkb_aurora_sofle_right\n  - splitkb_aurora_sofle_left_peripheral\n  - splitkb_aurora_sofle_dongle_xiao\n  - splitkb_aurora_sofle_dongle_pro_micro\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (pro_micro):\n# - nice_nano (no  probado)\n# - nice_nano_v2 (probado)\n# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado)\n# - nrfmicro_11 (no probado)\n# - nrfmicro_11_flipped (no probado)\n# - nrfmicro_13 (no probado)\n# - puchi_ble_v1 (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n#include <layouts/josefadamcik/sofle.dtsi>\n\n&josefadamcik_sofle_layout {\n    transform = <&default_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &josefadamcik_sofle_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <14>;\n        rows = <5>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//               | SW30 | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 | SW30 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8)  RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8)  RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8)  RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8)  RC(3,9) RC(3,10) RC(3,11)\n                RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)\n        >;\n    };\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n\n    left_encoder: left_encoder {\n        compatible = \"alps,ec11\";\n        steps = <144>;\n        status = \"disabled\";\n\n        a-gpios = <&pro_micro 16 GPIO_PULL_UP>;\n        b-gpios = <&pro_micro 10 GPIO_PULL_UP>;\n    };\n\n    right_encoder: right_encoder {\n        compatible = \"alps,ec11\";\n        steps = <144>;\n        status = \"disabled\";\n\n        a-gpios = <&pro_micro 16 GPIO_PULL_UP>;\n        b-gpios = <&pro_micro 10 GPIO_PULL_UP>;\n    };\n\n    sensors: sensors {\n        compatible = \"zmk,keymap-sensors\";\n        sensors = <&left_encoder &right_encoder>;\n        triggers-per-rotation = <36>;\n    };\n};\n\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&pro_micro_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n// 128x64 OLED model sh1106\n\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&pro_micro_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.conf",
    "content": "# MC:\n# compatible con todas las versiones de nrf52840 (xiao):\n# - seeeduino_xiao_ble (probado)\n\n### DONGLE MODE\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2\n\n### DONGLE OPTIONS\n# 3 profiles (n+2)\nCONFIG_BT_MAX_CONN=5\nCONFIG_BT_MAX_PAIRED=5\n\n### DISPLAY DONGLE OPTIONS\nCONFIG_ZMK_DISPLAY=y\nCONFIG_BT_BAS=n\nCONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y\n\n### POWER OPTIONS\n# La unidad del intervalo del informe de energía de la batería es segundos\nCONFIG_ZMK_BATTERY_REPORT_INTERVAL=60\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.overlay",
    "content": "/*\n * Copyright (c) 2020 Pete Johanson\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <dt-bindings/zmk/matrix_transform.h>\n#include <layouts/josefadamcik/sofle.dtsi>\n\n&josefadamcik_sofle_layout {\n    transform = <&default_transform>;\n};\n\n/ {\n    chosen {\n        zephyr,display = &oled;\n        zmk,kscan = &mock_kscan;\n        zmk,physical-layout = &josefadamcik_sofle_layout;\n    };\n\n    default_transform: keymap_transform_0 {\n        compatible = \"zmk,matrix-transform\";\n        columns = <14>;\n        rows = <5>;\n// | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |                 | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |\n// | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |                 | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |\n// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |                 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |\n// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 |   | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |\n//               | SW30 | SW29 | SW28 | SW27 | SW26 |   | SW26 | SW27 | SW28 | SW29 | SW30 |\n        map = <\nRC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                 RC(0,6) RC(0,7) RC(0,8)  RC(0,9) RC(0,10) RC(0,11)\nRC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                 RC(1,6) RC(1,7) RC(1,8)  RC(1,9) RC(1,10) RC(1,11)\nRC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                 RC(2,6) RC(2,7) RC(2,8)  RC(2,9) RC(2,10) RC(2,11)\nRC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8)  RC(3,9) RC(3,10) RC(3,11)\n                RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)\n        >;\n    };\n\n    mock_kscan: kscan_0 {\n        compatible = \"zmk,kscan-mock\";\n        // wakeup-source;\n        columns = <0>;\n        rows = <0>;\n        events = <0>;\n    };\n\n    /*\n    row-gpios\n        = <&xiao_d 0 GPIO_ACTIVE_HIGH>\n        , <&xiao_d 1 GPIO_ACTIVE_HIGH>\n        , <&xiao_d 2 GPIO_ACTIVE_HIGH>\n        , <&xiao_d 3 GPIO_ACTIVE_HIGH>\n        ;\n    };\n    */\n\n    left_encoder: encoder_left {\n    compatible = \"alps,ec11\";\n    a-gpios = <&xiao_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    b-gpios = <&xiao_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    steps = <80>;\n    status = \"disabled\";\n    };\n\n    right_encoder: encoder_right {\n    compatible = \"alps,ec11\";\n    a-gpios = <&xiao_d 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    b-gpios = <&xiao_d 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;\n    steps = <80>;\n    status = \"disabled\";\n\n    };\n\n    sensors {\n    \tcompatible = \"zmk,keymap-sensors\";\n    \tsensors = <&left_encoder &right_encoder>;\n        triggers-per-rotation = <20>;\n    };\n};\n\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n/*\n// 128x64 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <64>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n// 128x32 OLED\n&xiao_i2c {\n    status = \"okay\";\n\n    oled: ssd1306@3c {\n        compatible = \"solomon,ssd1306fb\";\n        reg = <0x3c>;\n        width = <128>;\n        height = <32>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <31>;\n        segment-remap;\n        com-invdir;\n        com-sequential;\n        inversion-on;\n        prechargep = <0x22>;\n    };\n};\n\n\n// 128x64 OLED model sh1106\n\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <129>;\n        height = <64>;\n        segment-offset = <1>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <63>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// 128x128 OLED model sh1107\n&xiao_i2c {\n    status = \"okay\";\n    oled: sh1106@3c {\n        compatible = \"sinowealth,sh1106\";\n        reg = <0x3c>;\n        width = <120>;\n        height = <128>;\n        segment-offset = <0>;\n        page-offset = <0>;\n        display-offset = <0>;\n        multiplex-ratio = <119>;\n        segment-remap;\n        com-invdir;\n        inversion-on;\n        prechargep = <0x22>;\n        };\n};\n\n// ################# niceview working fine START #################\n// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/\n// @bravekarma nice Discord server\n// The &gpioX Y  and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF\n// pin numbers), &xiao_d x uses the unified pinout Dx\n\n&pinctrl {\n    spi0_default: spi0_default {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n        };\n    };\n    spi0_sleep: spi0_sleep {\n        group1 {\n            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,\n                    <NRF_PSEL(SPIM_MOSI, 1, 15)>,\n                    <NRF_PSEL(SPIM_MISO, 1, 14)>;\n            low-power-enable;\n        };\n    };\n};\n\nnice_view_spi: &spi0 {\n    compatible = \"nordic,nrf-spim\";\n    pinctrl-0 = <&spi0_default>;\n    pinctrl-1 = <&spi0_sleep>;\n    pinctrl-names = \"default\", \"sleep\";\n    cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>;  // Pin D6 as CS\n};\n\n&xiao_i2c {\n    status = \"disabled\";\n};\n// ################# niceview working fine END #################\n*/\n// vim: filetype=dts fdm=marker:\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left.overlay",
    "content": "/*\n * Copyright (c) 2023 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"splitkb_aurora_sofle.dtsi\"\n\n/ {\n    chosen {\n        zmk,kscan = &kscan;\n    };\n\n    kscan: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n\n        row-gpios\n            = <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            ;\n\n        col-gpios\n            = <&pro_micro 9 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 8 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 7 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 6 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 5 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 4 GPIO_ACTIVE_HIGH>\n            ;\n    };\n};\n\n&left_encoder {\n    status = \"okay\";\n};\n\n\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.conf",
    "content": ""
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.overlay",
    "content": "/*\n * Copyright (c) 2023 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"splitkb_aurora_sofle.dtsi\"\n\n/ {\n    chosen {\n        zmk,kscan = &kscan;\n    };\n\n    kscan: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n\n        row-gpios\n            = <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            ;\n\n        col-gpios\n            = <&pro_micro 9 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 8 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 7 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 6 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 5 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 4 GPIO_ACTIVE_HIGH>\n            ;\n    };\n};\n\n&left_encoder {\n    status = \"okay\";\n};\n"
  },
  {
    "path": "boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_right.overlay",
    "content": "/*\n * Copyright (c) 2023 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include \"splitkb_aurora_sofle.dtsi\"\n\n/ {\n    chosen {\n        zmk,kscan = &kscan;\n    };\n\n    kscan: kscan {\n        compatible = \"zmk,kscan-gpio-matrix\";\n        wakeup-source;\n\n        diode-direction = \"col2row\";\n\n        row-gpios\n            = <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            , <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>\n            ;\n\n        col-gpios\n            = <&pro_micro 6 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 7 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 8 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 9 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 4 GPIO_ACTIVE_HIGH>\n            , <&pro_micro 5 GPIO_ACTIVE_HIGH>\n            ;\n    };\n};\n\n&right_encoder {\n    status = \"okay\";\n};\n\n&default_transform {\n    col-offset = <6>;\n};\n"
  },
  {
    "path": "build.yaml",
    "content": "# ========================================\n# FileName: build.yaml\n# Date: 07.06.2023\n# Author: Marcos Chow Castro\n# Email: mctechnology170318@gmail.com\n# GitHub: https://github.com/mctechnology17\n# Brief: configuration file for ZMK firmware\n# Board: nice_nano_v2 and puchi_ble_v1\n# shield: corne_left nice_view_adapter nice_view,\n#         corne_right nice_view_adapter nice_view,\n#         corne_left, corne_right and settings_reset\n# =========================================\n#                              ╔═╦═╦═╗\n#                       ╔════╗ ║║║║║╔╝\n#                       ║╔╗╔╗║ ║║║║║╚╗\n#                       ╚╝║║╚╝ ║╠═╩╩═╝\n#                         ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n#                         ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n#                         ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n#                                         ╚═╩═╝\n# This file generates the GitHub Actions matrix\n# For simple board + shield combinations, add them\n# to the top level board and shield arrays, for more\n# control, add individual board + shield combinations to\n# the `include` property, e.g:\n#\n# board: [ \"nice_nano_v2\" ]\n# shield: [ \"corne_left\", \"corne_right\" ]\n# include:\n#   - board: bdn9_rev2\n#   - board: nice_nano_v2\n#     shield: reviung41\n#\n# Split Keyboard Halves Unable to Pair\n#     https://zmk.dev/docs/troubleshooting\n#   - board: nice_nano_v2\n#     shield: settings_reset\n# Reset Split Keyboard Procedure\n# Perform the following steps to reset both halves of your split keyboard:\n# - Put each half of the split keyboard into bootloader mode.\n# - Flash one of the halves of the split with the downloaded settings reset UF2\n# image. Immediately after flashing the chosen half, put it into bootloader\n# mode to avoid accidental bonding between the halves.\n# - Repeat step 2 with the other half of the split keyboard.\n# - Flash the actual image for each half of the split keyboard (e.g\n# my_board_left.uf2 to the left half, my_board_right.uf2 to the right half).\n#\n# After completing these steps, pair the halves of the split keyboard\n# together by resetting them at the same time. Most commonly, this is done by\n# grounding the reset pins for each of your keyboard's microcontrollers or\n# pressing the reset buttons at the same time.\n#\n# cmake-args: -DKEYMAP_FILE=../../config/other-corne.keymap -DCONFIG_ZMK_KEYBOARD_NAME=\\\"other-corne\\\" -DEXTRA_CONF_FILE=../../config/other-corne.conf\n---\ninclude:\n\n  ### CORNE START ###\n    ### nice_view START ###\n    # nice_nano_v2 + nice_epaper\n  - board: nice_nano_v2\n    shield: corne_left nice_view_adapter nice_epaper\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Nice_Corne_View\\\"\n    artifact-name: nice_corne_left_view\n    snippet: studio-rpc-usb-uart\n  - board: nice_nano_v2\n    shield: corne_right nice_view_adapter nice_epaper\n    artifact-name: nice_corne_right_view\n\n    # puchi_ble_v1 + nice_epaper\n  - board: puchi_ble_v1\n    shield: corne_left nice_view_adapter nice_epaper\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Puchi_Corne_V\\\"\n    artifact-name: puchi_corne_left_view\n    snippet: studio-rpc-usb-uart\n  - board: puchi_ble_v1\n    shield: corne_right nice_view_adapter nice_view\n    artifact-name: puchi_corne_right_view\n\n    # peripheral_left + nice_nano_v2 + nice_epaper\n  - board: nice_nano_v2\n    shield: corne_left_peripheral nice_view_adapter nice_epaper\n    artifact-name: nice_corne_left_peripheral_view\n\n    # peripheral_left + puchi_ble_v1 + nice_epaper\n  - board: puchi_ble_v1\n    shield: corne_left_peripheral nice_view_adapter nice_epaper\n    artifact-name: puchi_corne_left_peripheral_view\n    ### nice_view END ###\n\n    ### nice_oled START ###\n    # nice_nano_v2 + nice_oled\n  - board: nice_nano_v2\n    shield: corne_left nice_oled\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Nice_Corne_Oled\\\"\n    artifact-name: nice_corne_left_oled\n    snippet: studio-rpc-usb-uart\n  - board: nice_nano_v2\n    shield: corne_right nice_oled\n    artifact-name: nice_corne_right_oled\n\n    # puchi_ble_v1 + nice_oled\n  - board: puchi_ble_v1\n    shield: corne_left nice_oled\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Puchi_Corne_O\\\"\n    artifact-name: puchi_corne_left_oled\n    snippet: studio-rpc-usb-uart\n  - board: puchi_ble_v1\n    shield: corne_right nice_oled\n    artifact-name: puchi_corne_right_oled\n\n    # peripheral_left + nice_nano_v2 + nice_oled\n  - board: nice_nano_v2\n    shield: corne_left_peripheral nice_oled\n    artifact-name: nice_corne_left_peripheral_oled\n\n    # peripheral_left + puchi_ble_v1 + nice_oled\n  - board: puchi_ble_v1\n    shield: corne_left_peripheral nice_oled\n    artifact-name: puchi_corne_left_peripheral_oled\n    ### nice_oled END ###\n\n    ### Xiao_Dongle START ###\n  - board: seeeduino_xiao_ble\n    shield: corne_dongle_xiao\n    #  -DCONFIG_ZMK_USB=y  -DCONFIG_ZMK_BLE=y\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Xiao_Dongle\\\" -DCONFIG_ZMK_STUDIO=y\n    artifact-name: xiao_corne_dongle\n    snippet: studio-rpc-usb-uart\n  - board: seeeduino_xiao_ble\n    shield: corne_dongle_xiao dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Xiao_Dongle_O\\\"\n    artifact-name: xiao_corne_dongle_oled\n    snippet: studio-rpc-usb-uart\n    # snippet: zmk-usb-logging\n    ### Xiao_Dongle END ###\n\n    ### ProMicro_Dongle START ###\n    # nice_nano_v2 dongle\n  - board: nice_nano_v2\n    shield: corne_dongle_pro_micro\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Nice_Dongle\\\"\n    artifact-name: nice_corne_dongle_pro_micro\n    snippet: studio-rpc-usb-uart\n    # snippet: zmk-usb-logging\n  - board: nice_nano_v2\n    shield: corne_dongle_pro_micro dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Nice_Dongle_O\\\"\n    artifact-name: nice_corne_dongle_oled\n    snippet: studio-rpc-usb-uart\n    # snippet: zmk-usb-logging\n  - board: puchi_ble_v1\n    shield: corne_dongle_pro_micro\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Puchi_Dongle\\\"\n    artifact-name: puchi_corne_dongle\n    snippet: studio-rpc-usb-uart\n    # snippet: zmk-usb-logging\n  - board: puchi_ble_v1\n    shield: corne_dongle_pro_micro nice_view_adapter nice_epaper\n    #  -DCONFIG_ZMK_USB=y  -DCONFIG_ZMK_BLE=y\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Puchi_Dongle_V\\\"  -DCONFIG_ZMK_STUDIO=y\n    snippet: studio-rpc-usb-uart\n    artifact-name: puchi_corne_dongle_view\n    # snippet: zmk-usb-logging\n    ### Pro Micro END ###\n\n    ### ProMicro_Dongle START ###\n    # NICE x PUCHI and nice_oled + rgb\n  - board: nice_nano_v2\n    shield: corne_left nice_oled\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Corne_Oled_RGB\\\"\n    artifact-name: nice_corne_left_oled_rgb\n    snippet: rgb-config studio-rpc-usb-uart\n  - board: puchi_ble_v1\n    shield: corne_right nice_oled\n    snippet: rgb-config\n    artifact-name: puchi_corne_right_oled_rgb\n    ### Pro Micro END ###\n  ### CORNE END ###\n\n  ### SOFLEV2 SOFLEV1 SOFLEPLUS START ###\n  # nice!oled sofle\n  - board: nice_nano_v2\n    shield: sofle_left nice_oled\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"Sofle_Oled\\\"  -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_sofle_left_oled\n    snippet: studio-rpc-usb-uart\n  - board: nice_nano_v2\n    shield: sofle_right nice_oled\n    cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_sofle_right_oled\n\n  # peripheral_left\n  - board: nice_nano_v2\n    shield: sofle_left_peripheral nice_oled\n    cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_sofle_left_peripheral_oled\n\n  # Xiao_Dongle\n  - board: seeeduino_xiao_ble\n    shield: sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"SofleDongle_X\\\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: xiao_sofle_dongle_xiao_oled\n    snippet: studio-rpc-usb-uart\n\n  # ProMicro_Dongle\n  - board: nice_nano_v2\n    shield: sofle_dongle_pro_micro dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"SofleDongle_P\\\"  -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_sofle_dongle_oled\n    snippet: studio-rpc-usb-uart\n  ### SOFLEV2 SOFLEV1 SOFLEPLUS END ###\n\n  ### LILY58 START ###\n  # nice!oled lily58\n  - board: nice_nano_v2\n    shield: lily58_left nice_oled\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"lily58_Oled\\\"  -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_lily58_left_oled\n    snippet: studio-rpc-usb-uart\n  - board: nice_nano_v2\n    shield: lily58_right nice_oled\n    cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_lily58_right_oled\n\n  # peripheral_left\n  - board: nice_nano_v2\n    shield: lily58_left_peripheral nice_oled\n    cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_lily58_left_peripheral_oled\n\n  # Xiao_Dongle\n  - board: seeeduino_xiao_ble\n    shield: lily58_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"lily58Dongle_X\\\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: xiao_lily58_dongle_xiao_oled\n    snippet: studio-rpc-usb-uart\n\n  # ProMicro_Dongle\n  - board: nice_nano_v2\n    shield: lily58_dongle_pro_micro dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"lily58Dongle_P\\\"  -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_lily58_dongle_oled\n    snippet: studio-rpc-usb-uart\n  ### LILY58 END ###\n\n  ### SPLITKB AURORA SOFLE START ###\n  # nice!oled splitkb_aurora_sofle\n  - board: nice_nano_v2\n    shield: splitkb_aurora_sofle_left nice_oled\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"A_Sofle_Oled\\\"  -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_splitkb_aurora_sofle_left_oled\n    snippet: studio-rpc-usb-uart\n  - board: nice_nano_v2\n    shield: splitkb_aurora_sofle_right nice_oled\n    cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_splitkb_aurora_sofle_right_oled\n\n  # peripheral_left\n  - board: nice_nano_v2\n    shield: splitkb_aurora_sofle_left_peripheral nice_oled\n    cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_splitkb_aurora_sofle_left_peripheral_oled\n\n  # Xiao_Dongle\n  - board: seeeduino_xiao_ble\n    shield: splitkb_aurora_sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"A_SofleDongle_X\\\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: xiao_splitkb_aurora_sofle_dongle_xiao_oled\n    snippet: studio-rpc-usb-uart\n\n  # ProMicro_Dongle\n  - board: nice_nano_v2\n    shield: splitkb_aurora_sofle_dongle_pro_micro dongle_display\n    cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\\\"A_SofleDongle_P\\\"  -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000\n    artifact-name: nice_splitkb_aurora_sofle_dongle_oled\n    snippet: studio-rpc-usb-uart\n  ### SPLITKB AURORA SOFLE END ###\n\n  ### SETTINGS_RESET START ###\n  - board: nice_nano_v2\n    shield: settings_reset\n    artifact-name: nice_settings_reset\n  - board: seeeduino_xiao_ble\n    shield: settings_reset\n    artifact-name: xiao_settings_reset\n  - board: puchi_ble_v1\n    shield: settings_reset\n    artifact-name: puchi_settings_reset\n  ### SETTINGS_RESET END ###\n"
  },
  {
    "path": "config/config_keymap-drawer.yaml",
    "content": "# configuration for https://github.com/caksoylar/keymap-drawer\ndraw_config:\n  footer_text: 'Keymap View: <a href=\"https://github.com/caksoylar/keymap-drawer\">keymap-drawer</a>'\n  # dark_mode: auto\n  n_columns: 1\n  # draw_key_sides: true # draw a square in the middle of the keys\n  key_w: 60.0\n  key_h: 56.0\n  split_gap: 30.0\n  combo_w: 28.0\n  combo_h: 26.0\n  key_rx: 6.0\n  key_ry: 6.0\n  inner_pad_w: 2.0\n  inner_pad_h: 2.0\n  outer_pad_w: 40.0\n  outer_pad_h: 56.0\n  line_spacing: 1.2\n  arc_radius: 6.0\n  append_colon_to_layer_header: true\n  small_pad: 2.0\n  svg_extra_style: |\n    /* For default sytles, see https://github.com/caksoylar/keymap-drawer/blob/main/keymap_drawer/config.py#L85 */\n\n    svg.keymap {\n      font-family: Ubuntu Mono, Inconsolata, Consolas, Liberation Mono, Menlo, monospace;\n      font-size: 16px;\n      font-weight: bold;\n      text-rendering: optimizeLegibility;\n    }\n\n    /* Color accent for held keys\n    red = #f00\n    green = #0f0\n    blue = #00f\n    yellow = #ff0\n    cyan = #0ff\n    magenta = #f0f\n    white = #fff\n    black = #000\n    grey = #888\n    light grey = #ccc\n    #ffc\n    */\n    rect.held, rect.combo.held {\n        fill: #f00;\n    }\n\n    /* Technique borrowed and extended from https://github.com/englmaxi/zmk-config/blob/master/keymap-drawer/config.yaml */\n    .sym_sub_text.tap {\n      translate: -5px 2px;\n      font-size: 20px;\n    }\n    .sym_sub_text.shifted {\n      translate: 10px 13px;\n      font-size: 10px;\n      opacity: 1.0;\n    }\n    .combo.sym_sub_text.tap {\n      translate: -1px 1px;\n    }\n    .combo.sym_sub_text.shifted {\n      translate: 7px 5px;\n      font-size: 10px;\n      opacity: 1.0;\n    }\n\n    /* Toggle */\n    .toggle.shifted {\n      translate: -10px 12px;\n    }\n\n    .toggle.hold {\n      translate: 13px -23px;\n    }\n\n    /* Variant for tap-dances */\n    .tap_dance.tap {\n      translate: -7px 0px;\n      font-size: 12px;\n    }\n    .tap_dance.shifted {\n      translate: 7px 17px;\n      font-size: 12px;\n      opacity: 1.0;\n    }\n\n    /* Variant for symbol next to symbol */\n    .sym_by_sym.tap {\n      translate: -6px 0px;\n    }\n    .sym_by_sym.shifted {\n      translate: 10px 12px;\n      opacity: 1.0;\n    }\n\n    .combo.sym_by_sym.tap {\n      translate: -35px 0px;\n    }\n    .combo.sym_by_sym.shifted {\n      translate: 35px 20px;\n      opacity: 1.0;\n    }\n\n    .combo.sym_by_sym.hold {\n      visibility: hidden;\n    }\n\n    /* hide hold box for combo sym_by_sym */\n    .combo.sym_by_sym.hold > path[stroke=\"none\"][fill=\"none\"] {\n      visibility: hidden;\n    }\n\n  shrink_wide_legends: 6\n  glyph_tap_size: 18\n  glyph_hold_size: 15\n  glyph_shifted_size: 15\n  glyphs: {}\n  glyph_urls:\n    tabler: https://unpkg.com/@tabler/icons/icons/outline/{}.svg\n    tablerf: https://unpkg.com/@tabler/icons/icons/filled/{}.svg\n    mdi: https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/master/svg/{}.svg\n    mdil: https://raw.githubusercontent.com/Pictogrammers/MaterialDesignLight/master/svg/{}.svg\n    material: https://fonts.gstatic.com/s/i/short-term/release/materialsymbolsoutlined/{}/default/48px.svg\n  use_local_cache: true\nparse_config:\n  raw_binding_map:\n    '&sys_reset': Reset\n    '&bootloader': Boot\n    '&swapper': Win Next\n    '&caps_word': Caps Word\n    '&inv_qm': ¿\n\n    '&kp LC(LG(LEFT))': Desk Left\n    '&kp LC(LG(RIGHT))': Desk Right\n    '&kp LC(TAB)': Tab Right\n    '&kp LC(LS(TAB))': Tab Left\n    '&kp LA(F4)': Win Close\n    '&kp LC(F4)': Tab Close\n    '&kp LS(TAB)': Win Prev\n    '&kp LS(INS)': Paste\n    '&kp LG(L)': Lock\n\n    '&out OUT_USB': Out USB\n    '&out OUT_BLE': Out BLE\n\n    '&bt BT_SEL 0': BT 1\n    '&bt BT_SEL 1': BT 2\n    '&bt BT_SEL 2': BT 3\n    '&bt BT_SEL 3': BT 4\n    '&bt BT_SEL 4': BT 5\n\n    # Display\n    'DISPLAY_UP': {t: $$mdi:television-classic$$, h: $$mdi:arrow-up$$, type: tap_dance}\n    'DISPLAY_DOWN': {t: $$mdi:television-classic$$, h: $$mdi:arrow-down$$, type: tap_dance}\n    'DISPLAY_LEFT': {t: $$mdi:television-classic$$, h: $$mdi:arrow-left$$, type: tap_dance}\n    'DISPLAY_RIGHT': {t: $$mdi:television-classic$$, h: $$mdi:arrow-right$$, type: tap_dance}\n    'DISPLAY_SPACE': {t: $$mdi:television-classic$$, h: $$mdi:keyboard-space$$, type: tap_dance}\n\n\n    # Rgb\n    '&rgb_ug RGB_TOG': {t: $$mdi:led-on$$, h: $$mdi:toggle-switch$$, s: $$mdi:led-outline$$, type: toggle}\n    '&rgb_ug RGB_VAI': {t: $$mdi:led-on$$, s: $$tabler:brightness-up$$, type: sym_by_sym}\n    '&rgb_ug RGB_VAD': {t: $$mdi:led-outline$$, s: $$tabler:brightness-down$$, type: sym_by_sym}\n    '&rgb_ug RGB_BRD': {t: $$mdi:led-on$$, s: $$tabler:brightness-up$$, type: sym_by_sym}\n    '&rgb_ug RGB_BRI': {t: $$mdi:led-outline$$, s: $$tabler:brightness-down$$, type: sym_by_sym}\n    '&rgb_ug RGB_SAI': {t: $$mdi:led-outline$$, s: $$mdi:eyedropper$$, type: sym_by_sym}\n    '&rgb_ug RGB_SAD': {t: $$mdi:led-on$$, s: $$mdi:eyedropper$$, type: sym_by_sym}\n    '&rgb_ug RGB_HUI': {t: $$mdi:led-on$$, s: $$mdi:palette$$, type: sym_by_sym}\n    '&rgb_ug RGB_HUD': {t: $$mdi:led-outline$$, s: $$mdi:palette$$, type: sym_by_sym}\n    '&rgb_ug RGB_RMOD': {t: $$mdi:led-on$$, h: $$mdi:page-previous-outline$$, type: tap_dance}\n    '&rgb_ug RGB_MOD': {t: $$mdi:led-on$$, h: $$mdi:page-next-outline$$, type: tap_dance}\n    '&rgb_ug RGB_EFF': {t: $$mdi:led-on$$, h: $$mdi:page-previous-outline$$, type: tap_dance}\n    '&rgb_ug RGB_EFR': {t: $$mdi:led-on$$, h: $$mdi:page-next-outline$$, type: tap_dance}\n    '&rgb_ug RGB_SPI': {t: $$mdi:led-on$$, h: $$mdi:speedometer$$, type: sym_by_sym}\n    '&rgb_ug RGB_SPD': {t: $$mdi:led-on$$, h: $$mdi:speedometer-slow$$, type: sym_by_sym}\n    '&rgb_ug RGB_UP': {t: $$mdi:led-on$$, h: $$mdi:arrow-up$$, type: tap_dance}\n    '&rgb_ug RGB_DOWN': {t: $$mdi:led-on$$, h: $$mdi:arrow-down$$, type: tap_dance}\n    '&rgb_ug RGB_LEFT': {t: $$mdi:led-on$$, h: $$mdi:arrow-left$$, type: tap_dance}\n    '&rgb_ug RGB_RIGHT': {t: $$mdi:led-on$$, h: $$mdi:arrow-right$$, type: tap_dance}\n    '&rgb_ug RGB_SPACE': {t: $$mdi:led-on$$, h: $$mdi:keyboard-space$$, type: tap_dance}\n    '&rgb_ug RGB_COLOR_HSB(0,0,100)': {t: $$mdi:led-on$$, h: $$mdi:palette$$, type: tap_dance}\n    '&rgb_ug RGB_COLOR_HSB(224,100,100)': {t: $$mdi:led-on$$, h: $$mdi:palette$$, type: tap_dance}\n\n    # Mouse\n    'U_WH_L': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-left$$, type: tap_dance}\n    'U_WH_R': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-right$$, type: tap_dance}\n    'U_WH_U': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-up$$, type: tap_dance}\n    'U_WH_D': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-down$$, type: tap_dance}\n    'U_MS_L': {t: $$mdi:mouse$$, h: $$mdi:arrow-left$$, type: tap_dance}\n    'U_MS_D': {t: $$mdi:mouse$$, h: $$mdi:arrow-down$$, type: tap_dance}\n    'U_MS_R': {t: $$mdi:mouse$$, h: $$mdi:arrow-right$$, type: tap_dance}\n    'U_MS_U': {t: $$mdi:mouse$$, h: $$mdi:arrow-up$$, type: tap_dance}\n    'CLICK_LEFT': $$mdi:cursor-default-click$$\n    'CLICK_RIGHT': $$mdi:cursor-default-click-outline$$\n    'CLICK_MIDDLE': $$mdi:cursor-default-click-outline$$\n    # '&mmv MOVE_UP': Mouse ↑\n    # '&mmv MOVE_DOWN': Mouse ↓\n    # '&mmv MOVE_LEFT': Mouse ←\n    # '&mmv MOVE_RIGHT': Mouse →\n\n    # '&msc SCRL_UP': Scroll ↑\n    # '&msc SCRL_DOWN': Scroll ↓\n    # '&msc SCRL_LEFT': Scroll ←\n    # '&msc SCRL_RIGHT': Scroll →\n\n    # '&mkp MCLK': Middle Click\n    # '&mkp MB4': Back Click\n    # '&mkp MB5': Forward Click\n\n\n    # layers\n    'MEDIA_ESC': {t: $$mdi:keyboard-esc$$, h: $$mdi:music-note$$}\n    'MOUSE_TAB': {t: $$mdi:keyboard-tab$$, h: $$mdi:mouse$$}\n    'NUMBER_SPACE': {t: $$mdi:keyboard-space$$, h: $$mdi:numeric$$}\n    '&mo _FUNCTION': $$mdi:function-variant$$\n    '&mo _CONFIG': $$mdi:cog$$\n    '&mo _LOCK': $$mdi:lock$$\n    '&mo _SYMBOL': $$mdi:symbol$$\n    '&mo _DISPLAY': $$mdi:television-classic$$\n    '&mo _OLED': $$mdi:television-classic$$\n    '&mo _LINUX': $$mdi:linux$$\n    '&mo _RGB': $$mdi:led-on$$\n    'DE_CAPS': $$mdi:keyboard-caps$$\n    'TAB': $$mdi:keyboard-tab$$\n    '&mt LSHFT COMMA': {t: $$mdi:google-downasaur$$, h: $$mdi:apple-keyboard-shift$$, type: tap_dance}\n\n    # CONTROL CMD/WINDOWS SHIFT ALT/META/OPTION\n    '&kp LSHFT': $$mdi:apple-keyboard-shift$$\n    '&kp LCTRL': $$mdi:apple-keyboard-control$$\n    '&kp RCTRL': $$mdi:apple-keyboard-control$$\n    '&kp LGUI': $$mdi:apple-keyboard-command$$\n    '&kp RGUI': $$mdi:apple-keyboard-command$$\n    '&kp LALT': $$mdi:apple-keyboard-option$$\n    '&kp RALT': $$mdi:apple-keyboard-option$$\n    '&kp RSHFT': $$mdi:apple-keyboard-shift$$\n    '&kp BSPC': $$mdi:backspace-outline$$\n\n  qmk_keycode_map:\n    XXXXXXX: ''\n    'NO': ''\n    MINUS: '-'\n    MINS: '-'\n    EQUAL: '='\n    EQL: '='\n    LEFT_BRACKET: '['\n    LBRC: '['\n    RIGHT_BRACKET: ']'\n    RBRC: ']'\n    BACKSLASH: \\\n    BSLS: \\\n    NONUS_HASH: '#'\n    NUHS: '#'\n    SEMICOLON: ;\n    SCLN: ;\n    QUOTE: ''''\n    QUOT: ''''\n    GRAVE: '`'\n    GRV: '`'\n    COMMA: ','\n    COMM: ','\n    DOT: .\n    SLASH: /\n    SLSH: /\n    TILDE: '~'\n    TILD: '~'\n    EXCLAIM: '!'\n    EXLM: '!'\n    AT: '@'\n    HASH: '#'\n    DOLLAR: $\n    DLR: $\n    PERCENT: '%'\n    PERC: '%'\n    CIRCUMFLEX: ^\n    CIRC: ^\n    AMPERSAND: '&'\n    AMPR: '&'\n    ASTERISK: '*'\n    ASTR: '*'\n    LEFT_PAREN: (\n    LPRN: (\n    RIGHT_PAREN: )\n    RPRN: )\n    UNDERSCORE: _\n    UNDS: _\n    PLUS: +\n    LEFT_CURLY_BRACE: '{'\n    LCBR: '{'\n    RIGHT_CURLY_BRACE: '}'\n    RCBR: '}'\n    PIPE: '|'\n    COLON: ':'\n    COLN: ':'\n    DOUBLE_QUOTE: '\"'\n    DQUO: '\"'\n    DQT: '\"'\n    LEFT_ANGLE_BRACKET: <\n    LABK: <\n    LT: <\n    RIGHT_ANGLE_BRACKET: '>'\n    RABK: '>'\n    GT: '>'\n    QUESTION: '?'\n    QUES: '?'\n\n  zmk_combos:\n    combo_tab:    {align: top, o: 0.15}\n    combo_del:    {align: top, o: 0.15}\n    combo_f12:    {align: bottom}\n    combo_btclr:  {align: bottom}\n    combo_play:   {align: right}\n    combo_capswd: {draw_separate: true}\n    combo_semi:   {draw_separate: true}\n    combo_grave:  {draw_separate: true}\n    combo_lpar:   {draw_separate: true}\n    combo_rpar:   {draw_separate: true}\n    combo_lbkt:   {draw_separate: true}\n    combo_rbkt:   {draw_separate: true}\n    combo_tab:    {draw_separate: true}\n    combo_del:    {draw_separate: true}\n    combo_esc:    {draw_separate: true}\n    combo_ret:    {draw_separate: true}\n    combo_lock:   {draw_separate: true}\n    combo_bslh:   {draw_separate: true}\n    combo_slsh:   {draw_separate: true}\n\n  zmk_keycode_map:\n\n    # custom mappings\n    C_VOL_UP: Vol Up\n    C_VOL_DN: Vol Down\n    C_AL_CALC: Calc\n    # C_PP: Play Pause\n\n    LCTRL: Ctrl\n    RCTRL: Ctrl\n    LALT: Alt\n    RALT: Alt\n    LGUI: Gui\n    RGUI: Gui\n    LSHFT: Shift\n    RSHFT: Shift\n    ESC: Esc\n    SPACE: ␣\n    BSPC: ⌫\n    RET: ⏎\n    TAB: ↹\n    DEL: ⌦\n\n    PG_UP: Page Up\n    PG_DN: Page Down\n    INS: Insert\n    HOME: Home\n    END: End\n    CAPS: Caps Lock\n    PSCRN: Print Scrn\n    PAUSE_BREAK: Pause Break\n\n    UP: ↑\n    DOWN: ↓\n    LEFT: ←\n    RIGHT: →\n\n    C_PP: ⏯\n    C_NEXT: ⏭️\n    C_PREV: ⏮️\n\n    # defaults\n    # AMPERSAND: '&'\n    # AMPS: '&'\n    APOS: \"'\"\n    APOSTROPHE: \"'\"\n    ASTERISK: '*'\n    ASTRK: '*'\n    AT: '@'\n    AT_SIGN: '@'\n    BACKSLASH: \\\n    BSLH: \\\n    CARET: ^\n    COLON: ':'\n    COMMA: ','\n    DLLR: $\n    DOLLAR: $\n    DOT: .\n    DOUBLE_QUOTES: '\"'\n    DQT: '\"'\n    EQUAL: '='\n    EXCL: '!'\n    EXCLAMATION: '!'\n    FSLH: /\n    GRAVE: '`'\n    GREATER_THAN: '>'\n    GT: '>'\n    HASH: '#'\n    LBKT: '['\n    LBRC: '{'\n    LEFT_BRACE: '{'\n    LEFT_BRACKET: '['\n    LEFT_PARENTHESIS: (\n    LESS_THAN: <\n    LPAR: (\n    LT: <\n    MINUS: '-'\n    NON_US_BACKSLASH: \\\n    NON_US_BSLH: '|'\n    NON_US_HASH: '#'\n    NUHS: '#'\n    PERCENT: '%'\n    PERIOD: .\n    PIPE: '|'\n    PIPE2: '|'\n    PLUS: +\n    POUND: '#'\n    PRCNT: '%'\n    QMARK: '?'\n    QUESTION: '?'\n    RBKT: ']'\n    RBRC: '}'\n    RIGHT_BRACE: '}'\n    RIGHT_BRACKET: ']'\n    RIGHT_PARENTHESIS: )\n    RPAR: )\n    SEMI: ;\n    SEMICOLON: ;\n    SINGLE_QUOTE: ''''\n    SLASH: /\n    SQT: ''''\n    STAR: '*'\n    TILDE: '~'\n    TILDE2: '~'\n    UNDER: _\n    UNDERSCORE: _\n"
  },
  {
    "path": "config/corne.conf",
    "content": "# ========================================\n# FileName: corne.conf\n# Date: 07.06.2023\n# Author: Marcos Chow Castro\n# Email: mctechnology170318@gmail.com\n# GitHub: https://github.com/mctechnology17\n# Brief: configuration file for ZMK firmware\n# Board: nice_nano_v2 and puchi_ble_v1\n#                              ╔═╦═╦═╗\n#                       ╔════╗ ║║║║║╔╝\n#                       ║╔╗╔╗║ ║║║║║╚╗\n#                       ╚╝║║╚╝ ║╠═╩╩═╝\n#                         ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n#                         ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n#                         ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n#                                         ╚═╩═╝\n# Copyright (c) 2020 The ZMK Contributors\n# SPDX-License-Identifier: MIT\n# =========================================\n# on config_zmk.h file enable/disable the following options, if you want to\n# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y\n# mouse config, 1 = enable, 0 = disable, default = 1\n# 2 = enable, but with rgb matrix\n# #define MC_TECHNOLOGY_MOUSE_ENABLE 1\n# rgb matrix config, 1 = enable, 0 = disable, default = 0\n# #define MC_TECHNOLOGY_RGB_ENABLE 0\n# define macros on for .dtsi file 1 = enable, 0 = disable default = 1\n# #define MC_TECHNOLOGY_MACROS_ENABLE 1\n\n### Keyboard name\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice Corne View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi Corne View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice Corne Oled\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi Corne Oled\"\n\n### Boost Bluetooth TX power, also make Bluetooth stronger\nCONFIG_BT_CTLR_TX_PWR_PLUS_8=y\nCONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y\n# Tune bluetooth profiles for quick select\n# CONFIG_BT_MAX_CONN=3\n# Uncomment the following line if you facing issue on win 11 connection\n# Enables a combination of settings that are planned to be default in future\n# versions of ZMK to improve connection stability. This includes changes to\n# timing on BLE pairing initiation, restores use of the updated/new LLCP\n# implementation, and disables 2M PHY support.\nCONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y\n\n### POWER OPTIONS\nCONFIG_ZMK_SLEEP=y\nCONFIG_ZMK_EXT_POWER=y\n# 15 min (15*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000\n# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo\n# CONFIG_ZMK_IDLE_TIMEOUT=60000\n# 30 min (30*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000\n# CONFIG_ZMK_IDLE_TIMEOUT=120000\n# Disable external power when not connected to USB\n# CONFIG_ZMK_EXT_POWER_USB_ONLY=y\n\n### MOUSE\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md\n# CONFIG_ZMK_MOUSE=y\n\n### ZMK STUDIO\n# MC: 2. zmk-studio test START\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md\nCONFIG_ZMK_STUDIO=y\nCONFIG_ZMK_STUDIO_LOCKING=n\n# MC: zmk-studio test END\n\n### RGB UNDERGLOW\n# uncomment to enable RGB Underglow or backlight\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n# CONFIG_WS2812_STRIP=y\n# apaga si no se usa el teclado\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n# 0\tSolid color    1 Breathe     2\tSpectrum     3\tSwirl\n# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3\n# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1\n# Turn off RGB underglow when keyboard goes into idle state\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n\n# # Hue step in degrees (0-359) used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30\n\n# # Brightness step in percent used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15\n\n# Uncomment the line below to disable external power toggling by the underglow.\n# By default toggling the underglow on and off also toggles external power\n# on and off. This also causes the display to turn off.\n# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n\n\n### OLED DISPLAY\nCONFIG_ZMK_DISPLAY=y\nCONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y\n# esto creo que ya no es necesario\n# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y\n# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y\n\n### WIDGET SETTINGS\n# No Widget configurations added since nice!view has its own custom widgets\n# activar solo estos dos widgets\n# CONFIG_ZMK_WIDGET_WPM_STATUS=n\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y\n# CONFIG_ZMK_WIDGET_LAYER_STATUS=y\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y\n# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y\n\n### HID para nice!view ePaperDisplay\n# Enable eager debouncing\n# \"Eager Debouncing\"\n# Trying to lower the input lag.\nCONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1\nCONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5\n\n### Improves compatibility with iPad\n# ref: https://zmk.dev/docs/config/system#hid\nCONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "config/corne.keymap",
    "content": "/*\n * Copyright (c) 2020 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/outputs.h>\n#include <dt-bindings/zmk/ext_power.h>\n#include <dt-bindings/led/led.h>\n#include <dt-bindings/zmk/backlight.h>\n#include <dt-bindings/zmk/rgb.h>\n#include <dt-bindings/zmk/reset.h>\n\n&led_strip {\n    chain-length = <27>;\n};\n\n/ {\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n            display-name = \"BAS\";\n            // -----------------------------------------------------------------------------------------\n            // |  TAB |  Q  |  W  |  E  |  R  |  T  |   |  Y  |  U   |  I  |  O  |  P  | BKSP |\n            // | CTRL |  A  |  S  |  D  |  F  |  G  |   |  H  |  J   |  K  |  L  |  ;  |  '   |\n            // | SHFT |  Z  |  X  |  C  |  V  |  B  |   |  N  |  M   |  ,  |  .  |  /  | ESC  |\n            //                    | GUI | LWR | SPC |   | ENT | RSE  | ALT |\n\n            bindings = <\n&kp TAB    &kp Q  &kp W  &kp E     &kp R  &kp T        &kp Y    &kp U  &kp I      &kp O    &kp P     &kp BSPC\n&kp LCTRL  &kp A  &kp S  &kp D     &kp F  &kp G        &kp H    &kp J  &kp K      &kp L    &kp SEMI  &kp SQT\n&kp LSHFT  &kp Z  &kp X  &kp C     &kp V  &kp B        &kp N    &kp M  &kp COMMA  &kp DOT  &kp FSLH  &kp ESC\n                         &kp LGUI  &mo 1  &kp SPACE    &kp RET  &mo 2  &kp RALT\n            >;\n        };\n\n        lower_layer {\n            display-name = \"LOW\";\n            // -----------------------------------------------------------------------------------------\n            // |  TAB |  1  |  2  |  3  |  4  |  5  |   |  6  |  7  |  8  |  9  |  0  | BKSP |\n            // | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 |   | LFT | DWN |  UP | RGT |     |      |\n            // | SHFT |     |     |     |     |     |   |     |     |     |     |     |      |\n            //                    | GUI |     | SPC |   | ENT |     | ALT |\n\n            bindings = <\n&kp TAB     &kp N1        &kp N2        &kp N3        &kp N4        &kp N5          &kp N6    &kp N7    &kp N8    &kp N9     &kp N0  &kp BSPC\n&bt BT_CLR  &bt BT_SEL 0  &bt BT_SEL 1  &bt BT_SEL 2  &bt BT_SEL 3  &bt BT_SEL 4    &kp LEFT  &kp DOWN  &kp UP    &kp RIGHT  &trans  &trans\n&kp LSHFT   &trans        &trans        &trans        &trans        &trans          &trans    &trans    &trans    &trans     &trans  &trans\n                                        &kp LGUI      &trans        &kp SPACE       &kp RET   &trans    &kp RALT\n            >;\n        };\n\n        raise_layer {\n            display-name = \"RAI\";\n            // -----------------------------------------------------------------------------------------\n            // |  TAB |  !  |  @  |  #  |  $  |  %  |   |  ^  |  &  |  *  |  (  |  )  | BKSP |\n            // | CTRL |     |     |     |     |     |   |  -  |  =  |  [  |  ]  |  \\  |  `   |\n            // | SHFT |     |     |     |     |     |   |  _  |  +  |  {  |  }  | \"|\" |  ~   |\n            //                    | GUI |     | SPC |   | ENT |     | ALT |\n\n            bindings = <\n&kp TAB    &kp EXCL  &kp AT  &kp HASH   &kp DLLR  &kp PRCNT    &kp CARET  &kp AMPS   &kp KP_MULTIPLY  &kp LPAR  &kp RPAR  &kp BSPC\n&kp LCTRL  &trans    &trans  &trans  &trans    &trans    &kp MINUS  &kp EQUAL  &kp LBKT         &kp RBKT  &kp BSLH  &kp GRAVE\n&kp LSHFT  &trans    &trans  &trans     &trans    &trans       &kp UNDER  &kp PLUS   &kp LBRC         &kp RBRC  &kp PIPE  &kp TILDE\n                             &kp LGUI   &studio_unlock    &kp SPACE    &kp RET    &studio_unlock     &kp RALT\n            >;\n        };\n        extra_1 {\n            status = \"reserved\";\n        };\n\n        extra_2 {\n            status = \"reserved\";\n        };\n\n        extra_3 {\n            status = \"reserved\";\n        };\n    };\n};\n"
  },
  {
    "path": "config/keymap_german_mac_iso_zmk.h",
    "content": "/* ========================================\nFileName: keymap_german_mac_iso_zmk.h\nDate: 15:17 23.September.2022\nAuthor: Marcos Chow Castro\nEmail: mctechnology170318@gmail.com\nGitHub: https://github.com/mctechnology17\nBrief: define keymap for the wireless corne keyboard\nUse: in your keymap file, include this file\n     #include \"keymap_german_mac_iso_zmk.h\"\n===========================================\nCopyright 2022 Marcos Ivan Chow Castro\nInspired by Stephen Bösebeck\n                           ╔═╦═╦═╗\n                    ╔════╗ ║║║║║╔╝\n                    ║╔╗╔╗║ ║║║║║╚╗\n                    ╚╝║║╚╝ ║╠═╩╩═╝\n                      ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n                      ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n                      ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n                                      ╚═╩═╝\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// #pragma once\n\n#define XXX &none\n#define ___ &trans\n\n// CONTROL CMD/WINDOWS SHIFT ALT/META/OPTION\n#define DE_LCTRL &kp LCTRL // left control\n#define DE_RCTRL &kp RCTRL // right control\n#define DE_LGUI &kp LGUI   // left cmd\n#define DE_RGUI &kp RGUI\n#define DE_LALT &kp LALT\n#define DE_RALT &kp RALT\n#define DE_LSHFT &kp LSHFT\n#define DE_RSHFT &kp RSHFT\n\n// ARROWS\n#define DE_UP &kp UP\n#define DE_LEFT &kp LEFT\n#define DE_DOWN &kp DOWN\n#define DE_RIGHT &kp RIGHT\n\n// SPACE CAPS TAB ENTER BACKSPACE ESCAPE DELETE\n#define DE_SPACE &kp SPACE // Space\n#define DE_CAPS &kp CAPS   // Caps Lock\n#define DE_BSPC &kp BSPC   // Backspace\n#define DE_RET &kp RET     // Enter\n#define DE_TAB &kp TAB     // Tab\n#define DE_DEL &kp DEL     // Delete\n\n// PAGE UP PAGE DOWN HOME END\n#define DE_PG_UP &kp PG_UP\n#define DE_PG_DN &kp PG_DN\n#define DE_HOME &kp HOME\n#define DE_END &kp END\n\n// FUNCTION KEYS\n#define DE_F1 &kp F1\n#define DE_F2 &kp F2\n#define DE_F3 &kp F3\n#define DE_F4 &kp F4\n#define DE_F5 &kp F5\n#define DE_F6 &kp F6\n#define DE_F7 &kp F7\n#define DE_F8 &kp F8\n#define DE_F9 &kp F9\n#define DE_F10 &kp F10\n#define DE_F11 &kp F11\n#define DE_F12 &kp F12\n#define DE_F13 &kp F13\n#define DE_F14 &kp F14\n#define DE_F15 &kp F15\n#define DE_F16 &kp F16\n#define DE_F17 &kp F17\n#define DE_F18 &kp F18\n#define DE_F19 &kp F19\n#define DE_F20 &kp F20\n#define DE_F21 &kp F21\n#define DE_F22 &kp F22\n#define DE_F23 &kp F23\n#define DE_F24 &kp F24\n\n// SOUND / VOLUME\n#define DE_VOL_UP &kp C_VOLUME_UP\n#define DE_VOL_DN &kp C_VOLUME_DOWN\n#define DE_MUTE &kp C_MUTE\n#define DE_NEXT &kp C_NEXT\n#define DE_PREV &kp C_PREVIOUS\n#define DE_STOP &kp C_STOP\n#define DE_PLAY &kp C_PLAY_PAUSE\n#define DE_SHUFFLE &kp C_SHUFFLE\n\n// DISPLAY BRIGHTNESS\n#define DE_BRI_UP &kp C_BRI_UP\n#define DE_BRI_DN &kp C_BRI_DN\n\n// LANGUAGE\n#define DE_LANG1 &kp LANG1\n#define DE_LANG2 &kp LANG2\n#define DE_LANG3 &kp LANG3\n#define DE_LANG4 &kp LANG4\n#define DE_LANG5 &kp LANG5\n#define DE_LANG6 &kp LANG6\n#define DE_LANG7 &kp LANG7\n#define DE_LANG8 &kp LANG8\n#define DE_LANG9 &kp LANG9\n\n// Apple \"Globe\" key\n// https://github.com/zmkfirmware/zmk/issues/947\n// #define GLOBE CAPSLOCK\n\n// clang-format off\n\n/*\n * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐\n * │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ß │ ´ │     │\n * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤\n * │     │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Ü │ + │   │\n * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │\n * │      │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ # │  │\n * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤\n * │    │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │        │\n * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤\n * │     │    │     │                       │     │    │     │\n * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘\n */\n// Row 1\n#define DE_CARET &kp LS(LA(N6)) // ^\n#define DE_CIRC &kp GRAVE // ^ (dead)\n#define DE_1 &kp N1       // 1\n#define DE_2 &kp N2       // 2\n#define DE_3 &kp N3       // 3\n#define DE_4 &kp N4       // 4\n#define DE_5 &kp N5       // 5\n#define DE_6 &kp N6       // 6\n#define DE_7 &kp N7       // 7\n#define DE_8 &kp N8       // 8\n#define DE_9 &kp N9       // 9\n#define DE_0 &kp N0       // 0\n#define DE_SS &kp MINUS   // ß\n#define DE_ACUT &kp EQUAL // ´ (dead)\n// Row 2\n#define DE_Q &kp Q       // Q\n#define DE_W &kp W       // W\n#define DE_E &kp E       // E\n#define DE_R &kp R       // R\n#define DE_T &kp T       // T\n#define DE_Z &kp Y       // Z\n#define DE_U &kp U       // U\n#define DE_I &kp I       // I\n#define DE_O &kp O       // O\n#define DE_P &kp P       // P\n#define DE_UDIA &kp LBKT // Ü\n#define DE_PLUS &kp RBKT // +\n// Row 3\n#define DE_A &kp A            // A\n#define DE_S &kp S            // S\n#define DE_D &kp D            // D\n#define DE_F &kp F            // F\n#define DE_G &kp G            // G\n#define DE_H &kp H            // H\n#define DE_J &kp J            // J\n#define DE_K &kp K            // K\n#define DE_L &kp L            // L\n#define DE_ODIA &kp SEMICOLON // Ö\n#define DE_ADIA &kp APOS      // Ä\n#define DE_HASH &kp BSLH      // #\n// Row 4\n#define DE_LABK &kp GRAVE // <\n#define DE_Y &kp Z        // Y\n#define DE_X &kp X        // X\n#define DE_C &kp C        // C\n#define DE_V &kp V        // V\n#define DE_B &kp B        // B\n#define DE_N &kp N        // N\n#define DE_M &kp M        // M\n#define DE_COMM &kp COMMA // ,\n#define DE_DOT &kp DOT    // .\n#define DE_MINS &kp SLASH // -\n\n/* Shifted symbols\n * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐\n * │ ° │ ! │ \" │ § │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │     │\n * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤\n * │     │   │   │   │   │   │   │   │   │   │   │   │ * │   │\n * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │\n * │      │   │   │   │   │   │   │   │   │   │   │   │ ' │  │\n * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤\n * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │        │\n * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤\n * │     │    │     │                       │     │    │     │\n * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘\n */\n// Row 1\n#define DE_DEG  &kp LS(GRAVE) // °\n#define DE_EXCL &kp LS(N1)    // !\n#define DE_DQUO &kp LS(N2)    // \"\n#define DE_SECT &kp LS(N3)    // §\n#define DE_DLR  &kp LS(N4)    // $\n#define DE_PERC &kp LS(N5)    // %\n#define DE_AMPR &kp LS(N6)    // &\n#define DE_SLSH &kp LS(N7)    // /\n#define DE_LPRN &kp LS(N8)    // (\n#define DE_RPRN &kp LS(N9)    // )\n#define DE_EQL  &kp LS(N0)    // =\n#define DE_QUES &kp LS(MINUS)   // ?\n#define DE_GRV  &kp LS(EQUAL) // ` (dead)\n// Row 2\n#define DE_ASTR &kp LS(RBKT) // *\n// #define DE_STAR &kp RBRC // \"*\" DE_ASTR\n// Row 3\n#define DE_QUOT &kp LS(BSLH) // '\n// Row 4\n#define DE_RABK &kp LS(GRAVE) // >\n#define DE_SCLN &kp LS(COMMA) // ;\n#define DE_COLN &kp LS(DOT)  // :\n#define DE_UNDS &kp LS(SLASH) // _\n\n/* Alted symbols\n * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐\n * │ „ │ ¡ │ “ │ ¶ │ ¢ │ [ │ ] │ | │ { │ } │ ≠ │ ¿ │   │     │\n * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤\n * │     │ « │ ∑ │ € │ ® │ † │ Ω │ ¨ │ ⁄ │ Ø │ π │ • │ ± │   │\n * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │\n * │      │ Å │ ‚ │ ∂ │ ƒ │ © │ ª │ º │ ∆ │ @ │ Œ │ Æ │ ‘ │  │\n * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤\n * │    │ ≤ │ ¥ │ ≈ │ Ç │ √ │ ∫ │ ~ │ µ │ ∞ │ … │ – │        │\n * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤\n * │     │    │     │                       │     │    │     │\n * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘\n */\n// Row 1\n#define DE_DLQU &kp LA(GRAVE)   // „\n#define DE_IEXL &kp LA(N1)    // ¡\n#define DE_LDQU &kp LA(N2)    // “\n#define DE_PILC &kp LA(N3)    // ¶\n#define DE_CENT &kp LA(N4)    // ¢\n#define DE_LBRC &kp LA(N5)    // [\n#define DE_RBRC &kp LA(N6)    // ]\n#define DE_PIPE &kp LA(N7)    // |\n#define DE_LCBR &kp LA(N8)    // {\n#define DE_RCBR &kp LA(N9)    // }\n#define DE_NEQL &kp LA(N0)    // ≠\n#define DE_IQUE &kp LA(MINUS)   // ¿\n// Row 2\n#define DE_LDAQ &kp LA(Q)    // «\n#define DE_NARS &kp LA(W)    // ∑\n#define DE_EURO &kp LA(E)    // €\n#define DE_REGD &kp LA(R)    // ®\n#define DE_DAGG &kp LA(T)    // †\n#define DE_OMEG &kp LA(Z)    // Ω\n#define DE_DIAE &kp LA(U)    // ¨ (dead)\n#define DE_FRSL &kp LA(I)    // ⁄\n#define DE_OSTR &kp LA(O)    // Ø\n#define DE_PI   &kp LA(P)    // π\n#define DE_BULT &kp LA(LBKT) // •\n#define DE_PLMN &kp LA(RBKT) // ±\n// Row 3\n#define DE_ARNG &kp LA(A)    // Å\n#define DE_SLQU &kp LA(S)    // ‚\n#define DE_PDIF &kp LA(D)    // ∂\n#define DE_FHK  &kp LA(F)    // ƒ\n#define DE_COPY &kp LA(G)    // ©\n#define DE_FORD &kp LA(H)    // ª\n#define DE_MORD &kp LA(J)    // º\n#define DE_INCR &kp LA(K)    // ∆\n#define DE_AT   &kp LA(L)    // @\n#define DE_OE   &kp LA(SEMICOLON) // Œ\n#define DE_AE   &kp LA(APOS) // Æ\n#define DE_LSQU &kp LA(BSLH) // ‘\n// Row 4\n#define DE_LTEQ &kp LA(GRAVE) // ≤\n#define DE_YEN  &kp LA(Y)    // ¥\n#define DE_AEQL &kp LA(X)    // ≈\n#define DE_CCCE &kp LA(C)    // Ç\n#define DE_SQRT &kp LA(V)    // √\n#define DE_INTG &kp LA(B)    // ∫\n#define DE_TILD &kp LA(N)    // ~ (dead)\n#define DE_MICR &kp LA(M)    // µ\n#define DE_INFN &kp LA(COMMA) // ∞\n#define DE_ELLP &kp LA(DOT)  // …\n#define DE_NDSH &kp LA(MINUS) // –\n\n/* Shift+Alted symbols\n * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐\n * │   │ ¬ │ ” │   │ £ │ ﬁ │   │ \\ │ ˜ │ · │ ¯ │ ˙ │ ˚ │     │\n * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤\n * │     │ » │   │ ‰ │ ¸ │ ˝ │ ˇ │ Á │ Û │   │ ∏ │   │  │   │\n * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │\n * │      │   │ Í │ ™ │ Ï │ Ì │ Ó │ ı │   │ ﬂ │   │   │   │  │\n * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤\n * │    │ ≥ │ ‡ │ Ù │   │ ◊ │ ‹ │ › │ ˘ │ ˛ │ ÷ │ — │        │\n * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤\n * │     │    │     │                       │     │    │     │\n * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘\n */\n// Row 1\n#define DE_NOT  &kp LS(LA(N1))    // ¬\n#define DE_RDQU &kp LS(LA(N2))    // ”\n#define DE_PND  &kp LS(LA(N4))    // £\n#define DE_FI   &kp LS(LA(N5))    // ﬁ\n#define DE_BSLS &kp LS(LA(N7))    // (backslash)\n#define DE_STIL &kp LS(LA(N8))    // ˜\n#define DE_MDDT &kp LS(LA(N9))    // ·\n#define DE_MACR &kp LS(LA(N0))    // ¯\n#define DE_DOTA &kp LS(LA(MINUS))   // ˙\n#define DE_RNGA &kp LS(LA(EQUAL)) // ˚\n// Row 2\n#define DE_RDAQ &kp LS(LA(Q))    // »\n#define DE_PERM &kp LS(LA(E))    // ‰\n#define DE_CEDL &kp LS(LA(R))    // ¸\n#define DE_DACU &kp LS(LA(T))    // ˝\n#define DE_CARN &kp LS(LA(Z))    // ˇ\n#define DE_AACU &kp LS(LA(U))    // Á\n#define DE_UCIR &kp LS(LA(I))    // Û\n#define DE_NARP &kp LS(LA(P))    // ∏\n#define DE_APPL &kp LS(LA(RPAR)) //  (Apple logo)\n// Row 3\n#define DE_IACU &kp LS(LA(S))    // Í\n#define DE_TM   &kp LS(LA(D))    // ™\n#define DE_IDIA &kp LS(LA(F))    // Ï\n#define DE_IGRV &kp LS(LA(G))    // Ì\n#define DE_OACU &kp LS(LA(H))    // Ó\n#define DE_DLSI &kp LS(LA(J))    // ı\n#define DE_FL   &kp LS(LA(L))    // ﬂ\n// Row 4\n#define DE_GTEQ &kp LS(LA(GRAVE)) // ≥\n#define DE_DDAG &kp LS(LA(Y))    // ‡\n#define DE_UGRV &kp LS(LA(X))    // Ù\n#define DE_LOZN &kp LS(LA(V))    // ◊\n#define DE_LSAQ &kp LS(LA(B))    // ‹\n#define DE_RSAQ &kp LS(LA(N))    // ›\n#define DE_BREV &kp LS(LA(M))    // ˘\n#define DE_OGON &kp LS(LA(COMMA)) // ˛\n#define DE_DIV  &kp LS(LA(DOT))  // ÷\n#define DE_MDSH &kp LS(LA(MINUS)) // —\n\n// DE_LN_XXX for linux and windows\n#define DE_LN_LABK &kp NUBS // <\n#define DE_LN_RABK &kp LS(NUBS) // >\n#define DE_LN_LBRC &kp RA(N5) // [\n#define DE_LN_RBRC &kp RA(N6) // ]\n#define DE_LN_LPRN &kp LS(N8) // (\n#define DE_LN_RPRN &kp LS(N9) // )\n#define DE_LN_LCBR &kp RA(N8) // {\n#define DE_LN_RCBR &kp RA(N9) // }\n#define DE_LN_FSLH &kp LS(N7) // slash\n#define DE_LN_BSLH &kp LS(RA(N7)) // backslash\n#define DE_LN_PIPE &kp RA(NUBS) // pipe\n#define DE_LN_AT &kp LS(RA(Q)) // @\n#define DE_LN_AMPS &kp LS(N6) // &\n#define DE_LN_TILDE &kp LS(RA(N8)) // ~\n#define DE_LN_CARET &kp RA(APOS) // ^\n#define DE_LN_DQUO &kp LS(N2) // \"\n\n// ###############\n// #define DE_FSLH &kp AMPS  // \"/\" DE_SLSH\n// #define DE_STAR &kp RBRC  // \"*\" DE_ASTR\n// #define DE_EQUAL &kp RPAR // = DE_EQL\n// #define DE_GRAVE &kp PLUS         // ` DE_GRV\n// #define DE_HASH &kp BSLH          // #\n// #define DE_TILDE &kp LA(RBKT)     // ~\n// #define DE_PIPE &kp RA(GRAVE)     // \"|\"\n// #define DE_AMPS &kp CARET         // \"&\" DE_AMPR\n// #define DE_BSLH &kp RA(MINUS)     // \"\\\" DE_BSLS\n// #define DE_QUESTION &kp LS(MINUS) // ? DE_QUES\n// #define DE_AT &kp RA(Q)           // \"@\"\n// #define DE_LPAR &kp LS(N8)        // ( DE_LPRN\n// #define DE_RPAR &kp LS(N9)        // ) DE_RPRN\n// #define DE_LBKT &kp RA(N8)        // [ DE_LBRC\n// #define DE_RBKT &kp RA(N9)        // ] DE_RBRC\n// #define DE_LBRC &kp RA(N7)        // { DE_LCBR\n// #define DE_RBRC &kp RA(N0)        // } DE_RCBR\n// #define DE_APOS &kp PIPE      // ' DE_QUOT\n\n// vim: fdm=marker:\n"
  },
  {
    "path": "config/lily58.conf",
    "content": "# ========================================\n# FileName: corne.conf\n# Date: 07.06.2023\n# Author: Marcos Chow Castro\n# Email: mctechnology170318@gmail.com\n# GitHub: https://github.com/mctechnology17\n# Brief: configuration file for ZMK firmware\n# Board: nice_nano_v2 and puchi_ble_v1\n#                              ╔═╦═╦═╗\n#                       ╔════╗ ║║║║║╔╝\n#                       ║╔╗╔╗║ ║║║║║╚╗\n#                       ╚╝║║╚╝ ║╠═╩╩═╝\n#                         ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n#                         ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n#                         ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n#                                         ╚═╩═╝\n# Copyright (c) 2020 The ZMK Contributors\n# SPDX-License-Identifier: MIT\n# =========================================\n# on config_zmk.h file enable/disable the following options, if you want to\n# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y\n# mouse config, 1 = enable, 0 = disable, default = 1\n# 2 = enable, but with rgb matrix\n# #define MC_TECHNOLOGY_MOUSE_ENABLE 1\n# rgb matrix config, 1 = enable, 0 = disable, default = 0\n# #define MC_TECHNOLOGY_RGB_ENABLE 0\n# define macros on for .dtsi file 1 = enable, 0 = disable default = 1\n# #define MC_TECHNOLOGY_MACROS_ENABLE 1\n\n### Keyboard name\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice Lily58 View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi Lily58 View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice Lily58 Oled\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi Lily58 Oled\"\n\n### Boost Bluetooth TX power, also make Bluetooth stronger\nCONFIG_BT_CTLR_TX_PWR_PLUS_8=y\nCONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y\n# Tune bluetooth profiles for quick select\n# CONFIG_BT_MAX_CONN=3\n# Uncomment the following line if you facing issue on win 11 connection\n# Enables a combination of settings that are planned to be default in future\n# versions of ZMK to improve connection stability. This includes changes to\n# timing on BLE pairing initiation, restores use of the updated/new LLCP\n# implementation, and disables 2M PHY support.\nCONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y\n\n### POWER OPTIONS\nCONFIG_ZMK_SLEEP=y\nCONFIG_ZMK_EXT_POWER=y\n# 15 min (15*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000\n# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo\n# CONFIG_ZMK_IDLE_TIMEOUT=60000\n# 30 min (30*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000\n# CONFIG_ZMK_IDLE_TIMEOUT=120000\n# Disable external power when not connected to USB\n# CONFIG_ZMK_EXT_POWER_USB_ONLY=y\n\n### MOUSE\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md\nCONFIG_ZMK_MOUSE=y\n\n### ZMK STUDIO\n# MC: 2. zmk-studio test START\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md\nCONFIG_ZMK_STUDIO=y\nCONFIG_ZMK_STUDIO_LOCKING=n\n# MC: zmk-studio test END\n\n### RGB UNDERGLOW\n# uncomment to enable RGB Underglow or backlight\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n# CONFIG_WS2812_STRIP=y\n# apaga si no se usa el teclado\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n# 0\tSolid color    1 Breathe     2\tSpectrum     3\tSwirl\n# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3\n# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1\n# Turn off RGB underglow when keyboard goes into idle state\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n\n# # Hue step in degrees (0-359) used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30\n\n# # Brightness step in percent used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15\n\n# Uncomment the line below to disable external power toggling by the underglow.\n# By default toggling the underglow on and off also toggles external power\n# on and off. This also causes the display to turn off.\n# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n\n\n### OLED DISPLAY\nCONFIG_ZMK_DISPLAY=y\nCONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y\n# esto creo que ya no es necesario\n# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y\n# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y\n\n### WIDGET SETTINGS\n# No Widget configurations added since nice!view has its own custom widgets\n# activar solo estos dos widgets\n# CONFIG_ZMK_WIDGET_WPM_STATUS=n\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y\n# CONFIG_ZMK_WIDGET_LAYER_STATUS=y\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y\n# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y\n\n### HID para nice!view ePaperDisplay\n# Enable eager debouncing\n# \"Eager Debouncing\"\n# Trying to lower the input lag.\nCONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1\nCONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5\n\n### Improves compatibility with iPad\n# ref: https://zmk.dev/docs/config/system#hid\nCONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y\n\n# RDP compatibility.\n# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y\n\n# NKRO\n# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y\n# enable F13-F24\n# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n"
  },
  {
    "path": "config/lily58.keymap",
    "content": "/*\n * Copyright (c) 2020 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/ext_power.h>\n\n/ {\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n// ------------------------------------------------------------------------------------------------------------\n// |  ESC  |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |   `   |\n// |  TAB  |  Q  |  W  |  E   |  R   |  T   |                   |  Y   |  U    |  I    |  O   |   P   |   -   |\n// |  CTRL |  A  |  S  |  D   |  F   |  G   |                   |  H   |  J    |  K    |  L   |   ;   |   '   |\n// | SHIFT |  Z  |  X  |  C   |  V   |  B   |   \"[\"  |  |  \"]\"  |  N   |  M    |  ,    |  .   |   /   | SHIFT |\n//                     | ALT  | GUI  | LOWER|  SPACE |  | ENTER | RAISE| BSPC  | GUI   |\n            display-name = \"Bas\";\n            bindings = <\n&kp ESC   &kp N1 &kp N2 &kp N3   &kp N4   &kp N5                     &kp N6 &kp N7   &kp N8    &kp N9  &kp N0   &kp GRAVE\n&kp TAB   &kp Q  &kp W  &kp E    &kp R    &kp T                      &kp Y  &kp U    &kp I     &kp O   &kp P    &kp MINUS\n&kp LCTRL &kp A  &kp S  &kp D    &kp F    &kp G                      &kp H  &kp J    &kp K     &kp L   &kp SEMI &kp SQT\n&kp LSHFT &kp Z  &kp X  &kp C    &kp V    &kp B  &kp LBKT   &kp RBKT &kp N  &kp M    &kp COMMA &kp DOT &kp FSLH &kp RSHFT\n                        &kp LALT &kp LGUI &mo 1  &kp SPACE  &kp RET  &mo 2  &kp BSPC &kp RGUI\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        lower_layer {\n// ------------------------------------------------------------------------------------------------------------\n// | BTCLR | BT1 | BT2 |  BT3 |  BT4 |  BT5 |                   |      |       |       |      |       |       |\n// |  F1   |  F2 |  F3 |  F4  |  F5  |  F6  |                   |  F7  |  F8   |  F9   |  F10 |  F11  |  F12  |\n// |   `   |  !  |  @  |  #   |  $   |  %   |                   |  ^   |  &    |  *    |  (   |   )   |   ~   |\n// |       |     |     |      |      |      |        |  |       |      |  _    |  +    |  {   |   }   |  \"|\"  |\n//                     |      |      |      |        |  |       |      |       |       |\n            display-name = \"Low\";\n            bindings = <\n&bt BT_CLR &bt BT_SEL 0     &bt BT_SEL 1      &bt BT_SEL 2      &bt BT_SEL 3 &bt BT_SEL 4                 &trans    &trans    &trans          &trans    &trans    &trans\n&kp F1     &kp F2           &kp F3            &kp F4            &kp F5       &kp F6                       &kp F7    &kp F8    &kp F9          &kp F10   &kp F11   &kp F12\n&kp GRAVE  &kp EXCL         &kp AT            &kp HASH          &kp DOLLAR   &kp PRCNT                    &kp CARET &kp AMPS  &kp KP_MULTIPLY &kp LPAR  &kp RPAR  &kp TILDE\n&trans     &trans           &trans            &trans            &trans       &trans    &trans   &trans    &trans    &kp MINUS &kp KP_PLUS     &kp LBRC  &kp RBRC  &kp PIPE\n                                              &trans            &trans       &trans    &trans   &trans    &trans    &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        raise_layer {\n// ------------------------------------------------------------------------------------------------------------\n// |       |     |     |      |      |      |                   |      |       |       |      |       |       |\n// |   `   |  1  |  2  |  3   |  4   |  5   |                   |  6   |   7   |   8   |  9   |   0   |       |\n// |   F1  |  F2 |  F3 |  F4  |  F5  |  F6  |                   |      |   <-  |   v   |  ^   |  ->   |       |\n// |   F7  |  F8 |  F9 |  F10 |  F11 |  F12 |        |  |       |  +   |   -   |   =   |  [   |   ]   |   \\   |\n//                     |      |      |      |        |  |       |      |       |       |\n            display-name = \"Rai\";\n            bindings = <\n&trans    &trans &trans &trans  &trans  &trans                       &trans      &trans    &trans    &trans   &trans    &trans\n&kp GRAVE &kp N1 &kp N2 &kp N3  &kp N4  &kp N5                       &kp N6      &kp N7    &kp N8    &kp N9   &kp N0    &trans\n&kp F1    &kp F2 &kp F3 &kp F4  &kp F5  &kp F6                       &trans      &kp LEFT  &kp DOWN  &kp UP   &kp RIGHT &trans\n&kp F7    &kp F8 &kp F9 &kp F10 &kp F11 &kp F12   &trans   &trans    &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT  &kp BSLH\n                        &trans  &trans  &trans    &trans   &trans    &trans      &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        extra_1 {\n            status = \"reserved\";\n        };\n\n        extra_2 {\n            status = \"reserved\";\n        };\n\n        extra_3 {\n            status = \"reserved\";\n        };\n    };\n};\n"
  },
  {
    "path": "config/sofle.conf",
    "content": "# ========================================\n# FileName: sofle.conf\n# Date: 03.01.2025\n# Author: Marcos Chow Castro\n# Email: mctechnology170318@gmail.com\n# GitHub: https://github.com/mctechnology17\n# Brief: configuration file for ZMK firmware\n# Board: nice_nano_v2 and puchi_ble_v1\n#                              ╔═╦═╦═╗\n#                       ╔════╗ ║║║║║╔╝\n#                       ║╔╗╔╗║ ║║║║║╚╗\n#                       ╚╝║║╚╝ ║╠═╩╩═╝\n#                         ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n#                         ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n#                         ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n#                                         ╚═╩═╝\n# Copyright (c) 2020 The ZMK Contributors\n# SPDX-License-Identifier: MIT\n# =========================================\n# on config_zmk.h file enable/disable the following options, if you want to\n# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y\n# mouse config, 1 = enable, 0 = disable, default = 1\n# 2 = enable, but with rgb matrix\n# #define MC_TECHNOLOGY_MOUSE_ENABLE 1\n# rgb matrix config, 1 = enable, 0 = disable, default = 0\n# #define MC_TECHNOLOGY_RGB_ENABLE 0\n# define macros on for .dtsi file 1 = enable, 0 = disable default = 1\n# #define MC_TECHNOLOGY_MACROS_ENABLE 1\n\n### Keyboard name\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice sofle View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi sofle View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice sofle Oled\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi sofle Oled\"\n\n### Boost Bluetooth TX power, also make Bluetooth stronger\nCONFIG_BT_CTLR_TX_PWR_PLUS_8=y\nCONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y\n# Tune bluetooth profiles for quick select\n# CONFIG_BT_MAX_CONN=3\n# Uncomment the following line if you facing issue on win 11 connection\n# Enables a combination of settings that are planned to be default in future\n# versions of ZMK to improve connection stability. This includes changes to\n# timing on BLE pairing initiation, restores use of the updated/new LLCP\n# implementation, and disables 2M PHY support.\nCONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y\n\n### POWER OPTIONS\nCONFIG_ZMK_SLEEP=y\nCONFIG_ZMK_EXT_POWER=y\n# 15 min (15*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000\n# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo\n# CONFIG_ZMK_IDLE_TIMEOUT=60000\n# 30 min (30*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000\n# CONFIG_ZMK_IDLE_TIMEOUT=120000\n# Disable external power when not connected to USB\n# CONFIG_ZMK_EXT_POWER_USB_ONLY=y\n\n### MOUSE\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md\nCONFIG_ZMK_MOUSE=y\n\n### ZMK STUDIO\n# MC: 2. zmk-studio test START\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md\nCONFIG_ZMK_STUDIO=y\nCONFIG_ZMK_STUDIO_LOCKING=n\n# MC: zmk-studio test END\n\n### RGB UNDERGLOW\n# uncomment to enable RGB Underglow or backlight\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n# CONFIG_WS2812_STRIP=y\n# apaga si no se usa el teclado\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n# 0\tSolid color    1 Breathe     2\tSpectrum     3\tSwirl\n# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3\n# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1\n# Turn off RGB underglow when keyboard goes into idle state\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n\n# # Hue step in degrees (0-359) used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30\n\n# # Brightness step in percent used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15\n\n# Uncomment the line below to disable external power toggling by the underglow.\n# By default toggling the underglow on and off also toggles external power\n# on and off. This also causes the display to turn off.\n# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n\n\n### OLED DISPLAY\nCONFIG_ZMK_DISPLAY=y\nCONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y\n# esto creo que ya no es necesario\n# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y\n# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y\n\n### WIDGET SETTINGS\n# No Widget configurations added since nice!view has its own custom widgets\n# activar solo estos dos widgets\n# CONFIG_ZMK_WIDGET_WPM_STATUS=n\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y\n# CONFIG_ZMK_WIDGET_LAYER_STATUS=y\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y\n# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y\n\n### HID para nice!view ePaperDisplay\n# Enable eager debouncing\n# \"Eager Debouncing\"\n# Trying to lower the input lag.\nCONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1\nCONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5\n\n### Improves compatibility with iPad\n# ref: https://zmk.dev/docs/config/system#hid\nCONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y\n\n# RDP compatibility.\n# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y\n\n# NKRO\n# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y\n# enable F13-F24\n# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n\n### ENABLE ENCODER\nCONFIG_EC11=y\nCONFIG_EC11_TRIGGER_GLOBAL_THREAD=y\n"
  },
  {
    "path": "config/sofle.keymap",
    "content": "/*\n * Copyright (c) 2020 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/ext_power.h>\n#include <dt-bindings/zmk/keys.h>\n\n/ {\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n            display-name = \"BAS\";\n            // ------------------------------------------------------------------------------------------------------------\n            // |  `    |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |       |\n            // |  ESC  |  Q  |  W  |  E   |  R   |  T   |                   |  Y   |  U    |  I    |  O   |   P   | BKSPC |\n            // |  TAB  |  A  |  S  |  D   |  F   |  G   |                   |  H   |  J    |  K    |  L   |   ;   |   '   |\n            // | SHIFT |  Z  |  X  |  C   |  V   |  B   |  MUTE  |  |       |  N   |  M    |  ,    |  .   |   /   | SHIFT |\n            //               | GUI | ALT  | CTRL | LOWER|  ENTER |  | SPACE | RAISE| CTRL  | ALT   | GUI  |\n\n            bindings = <\n&kp GRAVE  &kp N1  &kp N2    &kp N3    &kp N4     &kp N5                                   &kp N6  &kp N7     &kp N8     &kp N9    &kp N0    &kp MINUS\n&kp ESC    &kp Q   &kp W     &kp E     &kp R      &kp T                                    &kp Y   &kp U      &kp I      &kp O     &kp P     &kp BSPC\n&kp TAB    &kp A   &kp S     &kp D     &kp F      &kp G                                    &kp H   &kp J      &kp K      &kp L     &kp SEMI  &kp SQT\n&kp LSHFT  &kp Z   &kp X     &kp C     &kp V      &kp B   &kp C_MUTE    &kp C_MUTE  &kp N   &kp M      &kp COMMA  &kp DOT   &kp FSLH  &kp RSHFT\n                   &kp LGUI  &kp LALT  &kp LCTRL  &mo 1   &kp RET       &kp SPACE          &mo 2   &kp RCTRL  &kp RALT   &kp RGUI\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;\n        };\n\n        lower_layer {\n            display-name = \"LOW\";\n            // ------------------------------------------------------------------------------------------------------------\n            // | `     |  F1 |  F2 |  F3  |  F4  |  F5  |                   |  F6  |  F7   |  F8   |  F9  |  F10  |  F11  |\n            // | RAISE |   1 |   2 |   3  |   4  |   5  |                   |   6  |   7   |   8   |   9  |    0  |  F12  |\n            // |       |  !  |  @  |  #   |  $   |  %   |                   |  ^   |  &    |  *    |  (   |   )   |   |   |\n            // |       |  =  |  -  |  +   |  {   |  }   |        |  |       |  [   |  ]    |  ;    |  :   |   \\   |       |\n            //               |     |      |      |      |        |  |       |      |       |       |      |\n\n            bindings = <\n&kp GRAVE  &kp F1     &kp F2     &kp F3       &kp F4    &kp F5                       &kp F6     &kp F7    &kp F8           &kp F9     &kp F10   &kp F11\n&mo 2      &kp N1     &kp N2     &kp N3       &kp N4    &kp N5                       &kp N6     &kp N7    &kp N8           &kp N9     &kp N0    &kp F12\n&trans     &kp EXCL   &kp AT     &kp HASH     &kp DLLR  &kp PRCNT                    &kp CARET  &kp AMPS  &kp KP_MULTIPLY  &kp LPAR   &kp RPAR  &kp PIPE\n&trans     &kp EQUAL  &kp MINUS  &kp KP_PLUS  &kp LBRC  &kp RBRC   &trans    &trans  &kp LBKT   &kp RBKT  &kp SEMI         &kp COLON  &kp BSLH  &trans\n                      &trans     &trans       &trans    &trans     &trans    &trans  &trans     &trans    &trans           &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;\n        };\n\n        raise_layer {\n            display-name = \"RAI\";\n            // ------------------------------------------------------------------------------------------------------------\n            // |BTCLR| BT1  | BT2  |  BT3  |  BT4  |  BT5 |                |      |      |       |      |       |       |\n            // |     | INS  | PSCR | GUI   |       |      |                | PGUP |      |       |      |       |       |\n            // |     | ALT  | CTRL | SHIFT |       | CAPS |                |  <-  |   v  |   ^   |  ->  |  DEL  | BKSPC |\n            // |     | UNDO | CUT  | COPY  | PASTE |      |      |  |      |      |      |       |      |       |       |\n            //              |      |       |       |      |      |  |      |      |      |       |      |\n\n            bindings = <\n&bt BT_CLR  &bt BT_SEL 0  &bt BT_SEL 1  &bt BT_SEL 2  &bt BT_SEL 3  &bt BT_SEL 4                    &trans     &trans    &trans  &trans     &trans   &trans\n&trans      &kp INS       &kp PSCRN     &kp K_CMENU   &trans        &trans                          &kp PG_UP  &trans    &trans  &trans     &kp N0   &trans\n&trans      &kp LALT      &kp LCTRL     &kp LSHFT     &trans        &kp CLCK                        &kp LEFT   &kp DOWN  &kp UP  &kp RIGHT  &kp DEL  &kp BSPC\n&trans      &kp K_UNDO    &kp K_CUT     &kp K_COPY    &kp K_PASTE   &trans        &trans    &trans  &trans     &trans    &trans  &trans     &trans   &trans\n                          &trans        &trans        &trans        &trans        &trans    &trans  &trans     &trans    &trans  &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;\n        };\n    };\n};\n"
  },
  {
    "path": "config/splitkb_aurora_sofle.conf",
    "content": "# ========================================\n# FileName: splitkb_aurora_sofle.conf\n# Date: 03.01.2025\n# Author: Marcos Chow Castro\n# Email: mctechnology170318@gmail.com\n# GitHub: https://github.com/mctechnology17\n# Brief: configuration file for ZMK firmware\n# Board: nice_nano_v2 and puchi_ble_v1\n#                              ╔═╦═╦═╗\n#                       ╔════╗ ║║║║║╔╝\n#                       ║╔╗╔╗║ ║║║║║╚╗\n#                       ╚╝║║╚╝ ║╠═╩╩═╝\n#                         ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗\n#                         ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║\n#                         ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║\n#                                         ╚═╩═╝\n# Copyright (c) 2020 The ZMK Contributors\n# SPDX-License-Identifier: MIT\n# =========================================\n# on config_zmk.h file enable/disable the following options, if you want to\n# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y\n# mouse config, 1 = enable, 0 = disable, default = 1\n# 2 = enable, but with rgb matrix\n# #define MC_TECHNOLOGY_MOUSE_ENABLE 1\n# rgb matrix config, 1 = enable, 0 = disable, default = 0\n# #define MC_TECHNOLOGY_RGB_ENABLE 0\n# define macros on for .dtsi file 1 = enable, 0 = disable default = 1\n# #define MC_TECHNOLOGY_MACROS_ENABLE 1\n\n### Keyboard name\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice splitkb_aurora_sofle View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi splitkb_aurora_sofle View\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Nice splitkb_aurora_sofle Oled\"\n# CONFIG_ZMK_KEYBOARD_NAME=\"Puchi splitkb_aurora_sofle Oled\"\n\n### Boost Bluetooth TX power, also make Bluetooth stronger\nCONFIG_BT_CTLR_TX_PWR_PLUS_8=y\nCONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y\n# Tune bluetooth profiles for quick select\n# CONFIG_BT_MAX_CONN=3\n# Uncomment the following line if you facing issue on win 11 connection\n# Enables a combination of settings that are planned to be default in future\n# versions of ZMK to improve connection stability. This includes changes to\n# timing on BLE pairing initiation, restores use of the updated/new LLCP\n# implementation, and disables 2M PHY support.\nCONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y\n\n### POWER OPTIONS\nCONFIG_ZMK_SLEEP=y\nCONFIG_ZMK_EXT_POWER=y\n# 15 min (15*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000\n# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo\n# CONFIG_ZMK_IDLE_TIMEOUT=60000\n# 30 min (30*60*1000ms)\n# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000\n# CONFIG_ZMK_IDLE_TIMEOUT=120000\n# Disable external power when not connected to USB\n# CONFIG_ZMK_EXT_POWER_USB_ONLY=y\n\n### MOUSE\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md\nCONFIG_ZMK_MOUSE=y\n\n### ZMK STUDIO\n# MC: 2. zmk-studio test START\n# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md\nCONFIG_ZMK_STUDIO=y\nCONFIG_ZMK_STUDIO_LOCKING=n\n# MC: zmk-studio test END\n\n### RGB UNDERGLOW\n# uncomment to enable RGB Underglow or backlight\n# CONFIG_ZMK_RGB_UNDERGLOW=y\n# CONFIG_WS2812_STRIP=y\n# apaga si no se usa el teclado\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n# 0\tSolid color    1 Breathe     2\tSpectrum     3\tSwirl\n# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3\n# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1\n# Turn off RGB underglow when keyboard goes into idle state\n# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\n\n# # Hue step in degrees (0-359) used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30\n\n# # Brightness step in percent used by RGB actions default 10\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15\n\n# Uncomment the line below to disable external power toggling by the underglow.\n# By default toggling the underglow on and off also toggles external power\n# on and off. This also causes the display to turn off.\n# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n\n\n### OLED DISPLAY\nCONFIG_ZMK_DISPLAY=y\nCONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y\n# esto creo que ya no es necesario\n# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y\n# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y\n\n### WIDGET SETTINGS\n# No Widget configurations added since nice!view has its own custom widgets\n# activar solo estos dos widgets\n# CONFIG_ZMK_WIDGET_WPM_STATUS=n\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y\n# CONFIG_ZMK_WIDGET_LAYER_STATUS=y\n# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y\n# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y\n\n### HID para nice!view ePaperDisplay\n# Enable eager debouncing\n# \"Eager Debouncing\"\n# Trying to lower the input lag.\nCONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1\nCONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5\n\n### Improves compatibility with iPad\n# ref: https://zmk.dev/docs/config/system#hid\nCONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y\n\n# RDP compatibility.\n# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y\n\n# NKRO\n# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y\n# enable F13-F24\n# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y\n\n### DEBUG OPTIONS\n# CONFIG_ZMK_USB_LOGGING=y\n# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000\n\n### ENABLE ENCODER\nCONFIG_EC11=y\nCONFIG_EC11_TRIGGER_GLOBAL_THREAD=y\n"
  },
  {
    "path": "config/splitkb_aurora_sofle.keymap",
    "content": "/*\n * Copyright (c) 2023 The ZMK Contributors\n *\n * SPDX-License-Identifier: MIT\n */\n\n#include <behaviors.dtsi>\n#include <dt-bindings/zmk/keys.h>\n#include <dt-bindings/zmk/bt.h>\n#include <dt-bindings/zmk/ext_power.h>\n\n/* Uncomment this block if using RGB\n&led_strip {\n    chain-length = <6>;\n    // chain-length = <35>; // Uncomment if using both per-key and underglow LEDs\n    // chain-length = <29>; // Uncomment if using only per-key LEDs.\n};\n */\n\n/ {\n    keymap {\n        compatible = \"zmk,keymap\";\n\n        default_layer {\n         display-name = \"BAS\";\n// ------------------------------------------------------------------------------------------------------------\n// |  ESC  |  1  |  2  |  3   |  4   |  5   |                   |  6   |  7    |  8    |  9   |   0   |   `   |\n// |  TAB  |  Q  |  W  |  E   |  R   |  T   |                   |  Y   |  U    |  I    |  O   |   P   |   -   |\n// |  CTRL |  A  |  S  |  D   |  F   |  G   |                   |  H   |  J    |  K    |  L   |   ;   |   '   |\n// | SHIFT |  Z  |  X  |  C   |  V   |  B   |   \"[\"  |  |  \"]\"  |  N   |  M    |  ,    |  .   |   /   | SHIFT |\n//               |CTRL | ALT  | GUI  | LOWER|  SPACE |  | ENTER | RAISE| BSPC  | GUI   | RALT |\n            bindings = <\n&kp ESC   &kp N1 &kp N2    &kp N3   &kp N4   &kp N5                     &kp N6 &kp N7   &kp N8    &kp N9   &kp N0   &kp GRAVE\n&kp TAB   &kp Q  &kp W     &kp E    &kp R    &kp T                      &kp Y  &kp U    &kp I     &kp O    &kp P    &kp MINUS\n&kp LCTRL &kp A  &kp S     &kp D    &kp F    &kp G                      &kp H  &kp J    &kp K     &kp L    &kp SEMI &kp SQT\n&kp LSHFT &kp Z  &kp X     &kp C    &kp V    &kp B  &kp LBKT   &kp RBKT &kp N  &kp M    &kp COMMA &kp DOT  &kp FSLH &kp RSHFT\n                 &kp LCTRL &kp LALT &kp LGUI &mo 1  &kp SPACE  &kp RET  &mo 2  &kp BSPC &kp RGUI  &kp RALT\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        lower_layer {\n            display-name = \"LOW\";\n// ------------------------------------------------------------------------------------------------------------\n// | BTCLR | BT1 | BT2 |  BT3 |  BT4 |  BT5 |                   |      |       |       |      |       |       |\n// |  F1   |  F2 |  F3 |  F4  |  F5  |  F6  |                   |  F7  |  F8   |  F9   |  F10 |  F11  |  F12  |\n// |   `   |  !  |  @  |  #   |  $   |  %   |                   |  ^   |  &    |  *    |  (   |   )   |   ~   |\n// |       |     |     |      |      |      |        |  |       |      |  _    |  +    |  {   |   }   |  \"|\"  |\n//               |     |      |      |      |        |  |       |      |       |       |      |\n            bindings = <\n&bt BT_CLR &bt BT_SEL 0     &bt BT_SEL 1      &bt BT_SEL 2      &bt BT_SEL 3 &bt BT_SEL 4                 &trans    &trans    &trans    &trans    &trans    &trans\n&kp F1     &kp F2           &kp F3            &kp F4            &kp F5       &kp F6                       &kp F7    &kp F8    &kp F9    &kp F10   &kp F11   &kp F12\n&kp GRAVE  &kp EXCL         &kp AT            &kp HASH          &kp DOLLAR   &kp PRCNT                    &kp CARET &kp AMPS  &kp STAR  &kp LPAR  &kp RPAR  &kp TILDE\n&trans     &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans       &trans    &trans   &trans    &trans    &kp MINUS &kp PLUS  &kp LBRC  &kp RBRC  &kp PIPE\n                            &trans            &trans            &trans       &trans    &trans   &trans    &trans    &trans    &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        raise_layer {\n            display-name = \"RAI\";\n// ------------------------------------------------------------------------------------------------------------\n// |       |     |     |      |      |      |                   |      |       |       |      |       |       |\n// |   `   |  1  |  2  |  3   |  4   |  5   |                   |  6   |   7   |   8   |  9   |   0   |       |\n// |   F1  |  F2 |  F3 |  F4  |  F5  |  F6  |                   |      |   <-  |   v   |  ^   |  ->   |       |\n// |   F7  |  F8 |  F9 |  F10 |  F11 |  F12 |        |  |       |  +   |   -   |   =   |  [   |   ]   |   \\   |\n//               |     |      |      |      |        |  |       |      |       |       |      |\n            bindings = <\n&trans    &trans &trans &trans  &trans  &trans                       &trans      &trans    &trans    &trans   &trans    &trans\n&kp GRAVE &kp N1 &kp N2 &kp N3  &kp N4  &kp N5                       &kp N6      &kp N7    &kp N8    &kp N9   &kp N0    &trans\n&kp F1    &kp F2 &kp F3 &kp F4  &kp F5  &kp F6                       &trans      &kp LEFT  &kp DOWN  &kp UP   &kp RIGHT &trans\n&kp F7    &kp F8 &kp F9 &kp F10 &kp F11 &kp F12   &trans   &trans    &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT  &kp BSLH\n                 &trans &trans  &trans  &trans    &trans   &trans    &trans      &trans    &trans    &trans\n            >;\n\n            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;\n        };\n\n        extra_1 {\n            status = \"reserved\";\n        };\n\n        extra_2 {\n            status = \"reserved\";\n        };\n\n        extra_3 {\n            status = \"reserved\";\n        };\n    };\n};\n"
  },
  {
    "path": "config/west.yml",
    "content": "manifest:\n  remotes:\n    - name: zmkfirmware\n      url-base: https://github.com/zmkfirmware\n    # dongle_display\n    - name: englmaxi\n      url-base: https://github.com/englmaxi\n    # nice_oled - nice_epaper - dongle_display!view - oled Adapter\n    - name: mctechnology17\n      url-base: https://github.com/mctechnology17\n  projects:\n    - name: zmk\n      remote: zmkfirmware\n      revision: v0.3.0\n      import: app/west.yml\n    # dongle_display\n    - name: zmk-dongle-display\n      remote: englmaxi\n      revision: v0.3\n    # nice_oled - nice_epaper\n    - name: zmk-nice-oled\n      remote: mctechnology17\n      revision: main\n    # dongle_display!view\n    - name: zmk-dongle-display-view\n      remote: mctechnology17\n      revision: main\n    # oled Adapter\n    - name: zmk-oled-adapter\n      remote: mctechnology17\n      revision: main\n  self:\n    path: config\n"
  },
  {
    "path": "keymap-drawer/corne.yaml",
    "content": "layout: {qmk_keyboard: corne_rotated, layout_name: LAYOUT_split_3x6_3}\nlayers:\n  BAS: [↹, 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, ;, '''', '$$mdi:apple-keyboard-shift$$',\n    Z, X, C, V, B, N, M, ',', ., /, Esc, '$$mdi:apple-keyboard-command$$', LOW, ␣, ⏎, RAI, '$$mdi:apple-keyboard-option$$']\n  LOW:\n  - ↹\n  - '1'\n  - '2'\n  - '3'\n  - '4'\n  - '5'\n  - '6'\n  - '7'\n  - '8'\n  - '9'\n  - '0'\n  - $$mdi:backspace-outline$$\n  - BT CLR\n  - BT 1\n  - BT 2\n  - BT 3\n  - BT 4\n  - BT 5\n  - ←\n  - ↓\n  - ↑\n  - →\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - $$mdi:apple-keyboard-shift$$\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - $$mdi:apple-keyboard-command$$\n  - {type: held}\n  - ␣\n  - ⏎\n  - {t: ▽, type: trans}\n  - $$mdi:apple-keyboard-option$$\n  RAI:\n  - ↹\n  - '!'\n  - '@'\n  - '#'\n  - $\n  - '%'\n  - ^\n  - AMPS\n  - KP MULTIPLY\n  - (\n  - )\n  - $$mdi:backspace-outline$$\n  - $$mdi:apple-keyboard-control$$\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '-'\n  - '='\n  - '['\n  - ']'\n  - \\\n  - '`'\n  - $$mdi:apple-keyboard-shift$$\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - _\n  - +\n  - '{'\n  - '}'\n  - '|'\n  - '~'\n  - $$mdi:apple-keyboard-command$$\n  - '&studio_unlock'\n  - ␣\n  - ⏎\n  - {t: '&studio_unlock', type: held}\n  - $$mdi:apple-keyboard-option$$\n"
  },
  {
    "path": "keymap-drawer/lily58.yaml",
    "content": "layout: {qmk_keyboard: lily58_rotated}\nlayers:\n  Bas: [Esc, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '`', ↹, Q, W, E, R, T, Y, U, I, O, P, '-', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K,\n    L, ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, '[', ']', N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-option$$', '$$mdi:apple-keyboard-command$$',\n    Low, ␣, ⏎, Rai, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-command$$']\n  Low:\n  - BT CLR\n  - BT 1\n  - BT 2\n  - BT 3\n  - BT 4\n  - BT 5\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - F1\n  - F2\n  - F3\n  - F4\n  - F5\n  - F6\n  - F7\n  - F8\n  - F9\n  - F10\n  - F11\n  - F12\n  - '`'\n  - '!'\n  - '@'\n  - '#'\n  - $\n  - '%'\n  - ^\n  - AMPS\n  - KP MULTIPLY\n  - (\n  - )\n  - '~'\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '-'\n  - KP PLUS\n  - '{'\n  - '}'\n  - '|'\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {type: held}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  Rai:\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '`'\n  - '1'\n  - '2'\n  - '3'\n  - '4'\n  - '5'\n  - '6'\n  - '7'\n  - '8'\n  - '9'\n  - '0'\n  - {t: ▽, type: trans}\n  - F1\n  - F2\n  - F3\n  - F4\n  - F5\n  - F6\n  - {t: ▽, type: trans}\n  - ←\n  - ↓\n  - ↑\n  - →\n  - {t: ▽, type: trans}\n  - F7\n  - F8\n  - F9\n  - F10\n  - F11\n  - F12\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - KP PLUS\n  - '-'\n  - '='\n  - '['\n  - ']'\n  - \\\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {type: held}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n"
  },
  {
    "path": "keymap-drawer/sofle.yaml",
    "content": "layout: {qmk_keyboard: sofle/rev1}\nlayers:\n  BAS: ['`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', Esc, Q, W, E, R, T, Y, U, I, O, P, '$$mdi:backspace-outline$$', ↹, A, S, D, F, G, H, J, K, L,\n    ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, MUTE, MUTE, N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-command$$', '$$mdi:apple-keyboard-option$$',\n    '$$mdi:apple-keyboard-control$$', LOW, ⏎, ␣, RAI, '$$mdi:apple-keyboard-control$$', '$$mdi:apple-keyboard-option$$', '$$mdi:apple-keyboard-command$$']\n  LOW:\n  - '`'\n  - F1\n  - F2\n  - F3\n  - F4\n  - F5\n  - F6\n  - F7\n  - F8\n  - F9\n  - F10\n  - F11\n  - RAI\n  - '1'\n  - '2'\n  - '3'\n  - '4'\n  - '5'\n  - '6'\n  - '7'\n  - '8'\n  - '9'\n  - '0'\n  - F12\n  - {t: ▽, type: trans}\n  - '!'\n  - '@'\n  - '#'\n  - $\n  - '%'\n  - ^\n  - AMPS\n  - KP MULTIPLY\n  - (\n  - )\n  - '|'\n  - {t: ▽, type: trans}\n  - '='\n  - '-'\n  - KP PLUS\n  - '{'\n  - '}'\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '['\n  - ']'\n  - ;\n  - ':'\n  - \\\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {type: held}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  RAI:\n  - BT CLR\n  - BT 1\n  - BT 2\n  - BT 3\n  - BT 4\n  - BT 5\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - Insert\n  - Print Scrn\n  - CMENU\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - Page Up\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '0'\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - $$mdi:apple-keyboard-option$$\n  - $$mdi:apple-keyboard-control$$\n  - $$mdi:apple-keyboard-shift$$\n  - {t: ▽, type: trans}\n  - CLCK\n  - ←\n  - ↓\n  - ↑\n  - →\n  - ⌦\n  - $$mdi:backspace-outline$$\n  - {t: ▽, type: trans}\n  - UNDO\n  - CUT\n  - COPY\n  - PASTE\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {type: held}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n"
  },
  {
    "path": "keymap-drawer/splitkb_aurora_sofle.yaml",
    "content": "layout: {qmk_keyboard: sofle/rev1}\nlayers:\n  BAS: [Esc, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '`', ↹, Q, W, E, R, T, Y, U, I, O, P, '-', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K,\n    L, ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, '[', ']', N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-control$$', '$$mdi:apple-keyboard-option$$',\n    '$$mdi:apple-keyboard-command$$', LOW, ␣, ⏎, RAI, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-command$$', '$$mdi:apple-keyboard-option$$']\n  LOW:\n  - BT CLR\n  - BT 1\n  - BT 2\n  - BT 3\n  - BT 4\n  - BT 5\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - F1\n  - F2\n  - F3\n  - F4\n  - F5\n  - F6\n  - F7\n  - F8\n  - F9\n  - F10\n  - F11\n  - F12\n  - '`'\n  - '!'\n  - '@'\n  - '#'\n  - $\n  - '%'\n  - ^\n  - AMPS\n  - '*'\n  - (\n  - )\n  - '~'\n  - {t: ▽, type: trans}\n  - EP ON\n  - EP OFF\n  - EP TOG\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '-'\n  - +\n  - '{'\n  - '}'\n  - '|'\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {type: held}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  RAI:\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - '`'\n  - '1'\n  - '2'\n  - '3'\n  - '4'\n  - '5'\n  - '6'\n  - '7'\n  - '8'\n  - '9'\n  - '0'\n  - {t: ▽, type: trans}\n  - F1\n  - F2\n  - F3\n  - F4\n  - F5\n  - F6\n  - {t: ▽, type: trans}\n  - ←\n  - ↓\n  - ↑\n  - →\n  - {t: ▽, type: trans}\n  - F7\n  - F8\n  - F9\n  - F10\n  - F11\n  - F12\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - KP PLUS\n  - '-'\n  - '='\n  - '['\n  - ']'\n  - \\\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {type: held}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n  - {t: ▽, type: trans}\n"
  },
  {
    "path": "snippets/common-config/common-config.conf",
    "content": ""
  },
  {
    "path": "snippets/common-config/snippet.yml",
    "content": "name: common-config\r\nappend:\r\n  EXTRA_CONF_FILE: common-config.conf\r\n"
  },
  {
    "path": "snippets/dongle-config/dongle-config.conf",
    "content": ""
  },
  {
    "path": "snippets/dongle-config/snippet.yml",
    "content": "name: dongle-config\r\nappend:\r\n  EXTRA_CONF_FILE: dongle-config.conf\r\n"
  },
  {
    "path": "snippets/rgb-config/rgb-config.conf",
    "content": "### RGB UNDERGLOW\r\nCONFIG_ZMK_RGB_UNDERGLOW=y\r\nCONFIG_WS2812_STRIP=y\r\n# 0\tSolid color    1 Breathe     2\tSpectrum     3\tSwirl\r\nCONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3\r\n# brightness level in percentage, the default value is 10 percent\r\nCONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1\r\n# Turn off RGB underglow when keyboard goes into idle state\r\nCONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y\r\n# # Hue step in degrees (0-359) used by RGB actions default 10\r\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30\r\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2\r\n# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240\r\n# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10\r\n# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15\r\n\r\n# Uncomment the line below to disable external power toggling by the underglow.\r\n# By default toggling the underglow on and off also toggles external power\r\n# on and off. This also causes the display to turn off.\r\nCONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n\r\n"
  },
  {
    "path": "snippets/rgb-config/snippet.yml",
    "content": "name: rgb-config\r\nappend:\r\n  EXTRA_CONF_FILE: rgb-config.conf\r\n"
  },
  {
    "path": "zephyr/module.yml",
    "content": "build:\n  settings:\n    board_root: .\n    snippet_root: .\n"
  }
]