aboutsummaryrefslogtreecommitdiff
path: root/docs/custom_quantum_functions.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/custom_quantum_functions.md')
-rw-r--r--docs/custom_quantum_functions.md35
1 files changed, 33 insertions, 2 deletions
diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md
index 6d741b6cb..9a1c486df 100644
--- a/docs/custom_quantum_functions.md
+++ b/docs/custom_quantum_functions.md
@@ -135,9 +135,11 @@ void led_set_user(uint8_t usb_led) {
135* Keyboard/Revision: `void led_set_kb(uint8_t usb_led)` 135* Keyboard/Revision: `void led_set_kb(uint8_t usb_led)`
136* Keymap: `void led_set_user(uint8_t usb_led)` 136* Keymap: `void led_set_user(uint8_t usb_led)`
137 137
138
138# Matrix Initialization Code 139# Matrix Initialization Code
139 140
140Before a keyboard can be used the hardware must be initialized. QMK handles initialization of the keyboard matrix itself, but if you have other hardware like LED's or i²c controllers you will need to set up that hardware before it can be used. 141Before a keyboard can be used the hardware must be initialized. QMK handles initialization of the keyboard matrix itself, but if you have other hardware like LED's or i²c controllers you will need to set up that hardware before it can be used.
142
141 143
142### Example `matrix_init_user()` Implementation 144### Example `matrix_init_user()` Implementation
143 145
@@ -177,9 +179,38 @@ This function gets called at every matrix scan, which is basically as often as t
177You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LED's or a display) or other functionality that you want to trigger regularly even when the user isn't typing. 179You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LED's or a display) or other functionality that you want to trigger regularly even when the user isn't typing.
178 180
179 181
182# Keyboard Idling/Wake Code
183
184If the board supports it, it can be "idled", by stopping a number of functions. A good example of this is RGB lights or backlights. This can save on power consumption, or may be better behavior for your keyboard.
185
186This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_init_*`, which are called when the system is board is idled and when it wakes up, respectively.
187
188
189### Example suspend_power_down_user() and suspend_wakeup_init_user() Implementation
190
191This example, at the keyboard level, sets up B1, B2, and B3 as LED pins.
192
193```
194void suspend_power_down_user(void)
195{
196 rgb_matrix_set_suspend_state(true);
197}
198
199void suspend_wakeup_init_user(void)
200{
201 rgb_matrix_set_suspend_state(false);
202}
203
204```
205
206### `keyboard_init_*` Function Documentation
207
208* Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
209* Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
210
180# Layer Change Code 211# Layer Change Code
181 212
182Thir runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling. 213This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling.
183 214
184### Example `layer_state_set_*` Implementation 215### Example `layer_state_set_*` Implementation
185 216