Compare commits
5 Commits
e14aa9223b
...
1ad5d63b8b
| Author | SHA1 | Date | |
|---|---|---|---|
| 1ad5d63b8b | |||
|
|
d9f575fa86 | ||
|
|
89e3c4c0da | ||
|
|
f3ac73f6cf | ||
|
|
b6657f6a7b |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -82,7 +82,7 @@ user_song_list.h
|
||||
/util/win_downloaded
|
||||
/users/
|
||||
/layouts/
|
||||
/keyboards/
|
||||
/keyboards/*
|
||||
!/keyboards/ergodox_ez/
|
||||
!/keyboards/planck/
|
||||
!/keyboards/moonlander/
|
||||
|
||||
@@ -45,7 +45,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define OLATB 0x15
|
||||
|
||||
extern i2c_status_t mcp23018_status;
|
||||
#define ERGODOX_EZ_I2C_TIMEOUT 100
|
||||
#ifndef ERGODOX_EZ_I2C_TIMEOUT
|
||||
# define ERGODOX_EZ_I2C_TIMEOUT 80
|
||||
#endif
|
||||
|
||||
void init_ergodox(void);
|
||||
void ergodox_blink_all_leds(void);
|
||||
|
||||
@@ -21,13 +21,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
# include "ergodox_ez.h"
|
||||
i2c_status_t i2c_rgblight = 0x20;
|
||||
bool i2c_rgblight = true;
|
||||
extern bool i2c_initialized;
|
||||
# ifndef ERGODOX_RGBLIGHT_TIMEOUT
|
||||
# define ERGODOX_RGBLIGHT_TIMEOUT 5
|
||||
# endif
|
||||
|
||||
void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) {
|
||||
if (i2c_initialized && !mcp23018_status) {
|
||||
if (!i2c_rgblight) i2c_rgblight = i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT);
|
||||
|
||||
if (i2c_initialized && !mcp23018_status && i2c_rgblight) {
|
||||
if (i2c_start(0x84, ERGODOX_RGBLIGHT_TIMEOUT)) {
|
||||
i2c_rgblight = false;
|
||||
i2c_stop();
|
||||
} else {
|
||||
uint8_t i = 0;
|
||||
# if defined(ERGODOX_LED_30)
|
||||
// prevent right-half code from trying to bitbang all 30
|
||||
@@ -42,15 +47,16 @@ void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) {
|
||||
# endif
|
||||
{
|
||||
uint8_t *data = (uint8_t *)(led + i);
|
||||
if (!i2c_rgblight) i2c_rgblight = i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT);
|
||||
if (!i2c_rgblight) i2c_rgblight = i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT);
|
||||
if (!i2c_rgblight) i2c_rgblight = i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT);
|
||||
i2c_write(*data++, ERGODOX_RGBLIGHT_TIMEOUT);
|
||||
i2c_write(*data++, ERGODOX_RGBLIGHT_TIMEOUT);
|
||||
i2c_write(*data++, ERGODOX_RGBLIGHT_TIMEOUT);
|
||||
# ifdef RGBW
|
||||
if (!i2c_rgblight) i2c_rgblight = i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT);
|
||||
i2c_write(*data++, ERGODOX_RGBLIGHT_TIMEOUT);
|
||||
# endif
|
||||
}
|
||||
i2c_stop();
|
||||
}
|
||||
}
|
||||
|
||||
ws2812_setleds(led, led_num);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ static void select_row(uint8_t row);
|
||||
|
||||
static uint8_t mcp23018_reset_loop;
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
extern i2c_status_t i2c_rgblight;
|
||||
extern bool i2c_rgblight;
|
||||
#endif
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
@@ -101,7 +101,8 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
rgb_matrix_init(); // re-init driver on reconnect
|
||||
#endif
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
i2c_rgblight = 0x20; // re-enable rgb light
|
||||
i2c_rgblight = true; // re-enable rgb light
|
||||
rgblight_set();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,3 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// If not, then only define 15
|
||||
# define RGBLED_NUM 15 // Number of LEDs
|
||||
#endif
|
||||
|
||||
#ifndef ISSI_TIMEOUT
|
||||
# define ISSI_TIMEOUT 3
|
||||
#endif
|
||||
|
||||
14
keyboards/moonlander/keymaps/jbrechtel/config.h
Normal file
14
keyboards/moonlander/keymaps/jbrechtel/config.h
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
Set any config.h overrides for your specific keymap here.
|
||||
See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
|
||||
*/
|
||||
#define ORYX_CONFIGURATOR
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define USB_SUSPEND_WAKEUP_DELAY 0
|
||||
#define FIRMWARE_VERSION u8"mabMN/9nWB7"
|
||||
#define RAW_USAGE_PAGE 0xFF60
|
||||
#define RAW_USAGE_ID 0x61
|
||||
#define LAYER_STATE_8BIT
|
||||
|
||||
#define RGB_MATRIX_STARTUP_SPD 60
|
||||
|
||||
1
keyboards/moonlander/keymaps/jbrechtel/jbrechtel.json
Normal file
1
keyboards/moonlander/keymaps/jbrechtel/jbrechtel.json
Normal file
@@ -0,0 +1 @@
|
||||
{"keyboard": "moonlander", "keymap": "jbrechtel", "layout": "LAYOUT_moonlander", "layers": [["KC_GRAVE", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "LSFT(KC_INSERT)", "KC_TRANSPARENT", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINUS", "TD(DANCE_0)", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "MO(2)", "KC_TRANSPARENT", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLASH", "OSM(MOD_LCTL)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_TAB", "KC_TRANSPARENT", "KC_H", "KC_J", "KC_K", "KC_L", "KC_COLN", "MT(MOD_LGUI, KC_ENTER)", "KC_LSHIFT", "MT(MOD_LCTL, KC_Z)", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMMA", "KC_DOT", "KC_SCOLON", "KC_RSHIFT", "KC_ESCAPE", "LGUI(KC_TAB)", "LGUI(LSFT(KC_TAB))", "KC_HYPR", "KC_LSHIFT", "LGUI(KC_SPACE)", "LGUI(LSFT(KC_S))", "KC_RSHIFT", "KC_HYPR", "KC_LBRACKET", "KC_RBRACKET", "LT(1,KC_EQUAL)", "KC_SPACE", "MT(MOD_LGUI, KC_BSPACE)", "OSL(1)", "MO(1)", "KC_TRANSPARENT", "KC_SPACE"], ["KC_ESCAPE", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_EXLM", "KC_AT", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_DQUO", "KC_QUOTE", "KC_9", "KC_ASTR", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_HASH", "KC_DLR", "KC_LPRN", "KC_RPRN", "KC_GRAVE", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_CIRC", "KC_LBRACKET", "KC_RBRACKET", "KC_TILD", "KC_MINUS", "KC_SLASH", "KC_BSLASH", "KC_3", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_COMMA", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "RGB_MOD", "RGB_TOG", "KC_TRANSPARENT", "KC_DOT", "KC_LABK", "KC_RABK", "KC_TRANSPARENT", "RGB_VAD", "RGB_VAI", "KC_TRANSPARENT", "KC_TRANSPARENT", "RGB_HUD", "RGB_HUI"], ["KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_SLASH", "KC_LBRACKET", "KC_RBRACKET", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_BSLASH", "KC_LPRN", "KC_RPRN", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "TD(DANCE_1)", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_MINUS", "KC_LCBR", "KC_RCBR", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT"], ["KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_LSHIFT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT"]]}
|
||||
223
keyboards/moonlander/keymaps/jbrechtel/keymap.c
Normal file
223
keyboards/moonlander/keymaps/jbrechtel/keymap.c
Normal file
@@ -0,0 +1,223 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "version.h"
|
||||
#include "keymap_german.h"
|
||||
#include "keymap_nordic.h"
|
||||
#include "keymap_french.h"
|
||||
#include "keymap_spanish.h"
|
||||
#include "keymap_hungarian.h"
|
||||
#include "keymap_swedish.h"
|
||||
#include "keymap_br_abnt2.h"
|
||||
#include "keymap_canadian_multilingual.h"
|
||||
#include "keymap_german_ch.h"
|
||||
#include "keymap_jp.h"
|
||||
#include "keymap_korean.h"
|
||||
#include "keymap_bepo.h"
|
||||
#include "keymap_italian.h"
|
||||
#include "keymap_slovenian.h"
|
||||
#include "keymap_lithuanian_azerty.h"
|
||||
#include "keymap_danish.h"
|
||||
#include "keymap_norwegian.h"
|
||||
#include "keymap_portuguese.h"
|
||||
#include "keymap_contributions.h"
|
||||
#include "keymap_czech.h"
|
||||
#include "keymap_romanian.h"
|
||||
#include "keymap_russian.h"
|
||||
#include "keymap_uk.h"
|
||||
#include "keymap_estonian.h"
|
||||
#include "keymap_belgian.h"
|
||||
#include "keymap_us_international.h"
|
||||
#include "keymap_croatian.h"
|
||||
#include "keymap_turkish_q.h"
|
||||
#include "keymap_slovak.h"
|
||||
|
||||
#define KC_MAC_UNDO LGUI(KC_Z)
|
||||
#define KC_MAC_CUT LGUI(KC_X)
|
||||
#define KC_MAC_COPY LGUI(KC_C)
|
||||
#define KC_MAC_PASTE LGUI(KC_V)
|
||||
#define KC_PC_UNDO LCTL(KC_Z)
|
||||
#define KC_PC_CUT LCTL(KC_X)
|
||||
#define KC_PC_COPY LCTL(KC_C)
|
||||
#define KC_PC_PASTE LCTL(KC_V)
|
||||
#define ES_LESS_MAC KC_GRAVE
|
||||
#define ES_GRTR_MAC LSFT(KC_GRAVE)
|
||||
#define ES_BSLS_MAC ALGR(KC_6)
|
||||
#define NO_PIPE_ALT KC_GRAVE
|
||||
#define NO_BSLS_ALT KC_EQUAL
|
||||
#define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc)
|
||||
#define BP_NDSH_MAC ALGR(KC_8)
|
||||
#define SE_SECT_MAC ALGR(KC_6)
|
||||
#define MOON_LED_LEVEL LED_LEVEL
|
||||
|
||||
enum custom_keycodes {
|
||||
RGB_SLD = ML_SAFE_RANGE,
|
||||
};
|
||||
|
||||
|
||||
enum tap_dance_codes {
|
||||
DANCE_0,
|
||||
DANCE_1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_moonlander(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_INSERT), KC_TRANSPARENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
TD(DANCE_0), KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2), KC_TRANSPARENT, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
|
||||
OSM(MOD_LCTL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_TRANSPARENT, KC_H, KC_J, KC_K, KC_L, KC_COLN, MT(MOD_LGUI, KC_ENTER),
|
||||
KC_LSHIFT, MT(MOD_LCTL, KC_Z),KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SCOLON, KC_RSHIFT,
|
||||
KC_ESCAPE, LGUI(KC_TAB), LGUI(LSFT(KC_TAB)),KC_HYPR, KC_LSHIFT, LGUI(KC_SPACE), LGUI(LSFT(KC_S)),KC_RSHIFT, KC_HYPR, KC_LBRACKET, KC_RBRACKET, LT(1,KC_EQUAL),
|
||||
KC_SPACE, MT(MOD_LGUI, KC_BSPACE),OSL(1), MO(1), KC_TRANSPARENT, KC_SPACE
|
||||
),
|
||||
[1] = LAYOUT_moonlander(
|
||||
KC_ESCAPE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRANSPARENT, KC_TRANSPARENT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_DQUO, KC_QUOTE, KC_9, KC_ASTR, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_TRANSPARENT, KC_TRANSPARENT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_CIRC, KC_LBRACKET, KC_RBRACKET, KC_TILD, KC_MINUS, KC_SLASH, KC_BSLASH, KC_3, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_COMMA, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, RGB_MOD, RGB_TOG, KC_TRANSPARENT, KC_DOT, KC_LABK, KC_RABK, KC_TRANSPARENT,
|
||||
RGB_VAD, RGB_VAI, KC_TRANSPARENT, KC_TRANSPARENT, RGB_HUD, RGB_HUI
|
||||
),
|
||||
[2] = LAYOUT_moonlander(
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_SLASH, KC_LBRACKET, KC_RBRACKET, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_BSLASH, KC_LPRN, KC_RPRN, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
TD(DANCE_1), KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_MINUS, KC_LCBR, KC_RCBR, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
|
||||
),
|
||||
[3] = LAYOUT_moonlander(
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_LSHIFT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
|
||||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
extern rgb_config_t rgb_matrix_config;
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgb_matrix_enable();
|
||||
}
|
||||
|
||||
|
||||
const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = {
|
||||
[1] = { {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214}, {139,244,214} },
|
||||
|
||||
[2] = { {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255}, {74,255,255} },
|
||||
|
||||
};
|
||||
|
||||
void set_layer_color(int layer) {
|
||||
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
|
||||
HSV hsv = {
|
||||
.h = pgm_read_byte(&ledmap[layer][i][0]),
|
||||
.s = pgm_read_byte(&ledmap[layer][i][1]),
|
||||
.v = pgm_read_byte(&ledmap[layer][i][2]),
|
||||
};
|
||||
if (!hsv.h && !hsv.s && !hsv.v) {
|
||||
rgb_matrix_set_color( i, 0, 0, 0 );
|
||||
} else {
|
||||
RGB rgb = hsv_to_rgb( hsv );
|
||||
float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX;
|
||||
rgb_matrix_set_color( i, f * rgb.r, f * rgb.g, f * rgb.b );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
if (keyboard_config.disable_layer_led) { return; }
|
||||
switch (biton32(layer_state)) {
|
||||
case 1:
|
||||
set_layer_color(1);
|
||||
break;
|
||||
case 2:
|
||||
set_layer_color(2);
|
||||
break;
|
||||
default:
|
||||
if (rgb_matrix_get_flags() == LED_FLAG_NONE)
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_mode(1);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
uint8_t step;
|
||||
} tap;
|
||||
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_TAP,
|
||||
DOUBLE_HOLD,
|
||||
DOUBLE_SINGLE_TAP,
|
||||
MORE_TAPS
|
||||
};
|
||||
|
||||
static tap dance_state[2];
|
||||
|
||||
uint8_t dance_step(qk_tap_dance_state_t *state);
|
||||
|
||||
uint8_t dance_step(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) return SINGLE_TAP;
|
||||
else return SINGLE_HOLD;
|
||||
} else if (state->count == 2) {
|
||||
if (state->interrupted) return DOUBLE_SINGLE_TAP;
|
||||
else if (state->pressed) return DOUBLE_HOLD;
|
||||
else return DOUBLE_TAP;
|
||||
}
|
||||
return MORE_TAPS;
|
||||
}
|
||||
|
||||
|
||||
void dance_0_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
void dance_0_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
void dance_0_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
dance_state[0].step = dance_step(state);
|
||||
switch (dance_state[0].step) {
|
||||
case DOUBLE_TAP: layer_move(3); break;
|
||||
}
|
||||
}
|
||||
|
||||
void dance_0_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
wait_ms(10);
|
||||
switch (dance_state[0].step) {
|
||||
}
|
||||
dance_state[0].step = 0;
|
||||
}
|
||||
void dance_1_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
void dance_1_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
void dance_1_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
dance_state[1].step = dance_step(state);
|
||||
switch (dance_state[1].step) {
|
||||
case DOUBLE_TAP: layer_move(0); break;
|
||||
}
|
||||
}
|
||||
|
||||
void dance_1_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
wait_ms(10);
|
||||
switch (dance_state[1].step) {
|
||||
}
|
||||
dance_state[1].step = 0;
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[DANCE_0] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_0_finished, dance_0_reset),
|
||||
[DANCE_1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_1_finished, dance_1_reset),
|
||||
};
|
||||
9
keyboards/moonlander/keymaps/jbrechtel/rules.mk
Normal file
9
keyboards/moonlander/keymaps/jbrechtel/rules.mk
Normal file
@@ -0,0 +1,9 @@
|
||||
# Set any rules.mk overrides for your specific keymap here.
|
||||
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = no
|
||||
MOUSEKEY_ENABLE = no
|
||||
ORYX_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
SPACE_CADET_ENABLE = no
|
||||
SRC = matrix.c
|
||||
@@ -1,9 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#ifndef STARTUP_SONG
|
||||
# ifndef STARTUP_SONG
|
||||
# define STARTUP_SONG SONG(E__NOTE(_DS5), E__NOTE(_D5), E__NOTE(_AS4), Q__NOTE(_F5))
|
||||
# endif
|
||||
|
||||
# ifndef GOODBYE_SONG
|
||||
# define GOODBYE_SONG SONG(E__NOTE(_D5), E__NOTE(_F5), E__NOTE(_C5), Q__NOTE(_AS4))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef GOODBYE_SONG
|
||||
# define GOODBYE_SONG SONG(E__NOTE(_D5), E__NOTE(_F5), E__NOTE(_C5), Q__NOTE(_AS4))
|
||||
#endif
|
||||
#ifndef ISSI_TIMEOUT
|
||||
# define ISSI_TIMEOUT 5
|
||||
#endif
|
||||
|
||||
@@ -95,6 +95,7 @@ __attribute__((weak)) bool get_auto_shift_no_auto_repeat(uint16_t keycode, keyre
|
||||
__attribute__((weak)) void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
||||
if (shifted) {
|
||||
add_weak_mods(MOD_BIT(KC_LSFT));
|
||||
send_keyboard_report();
|
||||
}
|
||||
register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
|
||||
}
|
||||
|
||||
@@ -152,6 +152,7 @@ __attribute__((weak)) bool caps_word_press_user(uint16_t keycode) {
|
||||
case KC_A ... KC_Z:
|
||||
case KC_MINS:
|
||||
add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key.
|
||||
send_keyboard_report();
|
||||
return true;
|
||||
|
||||
// Keycodes that continue Caps Word, without shifting.
|
||||
|
||||
Reference in New Issue
Block a user