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