From 7da34d338d606ed8c7a84bdf0396dff05fb62c3c Mon Sep 17 00:00:00 2001 From: kemonine Date: Wed, 16 Sep 2020 20:07:01 -0400 Subject: [PATCH] Enable mouse keys for kemonine and adjust firmware accordingly --- firmware/alt/kemonine/qmk/keymap.c | 69 +++++++++++++++++- firmware/alt/kemonine/qmk/keymap.json | 1 - .../kemonine/qmk/massdrop_alt_kemonine.bin | Bin 44872 -> 47096 bytes firmware/alt/kemonine/qmk/rules.mk | 1 + 4 files changed, 67 insertions(+), 4 deletions(-) delete mode 100644 firmware/alt/kemonine/qmk/keymap.json create mode 100644 firmware/alt/kemonine/qmk/rules.mk diff --git a/firmware/alt/kemonine/qmk/keymap.c b/firmware/alt/kemonine/qmk/keymap.c index ff7c84d8..eac793d9 100644 --- a/firmware/alt/kemonine/qmk/keymap.c +++ b/firmware/alt/kemonine/qmk/keymap.c @@ -1,5 +1,11 @@ +#include "debug.h" +#include "action_layer.h" +#include "version.h" + #include QMK_KEYBOARD_H +#define CAPS_LED 30 + enum alt_keycodes { U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active U_T_AGCR, //USB Toggle Automatic GCR control @@ -11,6 +17,7 @@ enum alt_keycodes { }; keymap_config_t keymap_config; +rgb_config_t rgb_matrix_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_65_ansi_blocker(KC_GESC, 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_BSPC, KC_HOME, @@ -19,14 +26,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_65_ansi_blocker(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_DEL, KC_DEL, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, - KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, + KC_NO, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PLAY_PAUSE, KC_RSFT, RGB_VAI, KC_MUTE, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_VOLD, RGB_VAD, KC_VOLU) + KC_TRNS, KC_TRNS, KC_MS_BTN2, KC_MS_BTN1, KC_NO, KC_TRNS, KC_VOLD, RGB_VAD, KC_VOLU) +}; + +const uint8_t PROGMEM layercolors[][2] = { + [0] = {10,255} +}; + +const uint8_t PROGMEM ledcolors[][DRIVER_LED_TOTAL][3] = { + [1] = { + {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, + {128, 255, 255}, {0, 0, 0}, {0, 0, 0}, {128, 255, 255}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {128, 255, 255}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {128, 255, 255}, + {0, 0, 0}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {128, 255, 255}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {128, 255, 255}, + {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {128, 255, 255}, {0, 0, 0}, {128, 255, 255}, {128, 255, 255}, + {0, 0, 0}, {0, 0, 0}, {128, 255, 255}, {128, 255, 255}, {0, 0, 0}, {0, 0, 0},{128, 255, 255}, {128, 255, 255}, {128, 255, 255} + } }; // Runs just one time when the keyboard initializes. void matrix_init_user(void) { + rgb_matrix_config.raw = pgm_read_dword(EECONFIG_RGB_MATRIX); + rgb_matrix_enable(); rgb_matrix_sethsv(10, 255, 95); rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR); @@ -36,6 +59,46 @@ void matrix_init_user(void) { void matrix_scan_user(void) { }; +void set_leds_color( int layer) { + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + uint8_t val = pgm_read_byte(&ledcolors[layer][i][2]); + // if the brightness of the led is set to 0 in the map, + // the value is not overriden with global controls, allowing the led + // to appear turned off + HSV hsv = { .h = pgm_read_byte(&ledcolors[layer][i][0]), .s = pgm_read_byte(&ledcolors[layer][i][1]), .v = val == 0 ? 0 : rgb_matrix_config.hsv.v}; + RGB rgb = hsv_to_rgb( hsv ); + rgb_matrix_set_color( i, rgb.r, rgb.g, rgb.b ); + } +} + +void set_layer_color( uint8_t layer ) { + HSV hsv = { .h = pgm_read_byte(&layercolors[layer][0]), .s = pgm_read_byte(&layercolors[layer][1]), .v = rgb_matrix_config.hsv.v}; + RGB rgb = hsv_to_rgb( hsv ); + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + rgb_matrix_set_color( i, rgb.r, rgb.g, rgb.b ); + } +} + +void rgb_matrix_indicators_user(void) { + uint32_t mode = rgblight_get_mode(); + // assign colors if the matrix is on and the current mode + // is SOLID COLORS => No animations running + if(rgb_matrix_config.enable == 1 && mode == RGB_MATRIX_SOLID_COLOR) { + uint8_t layer = biton32(layer_state); + switch (layer) { + case 0: + set_layer_color(0); + break; + case 1: + set_leds_color(1); + break; + } + } + if (host_keyboard_leds() & (1<. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n","keyboard":"massdrop/alt","keymap":"massdrop_alt_layout_65_ansi_blocker_kmn","layout":"LAYOUT_65_ansi_blocker","layers":[["KC_GESC","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_BSPC","KC_HOME","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_BSLS","KC_PGUP","ANY(LM(LAYER_1, MOD_LALT))","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_PGDN","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RSFT","KC_UP","KC_END","KC_LCTL","KC_LGUI","KC_LALT","KC_SPC","MO(1)","KC_RALT","KC_LEFT","KC_DOWN","KC_RGHT"],["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_DEL","KC_DEL","KC_CAPS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PSCR","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_INS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","ANY(KC_MEDIA_PLAY_PAUSE)","KC_RSFT","RGB_VAI","KC_MUTE","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_TRNS","KC_VOLD","RGB_VAD","KC_VOLU"]],"author":""} \ No newline at end of file diff --git a/firmware/alt/kemonine/qmk/massdrop_alt_kemonine.bin b/firmware/alt/kemonine/qmk/massdrop_alt_kemonine.bin index d506c25707c53bc8953c58ce83b238ce22ad3b09..37324d0c95a59520ea53290a9fa5c4c4e078b505 100644 GIT binary patch delta 28522 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 diff --git a/firmware/alt/kemonine/qmk/rules.mk b/firmware/alt/kemonine/qmk/rules.mk new file mode 100644 index 00000000..35591533 --- /dev/null +++ b/firmware/alt/kemonine/qmk/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = yes \ No newline at end of file