# LED (Mono color backlight) Want your keyboard to shine? Add some lights! ## [Keycodes] |Key |Aliases |Description | |-----------------------------|-------------------|----------------------------| |`KC.LED_TOG` | |Toggles LED's | |`KC.LED_INC` | |Increase Brightness | |`KC.LED_DEC` | |Decrease Brightness | |`KC.LED_ANI` | |Increase animation speed | |`KC.LED_AND` | |Decrease animation speed | |`KC.LED_MODE_PLAIN` |`LED_M_P` |Static LED's | |`KC.LED_MODE_BREATHE` |`LED_M_B` |Breathing animation | ## Configuration |Define |Default |Description | |-----------------------------------------|-------------|------------------------------------------------| |`keyboard.led_config['brightness_step']` |`5` |The number of steps to change the brightness by | |`keyboard.led_config['brightness_limit']`|`100` |The maximum brightness level in percent | ## Built-in Animation Configuration |Define |Default |Description | |-----------------------------------------|-------------|-------------------------------------------------------------------------------------| |`keyboard.led_config['breath_center']` |`1.5` |Used to calculate the curve for the breathing animation. Anywhere from 1.0 - 2.7 is valid| ## Functions If you want to create your own animations, or for example, change the lighting in a macro, or a layer switch, here are some functions that are available. |Function |Description | |--------------------------------------------|--------------------------------------------------------------------------------------------| |`keyboard.pixels.increase_brightness(step)` |Increases hue by a given step | |`keyboard.pixels.decrease_brightness(step)` |Decreases hue by a given step | |`keyboard.pixels.set_brightness(percent)` |Increases saturation by a given step | ## Direct variable access |Define |Default |Description | |-----------------------------------|-----------|--------------------------------------------------------------------------------------------------------| |`keyboard.led.brightness` |`0` |Sets the brightness by percent 0-100 | |`keyboard.led.brightness_limit` |`100` |Sets the limit of brightness | |`keyboard.led.brightness_step` |`5` |Sets the step value to change brightness by | |`keyboard.led.animation_mode` |`static` |This can be changed to any modes included, or to something custom for user animations. Any string is valid | |`keyboard.led.animation_speed` |`1` |Increases animation speed of most animations. Recommended 1-5, Maximum 10. | ## User animations User animations can be created as well. An example of a light show would look like this ```python from kmk.keys import make_key def start_flicker(*args, **kwargs): # Setting mode to user will use the user animation keyboard.led.animation_mode = 'user' def flicker(self): # This is the code that is run every cycle that can serve as an animation # Refer to the kmk/rgb.py for actual examples of what has been done if self.brightness == 0: self.brightness = 100 else: self.brightness = 0 keyboard.led.set_brightness(self.brightness) return self # This is what "gives" your function to KMK so it knows what your animation code is keyboard.led_config['user_animation'] = flicker # Makes a key that would start your animation LS = make_key(on_press=start_flicker()) keymap = [...LS,...] ``` # Troubleshooting Make sure that your board supports LED backlight by checking for a line with "LED_PIN". If it does not, you can add it to your keymap. |Define |Description | |---------------------|---------------------------------------------| |`keyboard.led_pin` |The pin connected to the data pin of the LEDs|