keyboard stuff
at master 315 lines 16 kB view raw
1[ 2 { 3 "text": "Tutorial", 4 "items": [ 5 { "text": "Introduction", "link": "/newbs" }, 6 { "text": "Setup", "link": "/newbs_getting_started" }, 7 { "text": "Building Your First Firmware", "link": "/newbs_building_firmware" }, 8 { "text": "Flashing Firmware", "link": "/newbs_flashing" }, 9 { "text": "Getting Help/Support", "link": "/support" }, 10 { "text": "External Userspace", "link": "/newbs_external_userspace" }, 11 { "text": "Other Resources", "link": "/newbs_learn_more_resources" }, 12 { "text": "Syllabus", "link": "/syllabus" } 13 ] 14 }, 15 { 16 "text": "FAQs", 17 "items": [ 18 { "text": "General FAQ", "link": "/faq_general" }, 19 { "text": "Build/Compile QMK", "link": "/faq_build" }, 20 { "text": "Troubleshooting QMK", "link": "/faq_misc" }, 21 { "text": "Debugging QMK", "link": "/faq_debug" }, 22 { "text": "Keymap FAQ", "link": "/faq_keymap" }, 23 { "text": "Squeezing Space from AVR", "link": "/squeezing_avr" }, 24 { "text": "Glossary", "link": "/reference_glossary" } 25 ] 26 }, 27 { 28 "text": "Licensing", 29 "items": [ 30 { "text": "License Violations", "link": "/license_violations" }, 31 { "text": "Proprietary Libraries", "link": "/proprietary_libs" } 32 ] 33 }, 34 { 35 "text": "Configurator", 36 "items": [ 37 { "text": "Overview", "link": "/newbs_building_firmware_configurator" }, 38 { "text": "Step by Step", "link": "/configurator_step_by_step" }, 39 { "text": "Troubleshooting", "link": "/configurator_troubleshooting" }, 40 { "text": "Architecture", "link": "/configurator_architecture" }, 41 { 42 "text": "QMK API", 43 "items": [ 44 { "text": "Overview", "link": "/api_overview" }, 45 { "text": "API Documentation", "link": "/api_docs" }, 46 { "text": "Keyboard Support", "link": "/reference_configurator_support" }, 47 { "text": "Adding Default Keymaps", "link": "/configurator_default_keymaps" } 48 ] 49 } 50 ] 51 }, 52 { 53 "text": "CLI", 54 "items": [ 55 { "text": "Overview", "link": "/cli" }, 56 { "text": "Configuration", "link": "/cli_configuration" }, 57 { "text": "Commands", "link": "/cli_commands" }, 58 { "text": "Tab Completion", "link": "/cli_tab_complete" } 59 ] 60 }, 61 { 62 "text": "Using QMK", 63 "items": [ 64 { 65 "text": "Guides", 66 "items": [ 67 { "text": "Customizing Functionality", "link": "/custom_quantum_functions" }, 68 { "text": "Driver Installation with Zadig", "link": "/driver_installation_zadig" }, 69 { "text": "Community Modules", "link": "/features/community_modules" }, 70 { "text": "Keymap Overview", "link": "/keymap" }, 71 { 72 "text": "Development Environments", 73 "items": [{ "text": "Docker Guide", "link": "/getting_started_docker" }] 74 }, 75 { "text": "Flashing", "link": "/flashing" }, 76 { 77 "text": "IDEs", 78 "items": [ 79 { "text": "Using Eclipse with QMK", "link": "/other_eclipse" }, 80 { "text": "Using VSCode with QMK", "link": "/other_vscode" } 81 ] 82 }, 83 { 84 "text": "Git Best Practices", 85 "items": [ 86 { "text": "Introduction", "link": "/newbs_git_best_practices" }, 87 { "text": "Your Fork", "link": "/newbs_git_using_your_master_branch" }, 88 { "text": "Merge Conflicts", "link": "/newbs_git_resolving_merge_conflicts" }, 89 { "text": "Fixing Your Branch", "link": "/newbs_git_resynchronize_a_branch" } 90 ] 91 } 92 ] 93 }, 94 { 95 "text": "Simple Keycodes", 96 "items": [ 97 { "text": "Full List", "link": "/keycodes" }, 98 { "text": "Basic Keycodes", "link": "/keycodes_basic" }, 99 { "text": "Language-Specific Keycodes", "link": "/reference_keymap_extras" }, 100 { "text": "Modifier Keys", "link": "/feature_advanced_keycodes" }, 101 { "text": "Quantum Keycodes", "link": "/quantum_keycodes" }, 102 { "text": "Magic Keycodes", "link": "/keycodes_magic" } 103 ] 104 }, 105 { 106 "text": "Advanced Keycodes", 107 "items": [ 108 { "text": "Command", "link": "/features/command" }, 109 { "text": "Dynamic Macros", "link": "/features/dynamic_macros" }, 110 { "text": "Grave Escape", "link": "/features/grave_esc" }, 111 { "text": "Leader Key", "link": "/features/leader_key" }, 112 { "text": "Mod-Tap", "link": "/mod_tap" }, 113 { "text": "Macros", "link": "/feature_macros" }, 114 { "text": "Mouse Keys", "link": "/features/mouse_keys" }, 115 { "text": "Programmable Button", "link": "/features/programmable_button" }, 116 { "text": "Repeat Key", "link": "/features/repeat_key" }, 117 { "text": "Space Cadet Shift", "link": "/features/space_cadet" }, 118 { "text": "US ANSI Shifted Keys", "link": "/keycodes_us_ansi_shifted" } 119 ] 120 }, 121 { 122 "text": "Software Features", 123 "items": [ 124 { "text": "Auto Shift", "link": "/features/auto_shift" }, 125 { "text": "Autocorrect", "link": "/features/autocorrect" }, 126 { "text": "Caps Word", "link": "/features/caps_word" }, 127 { "text": "Combos", "link": "/features/combo" }, 128 { "text": "Debounce API", "link": "/feature_debounce_type" }, 129 { "text": "Digitizer", "link": "/features/digitizer" }, 130 { "text": "EEPROM", "link": "/feature_eeprom" }, 131 { "text": "Key Lock", "link": "/features/key_lock" }, 132 { "text": "Key Overrides", "link": "/features/key_overrides" }, 133 { "text": "Layers", "link": "/feature_layers" }, 134 { "text": "Layer Lock", "link": "/features/layer_lock" }, 135 { "text": "One Shot Keys", "link": "/one_shot_keys" }, 136 { "text": "OS Detection", "link": "/features/os_detection" }, 137 { "text": "Raw HID", "link": "/features/rawhid" }, 138 { "text": "Secure", "link": "/features/secure" }, 139 { "text": "Send String", "link": "/features/send_string" }, 140 { "text": "Sequencer", "link": "/features/sequencer" }, 141 { "text": "Swap Hands", "link": "/features/swap_hands" }, 142 { "text": "Tap Dance", "link": "/features/tap_dance" }, 143 { "text": "Tap-Hold Configuration", "link": "/tap_hold" }, 144 { "text": "Tri Layer", "link": "/features/tri_layer" }, 145 { "text": "Unicode", "link": "/features/unicode" }, 146 { "text": "Userspace", "link": "/feature_userspace" }, 147 { "text": "WPM Calculation", "link": "/features/wpm" } 148 ] 149 }, 150 { 151 "text": "Hardware Features", 152 "items": [ 153 { 154 "text": "Displays", 155 "items": [ 156 { 157 "text": "Quantum Painter", 158 "link": "quantum_painter", 159 "items": [ 160 { "text": "Quantum Painter LVGL Integration", "link": "/quantum_painter_lvgl" } 161 ] 162 }, 163 { "text": "HD44780 LCD Driver", "link": "/features/hd44780" }, 164 { "text": "ST7565 LCD Driver", "link": "/features/st7565" }, 165 { "text": "OLED Driver", "link": "/features/oled_driver" } 166 ] 167 }, 168 { 169 "text": "Lighting", 170 "items": [ 171 { "text": "Backlight", "link": "/features/backlight" }, 172 { "text": "LED Matrix", "link": "/features/led_matrix" }, 173 { "text": "RGB Lighting", "link": "/features/rgblight" }, 174 { "text": "RGB Matrix", "link": "/features/rgb_matrix" } 175 ] 176 }, 177 { "text": "Audio", "link": "/features/audio" }, 178 { "text": "Battery", "link": "/features/battery" }, 179 { "text": "Bootmagic", "link": "/features/bootmagic" }, 180 { "text": "Converters", "link": "/feature_converters" }, 181 { "text": "Custom Matrix", "link": "/custom_matrix" }, 182 { "text": "DIP Switch", "link": "/features/dip_switch" }, 183 { "text": "Encoders", "link": "/features/encoders" }, 184 { "text": "Haptic Feedback", "link": "/features/haptic_feedback" }, 185 { "text": "Joystick", "link": "/features/joystick" }, 186 { "text": "LED Indicators", "link": "/features/led_indicators" }, 187 { "text": "MIDI", "link": "/features/midi" }, 188 { "text": "Pointing Device", "link": "/features/pointing_device" }, 189 { "text": "PS/2 Mouse", "link": "/features/ps2_mouse" }, 190 { "text": "Split Keyboard", "link": "/features/split_keyboard" }, 191 { "text": "Stenography", "link": "/features/stenography" }, 192 { "text": "Wireless", "link": "/features/wireless" } 193 ] 194 }, 195 { 196 "text": "Keyboard Building", 197 "items": [ 198 { "text": "Easy Maker for One Offs", "link": "/easy_maker" }, 199 { "text": "Porting Keyboards", "link": "/porting_your_keyboard_to_qmk" }, 200 { "text": "Hand Wiring Guide", "link": "/hand_wire" }, 201 { "text": "ISP Flashing Guide", "link": "/isp_flashing_guide" } 202 ] 203 } 204 ] 205 }, 206 { 207 "text": "Developing QMK", 208 "items": [ 209 { "text": "PR Checklist", "link": "/pr_checklist" }, 210 { 211 "text": "Breaking Changes", 212 "items": [ 213 { "text": "Overview", "link": "/breaking_changes" }, 214 { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, 215 { 216 "text": "Most Recent ChangeLog", 217 "link": "/ChangeLog/20251130" 218 }, 219 { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, 220 { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } 221 ] 222 }, 223 224 { 225 "text": "C Development", 226 "items": [ 227 { "text": "ARM Debugging Guide", "link": "/arm_debugging" }, 228 { "text": "Coding Conventions", "link": "/coding_conventions_c" }, 229 { "text": "Compatible Microcontrollers", "link": "/compatible_microcontrollers" }, 230 { 231 "text": "Drivers", 232 "link": "hardware_drivers", 233 "items": [ 234 { "text": "ADC Driver", "link": "/drivers/adc" }, 235 { "text": "APA102 Driver", "link": "/drivers/apa102" }, 236 { "text": "Audio Driver", "link": "/drivers/audio" }, 237 { "text": "Battery Driver", "link": "/drivers/battery" }, 238 { "text": "EEPROM Driver", "link": "/drivers/eeprom" }, 239 { "text": "Flash Driver", "link": "/drivers/flash" }, 240 { "text": "I2C Driver", "link": "/drivers/i2c" }, 241 { "text": "'serial' Driver", "link": "/drivers/serial" }, 242 { "text": "SPI Driver", "link": "/drivers/spi" }, 243 { "text": "UART Driver", "link": "/drivers/uart" }, 244 { "text": "WS2812 Driver", "link": "/drivers/ws2812" } 245 ] 246 }, 247 { "text": "GPIO Controls", "link": "/drivers/gpio" }, 248 { "text": "Keyboard Guidelines", "link": "/hardware_keyboard_guidelines" } 249 ] 250 }, 251 252 { 253 "text": "Python Development", 254 "items": [ 255 { "text": "Coding Conventions", "link": "/coding_conventions_python" }, 256 { "text": "QMK CLI Development", "link": "/cli_development" } 257 ] 258 }, 259 260 { 261 "text": "Configurator Development", 262 "items": [ 263 { 264 "text": "QMK API", 265 "items": [ 266 { "text": "Development Environment", "link": "/api_development_environment" }, 267 { "text": "Architecture Overview", "link": "/api_development_overview" } 268 ] 269 } 270 ] 271 }, 272 273 { 274 "text": "Hardware Platform Development", 275 "items": [ 276 { 277 "text": "Arm/ChibiOS", 278 "items": [ 279 { "text": "Selecting an MCU", "link": "/platformdev_selecting_arm_mcu" }, 280 { "text": "Early initialization", "link": "/platformdev_chibios_earlyinit" }, 281 { "text": "Raspberry Pi RP2040", "link": "/platformdev_rp2040" }, 282 { "text": "Proton C", "link": "/platformdev_proton_c" }, 283 { "text": "WeAct Blackpill F4x1", "link": "/platformdev_blackpill_f4x1" } 284 ] 285 } 286 ] 287 }, 288 289 { 290 "text": "QMK Reference", 291 "items": [ 292 { "text": "Contributing to QMK", "link": "/contributing" }, 293 { "text": "Config Options", "link": "/config_options" }, 294 { "text": "Data Driven Configuration", "link": "/data_driven_config" }, 295 { "text": "Make Documentation", "link": "/getting_started_make_guide" }, 296 { "text": "Documentation Best Practices", "link": "/documentation_best_practices" }, 297 { "text": "Documentation Templates", "link": "/documentation_templates" }, 298 { "text": "Community Layouts", "link": "/feature_layouts" }, 299 { "text": "Unit Testing", "link": "/unit_testing" }, 300 { "text": "Useful Functions", "link": "/ref_functions" }, 301 { "text": "info.json Format", "link": "/reference_info_json" } 302 ] 303 }, 304 305 { 306 "text": "For a Deeper Understanding", 307 "items": [ 308 { "text": "How Keyboards Work", "link": "/how_keyboards_work" }, 309 { "text": "How a Matrix Works", "link": "/how_a_matrix_works" }, 310 { "text": "Understanding QMK", "link": "/understanding_qmk" } 311 ] 312 } 313 ] 314 } 315]