diff options
Diffstat (limited to 'keyboards')
53 files changed, 2681 insertions, 22164 deletions
diff --git a/keyboards/atreus62/atreus62.h b/keyboards/atreus62/atreus62.h index ca5cda8a89..d0bf68adcc 100644 --- a/keyboards/atreus62/atreus62.h +++ b/keyboards/atreus62/atreus62.h @@ -35,8 +35,8 @@ void promicro_bootloader_jmp(bool program); { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_NO, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b }, \ { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_NO, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b }, \ { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_NO, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b }, \ - { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k46, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \ - { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k47, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \ + { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k47, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \ + { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k46, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \ } #endif diff --git a/keyboards/atreus62/keymaps/atreus52/Makefile b/keyboards/atreus62/keymaps/atreus52/Makefile new file mode 100644 index 0000000000..efa309d201 --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/Makefile @@ -0,0 +1,4 @@ +NKRO_ENABLE = true +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no diff --git a/keyboards/atreus62/keymaps/atreus52/README.md b/keyboards/atreus62/keymaps/atreus52/README.md new file mode 100644 index 0000000000..245df7deb4 --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/README.md @@ -0,0 +1,10 @@ +<!-- -*- mode: markdown; fill-column: 8192 -*- --> + +Atreus52 Modification +======================= + +Firmware for my custom keyboard based on the Atreus layout, but with 5 rows and only 5 columns per hand. +More documentation coming soon. + +# License + GPL-3+ diff --git a/keyboards/atreus62/keymaps/atreus52/config.h b/keyboards/atreus62/keymaps/atreus52/config.h new file mode 100644 index 0000000000..ba0eaf0dbb --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/config.h @@ -0,0 +1,18 @@ +#include "../../config.h" + +#undef MANUFACTURER +#undef PRODUCT +#undef DESCRIPTION +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS +#undef DIODE_DIRECTION + +/* USB Device descriptor parameter */ +#define MANUFACTURER Mesh Industries +#define PRODUCT Atreus52 Treeboard +#define DESCRIPTION q.m.k. keyboard firmware for Atreus52 + +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c new file mode 100644 index 0000000000..4adfb9e3c8 --- /dev/null +++ b/keyboards/atreus62/keymaps/atreus52/keymap.c @@ -0,0 +1,99 @@ +#include "atreus62.h" + +// Layers +#define DVORAK 0 +#define QWERTY 1 +#define RAISE 2 +#define LOWER 3 +#define BDO 4 +#define RESETL 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[DVORAK] = KC_KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ + NO, A, O, E, U, I, D, H, T, N, S, NO, \ + NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ + NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + +[QWERTY] = KC_KEYMAP( + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ + NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ + NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ + NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ), + +[RAISE] = KC_KEYMAP( + NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ + NO, TILD, GRV, LCBR, RCBR, DQUO, QUOT, EQL, PLUS, MINS, QUES, NO, \ + NO, ESC, TAB, LPRN, RPRN, BSLS, SLSH, LEFT, DOWN, UP, RGHT, NO, \ + NO, TRNS, TRNS, LBRC, RBRC, TRNS, INS, PIPE, UNDS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN3, NO ), + +[LOWER] = KC_KEYMAP( + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ + NO, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, NO, \ + NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \ + NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ), + +[BDO] = KC_KEYMAP( + NO, ESC, 1, 2, 3, 4, 5, 0, SLSH, U, C, NO, \ + NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \ + NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \ + NO, T, Z, X, C, V, 8, B, N, M, L, NO, \ + NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, FN2, NO ), + +[RESETL] = KEYMAP( + KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN3,KC_NO ) + +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer + [1] = ACTION_LAYER_MOMENTARY(LOWER), // Lower layer + [2] = ACTION_LAYER_TOGGLE(BDO), // BDO layer + [3] = ACTION_LAYER_TOGGLE(RESETL) // RESET layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } + else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +static uint8_t qw_dv_swap_state = 0; + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + if (keycode == KC_LGUI) { + if (record->event.pressed) + qw_dv_swap_state |= 0b00000001; + else + qw_dv_swap_state &= ~(0b00000001); + } + if (keycode == KC_LCTL) { + if (record->event.pressed) + qw_dv_swap_state |= 0b00000010; + else + qw_dv_swap_state &= ~(0b00000010); + } + + if (qw_dv_swap_state == 0b00000011) { + layer_invert(DVORAK); + } + return true; +} diff --git a/keyboards/arrow_pad/Makefile b/keyboards/handwired/arrow_pad/Makefile index 4e2a6f00fd..4e2a6f00fd 100644 --- a/keyboards/arrow_pad/Makefile +++ b/keyboards/handwired/arrow_pad/Makefile diff --git a/keyboards/arrow_pad/arrow_pad.c b/keyboards/handwired/arrow_pad/arrow_pad.c index 381934aa88..381934aa88 100644 --- a/keyboards/arrow_pad/arrow_pad.c +++ b/keyboards/handwired/arrow_pad/arrow_pad.c diff --git a/keyboards/arrow_pad/arrow_pad.h b/keyboards/handwired/arrow_pad/arrow_pad.h index 62882b9b54..62882b9b54 100644 --- a/keyboards/arrow_pad/arrow_pad.h +++ b/keyboards/handwired/arrow_pad/arrow_pad.h diff --git a/keyboards/arrow_pad/config.h b/keyboards/handwired/arrow_pad/config.h index 3d8d8709a5..3d8d8709a5 100644 --- a/keyboards/arrow_pad/config.h +++ b/keyboards/handwired/arrow_pad/config.h diff --git a/keyboards/arrow_pad/keymaps/default/keymap.c b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c index 5647f75afe..5647f75afe 100644 --- a/keyboards/arrow_pad/keymaps/default/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c diff --git a/keyboards/arrow_pad/keymaps/pad_21/Makefile b/keyboards/handwired/arrow_pad/keymaps/pad_21/Makefile index af51976a89..af51976a89 100644 --- a/keyboards/arrow_pad/keymaps/pad_21/Makefile +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/Makefile diff --git a/keyboards/arrow_pad/keymaps/pad_21/config.h b/keyboards/handwired/arrow_pad/keymaps/pad_21/config.h index a095e87374..a095e87374 100644 --- a/keyboards/arrow_pad/keymaps/pad_21/config.h +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/config.h diff --git a/keyboards/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c index 28917a5d9e..28917a5d9e 100644 --- a/keyboards/arrow_pad/keymaps/pad_21/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c diff --git a/keyboards/arrow_pad/keymaps/pad_24/Makefile b/keyboards/handwired/arrow_pad/keymaps/pad_24/Makefile index e31bfe1af2..e31bfe1af2 100644 --- a/keyboards/arrow_pad/keymaps/pad_24/Makefile +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/Makefile diff --git a/keyboards/arrow_pad/keymaps/pad_24/config.h b/keyboards/handwired/arrow_pad/keymaps/pad_24/config.h index e940acaa0c..e940acaa0c 100644 --- a/keyboards/arrow_pad/keymaps/pad_24/config.h +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/config.h diff --git a/keyboards/arrow_pad/keymaps/pad_24/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c index 5647f75afe..5647f75afe 100644 --- a/keyboards/arrow_pad/keymaps/pad_24/keymap.c +++ b/keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c diff --git a/keyboards/arrow_pad/readme.md b/keyboards/handwired/arrow_pad/readme.md index d0d172272e..d0d172272e 100644 --- a/keyboards/arrow_pad/readme.md +++ b/keyboards/handwired/arrow_pad/readme.md diff --git a/keyboards/arrow_pad/rules.mk b/keyboards/handwired/arrow_pad/rules.mk index 3dca9b6ea7..3dca9b6ea7 100644 --- a/keyboards/arrow_pad/rules.mk +++ b/keyboards/handwired/arrow_pad/rules.mk diff --git a/keyboards/infinity60/config.h b/keyboards/infinity60/config.h index f8346fe165..83930901cb 100644 --- a/keyboards/infinity60/config.h +++ b/keyboards/infinity60/config.h @@ -54,7 +54,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. //#define INFINITY_PROTOTYPE /* Keymap for Infinity 1.1a (first revision with LED support) */ -//#define INFINITY_LED +#define INFINITY_LED /* * Feature disable options diff --git a/keyboards/infinity60/halconf.h b/keyboards/infinity60/halconf.h index 46b37a4f46..f89dfc2e1e 100644 --- a/keyboards/infinity60/halconf.h +++ b/keyboards/infinity60/halconf.h @@ -76,7 +76,7 @@ * @brief Enables the I2C subsystem. */ #if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE +#define HAL_USE_I2C TRUE #endif /** @@ -139,7 +139,7 @@ * @brief Enables the SERIAL over USB subsystem. */ #if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE +#define HAL_USE_SERIAL_USB FALSE #endif /** diff --git a/keyboards/infinity60/keymaps/jpetermans/Makefile b/keyboards/infinity60/keymaps/jpetermans/Makefile new file mode 100644 index 0000000000..df3d1e952f --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/Makefile @@ -0,0 +1,4 @@ + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/infinity60/keymaps/jpetermans/config.h b/keyboards/infinity60/keymaps/jpetermans/config.h new file mode 100644 index 0000000000..72a2ed0810 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/config.h @@ -0,0 +1,11 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + + +#include "../../config.h" + +//overrides +#undef TAPPING_TOGGLE +#define TAPPING_TOGGLE 2 + +#endif diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c new file mode 100644 index 0000000000..59249ff728 --- /dev/null +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -0,0 +1,304 @@ +#include "infinity60.h" +#include "led_controller.h" + +//Helpful Defines +#define _______ KC_TRNS + +//Define Layer Names +#define _BASE 0 +#define _NUMPAD 1 +#define _FNAV 2 +#define _MEDIA 3 +#define _TILDE 4 + +//IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles +#define max_pages 6 + +enum ic60_keycodes { + NUMPAD, + FNAV, + MEDIA, + TILDE, + CTLALTDEL, + BACKLIGHT, + BRIGHT, + DIM, + ALL, + GAME, + MODE_SINGLE, + MODE_PAGE, + MODE_FLASH +}; + +uint8_t current_layer_global = 0; +uint8_t led_mode_global = MODE_SINGLE; +uint8_t backlight_status_global = 1; //init on/off state of backlight +uint32_t led_layer_state = 0; + +/* ================================== + * KEYMAPS + * ==================================*/ + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui | FN | Ctrl | + * `-----------------------------------------------------------' + */ + /* default */ + [_BASE] = KEYMAP( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_NO,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \ + TT(_FNAV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,F(TILDE),KC_NO, \ + KC_LCTL, KC_LGUI,KC_LALT, LT(_FNAV, KC_SPC), KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL \ + ), + + /* numpad */ + [_NUMPAD] = KEYMAP( \ + _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______, \ + MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO, \ + _______,_______,_______, TO(_BASE), _______,_______,_______,_______ \ + ), + + /* F-, arrow, and media keys */ + [_FNAV] = KEYMAP( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_NO,\ + KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, \ + _______,_______,KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \ + _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, \ + _______,_______,_______, _______, F(CTLALTDEL),KC_NLCK,_______,_______ \ + ), + + /* media */ + [_MEDIA] = KEYMAP( \ + _______,F(MODE_SINGLE),F(MODE_PAGE),F(MODE_FLASH),_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,F(GAME),_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,F(ALL) ,F(BRIGHT),F(DIM),F(BACKLIGHT),_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ + _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ + ), + /* ~ */ + [_TILDE] = KEYMAP( \ + KC_GRV,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, \ + _______,_______,_______, _______, _______,_______, _______,_______ \ + ), + /* template */ + [5] = KEYMAP( \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \ + _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, \ + _______,_______,_______, _______, _______,_______, _______,_______ \ + ), +}; + +//id for user defined functions and macros +enum function_id { + NONE, +}; + +enum macro_id { + ACTION_LEDS_ALL, + ACTION_LEDS_GAME, + ACTION_LEDS_BACKLIGHT, + ACTION_LEDS_BRIGHT, + ACTION_LEDS_DIM, + ACTION_LEDS_SINGLE, + ACTION_LEDS_PAGE, + ACTION_LEDS_FLASH +}; + +/* ================================== + * LED MAPPING + * ==================================*/ + +/* + Infinity60 LED MAP + 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27* + 28 31 32 33 34 35 36 37 38 41 42 43 44 45 + 46 47 48 51 52 53 54 55 56 57 58 61 62 + 63 64 65 66 67 68 71 72 73 74 75 76 77* + 78 81 82 83 84 85 86 87 + *Unused in Alphabet Layout +*/ + +//======== full page arrays ========= +//any change in array size needs to be mirrored in matrix_init_user +uint8_t led_numpad[16] = { + 18,21,22,23, + 37,38,41,42, + 55,56,57,58, + 72,73,74,75 +}; +//LED Page 2 - _Nav +uint8_t led_nav[12] = { + 38, + 47,48, 55,56,57, + 64,65,66 +}; +//LED Page 3 - _Media +uint8_t led_media[15] = { + 12,13,14, 23,24,25, + 65,66,67,68, 73,74,75, + 83, 86 +}; +//LED Page 4 - _Game "WASD" +uint8_t led_game[5] = { + 11, + 32, + 47,48,51 +}; + +//======== qmk functions ========= +const uint16_t fn_actions[] = { + [CTLALTDEL] = ACTION_KEY(LALT(LCTL(KC_DEL))), + [TILDE] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT), + [ALL] = ACTION_FUNCTION(ACTION_LEDS_ALL), + [GAME] = ACTION_FUNCTION(ACTION_LEDS_GAME), + [BACKLIGHT] = ACTION_FUNCTION(ACTION_LEDS_BACKLIGHT), + [BRIGHT] = ACTION_FUNCTION(ACTION_LEDS_BRIGHT), + [DIM] = ACTION_FUNCTION(ACTION_LEDS_DIM), + [MODE_SINGLE] = ACTION_FUNCTION(ACTION_LEDS_SINGLE), + [MODE_PAGE] = ACTION_FUNCTION(ACTION_LEDS_PAGE), + [MODE_FLASH] = ACTION_FUNCTION(ACTION_LEDS_FLASH), +}; + +/* custom action function */ +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + msg_t msg; + + switch(id) { + case ACTION_LEDS_ALL: + if(record->event.pressed) { + led_mode_global = led_mode_global == ALL ? MODE_SINGLE : ALL; + msg=TOGGLE_ALL; + chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); + } + break; + + case ACTION_LEDS_BACKLIGHT: + if(record->event.pressed) { + backlight_status_global ^= 1; + msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT; + |