You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.2 KiB
C
123 lines
3.2 KiB
C
#include "cluepad.h"
|
|
|
|
#include "backlight.h"
|
|
#include "rgblight.h"
|
|
|
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
|
// entirely and just use numbers.
|
|
#define _BL 0
|
|
#define _FL 1
|
|
#define _RS 2
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
/* Keymap _BL: (Base Layer) Default Layer
|
|
* .-------------------.
|
|
* |NL F| /| *| -|
|
|
* |-------------------|
|
|
* | 7| 8| 9| |
|
|
* |--------------| |
|
|
* | 4| 5| 6| +|
|
|
* |-------------------|
|
|
* | 1| 2| 3| |
|
|
* |--------------| |
|
|
* | 0| .| Ent|
|
|
* '-------------------'
|
|
*/
|
|
[_BL] = KEYMAP(
|
|
LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \
|
|
KC_P7, KC_P8, KC_P9, KC_PPLS, \
|
|
KC_P4, KC_P5, KC_P6, \
|
|
KC_P1, KC_P2, KC_P3, KC_PENT, \
|
|
KC_P0, KC_PDOT),
|
|
|
|
/* Keymap _FL: Function Layer
|
|
* .-------------------.
|
|
* |NL F| | | Fn0|
|
|
* |-------------------|
|
|
* | | Fn4| | |
|
|
* |--------------| |
|
|
* | Fn3|BL_S| Fn2| Fn6|
|
|
* |-------------------|
|
|
* | | Fn5| | |
|
|
* |--------------| |
|
|
* | Fn1| | Fn7|
|
|
* '-------------------'
|
|
*/
|
|
[_FL] = KEYMAP(
|
|
LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, F(0), \
|
|
KC_TRNS, F(4), KC_TRNS, F(6), \
|
|
F(3), BL_STEP, F(2), \
|
|
KC_TRNS, F(5), KC_TRNS, F(7), \
|
|
F(1), KC_TRNS)
|
|
};
|
|
|
|
enum function_id {
|
|
RGBLED_TOGGLE,
|
|
RGBLED_STEP_MODE,
|
|
RGBLED_INCREASE_HUE,
|
|
RGBLED_DECREASE_HUE,
|
|
RGBLED_INCREASE_SAT,
|
|
RGBLED_DECREASE_SAT,
|
|
RGBLED_INCREASE_VAL,
|
|
RGBLED_DECREASE_VAL,
|
|
};
|
|
|
|
const uint16_t PROGMEM fn_actions[] = {
|
|
[0] = ACTION_FUNCTION(RGBLED_TOGGLE),
|
|
[1] = ACTION_FUNCTION(RGBLED_STEP_MODE),
|
|
[2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
|
|
[3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
|
|
[4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
|
|
[5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
|
|
[6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
|
|
[7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
|
|
};
|
|
|
|
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
|
switch (id) {
|
|
case RGBLED_TOGGLE:
|
|
if (record->event.pressed) {
|
|
rgblight_toggle();
|
|
}
|
|
break;
|
|
case RGBLED_INCREASE_HUE:
|
|
if (record->event.pressed) {
|
|
rgblight_increase_hue();
|
|
}
|
|
break;
|
|
case RGBLED_DECREASE_HUE:
|
|
if (record->event.pressed) {
|
|
rgblight_decrease_hue();
|
|
}
|
|
break;
|
|
case RGBLED_INCREASE_SAT:
|
|
if (record->event.pressed) {
|
|
rgblight_increase_sat();
|
|
}
|
|
break;
|
|
case RGBLED_DECREASE_SAT:
|
|
if (record->event.pressed) {
|
|
rgblight_decrease_sat();
|
|
}
|
|
break;
|
|
case RGBLED_INCREASE_VAL:
|
|
if (record->event.pressed) {
|
|
rgblight_increase_val();
|
|
}
|
|
break;
|
|
case RGBLED_DECREASE_VAL:
|
|
if (record->event.pressed) {
|
|
rgblight_decrease_val();
|
|
}
|
|
break;
|
|
case RGBLED_STEP_MODE:
|
|
if (record->event.pressed) {
|
|
rgblight_step();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|