From f461adbd1dffa178042a4805137918a4bec3c118 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 25 May 2021 09:24:01 -0700 Subject: [Keymap] Update to Drashna keymap and user code (based on develop) (#12936) --- keyboards/c39/keymaps/drashna/config.h | 4 + keyboards/c39/keymaps/drashna/keymap.c | 6 - keyboards/gergo/keymaps/drashna/keymap.c | 6 - .../5x6_right_trackball/5x6_right_trackball.c | 3 + .../dactyl_manuform/5x6_right_trackball/config.h | 10 +- .../5x6_right_trackball/keymaps/drashna/config.h | 6 +- .../5x6_right_trackball/keymaps/drashna/keymap.c | 54 ++++++--- .../5x6_right_trackball/keymaps/drashna/rules.mk | 1 - .../dactyl_manuform/5x6_right_trackball/pmw3360.c | 3 + .../5x6_right_trackball/pointer_transport.c | 134 ++++++++++++++++----- .../dactyl_manuform/5x6_right_trackball/rules.mk | 5 +- keyboards/keebio/iris/keymaps/drashna/keymap.c | 8 -- keyboards/kyria/keymaps/drashna/config.h | 3 +- keyboards/kyria/keymaps/drashna/keymap.c | 44 ------- keyboards/orthodox/keymaps/drashna/keymap.c | 7 -- keyboards/ploopyco/mouse/keymaps/drashna/rules.mk | 1 + 16 files changed, 165 insertions(+), 130 deletions(-) (limited to 'keyboards') diff --git a/keyboards/c39/keymaps/drashna/config.h b/keyboards/c39/keymaps/drashna/config.h index 73b0b8acfe..e48bc46ca8 100644 --- a/keyboards/c39/keymaps/drashna/config.h +++ b/keyboards/c39/keymaps/drashna/config.h @@ -28,3 +28,7 @@ #define RGBLED_NUM 15 #define SOLENOID_PIN B11 + +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE diff --git a/keyboards/c39/keymaps/drashna/keymap.c b/keyboards/c39/keymaps/drashna/keymap.c index b5d11104d3..88065263cf 100755 --- a/keyboards/c39/keymaps/drashna/keymap.c +++ b/keyboards/c39/keymaps/drashna/keymap.c @@ -87,12 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - [_MODS] = LAYOUT_wrapper( - _______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______, - KC_LSFT, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______ - ), - [_LOWER] = LAYOUT_wrapper( KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC, KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE, diff --git a/keyboards/gergo/keymaps/drashna/keymap.c b/keyboards/gergo/keymaps/drashna/keymap.c index ecf5f39031..81ff6852d1 100644 --- a/keyboards/gergo/keymaps/drashna/keymap.c +++ b/keyboards/gergo/keymaps/drashna/keymap.c @@ -87,12 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - [_MODS] = LAYOUT_gergo_wrapper( - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, _______, - KC_LSFT, ___________________BLANK___________________, _______, _______, _______, _______, ___________________BLANK___________________, KC_RSFT, - _______, _______, _______, _______, _______, _______, _______, _______ - ), [_LOWER] = LAYOUT_gergo_wrapper( KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE, diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/5x6_right_trackball.c b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/5x6_right_trackball.c index 4f1b3f0bbf..4048fb233c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/5x6_right_trackball.c +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/5x6_right_trackball.c @@ -167,8 +167,11 @@ void pointing_device_task(void) { void eeconfig_init_kb(void) { keyboard_config.dpi_config = TRACKBALL_DPI_DEFAULT; +#ifdef POINTING_DEVICE_ENABLE trackball_set_cpi(dpi_array[keyboard_config.dpi_config]); +#endif eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); } void matrix_init_kb(void) { diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/config.h b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/config.h index 042432184c..bc6d66bb9d 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/config.h +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/config.h @@ -36,13 +36,13 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW // WS2812 RGB LED strip input and number of LEDs -#define RGB_DI_PIN D3 -#define RGBLED_NUM 8 +#define RGB_DI_PIN E7 +#define RGBLED_NUM 58 #define RGBLIGHT_SPLIT -#define RGBLED_SPLIT { 0 , 8 } +#define RGBLED_SPLIT { 30 , 28 } #define RGBLIGHT_SLEEP -#define RGBW -#define RGBLIGHT_LIMIT_VAL 150 +// #define RGBW +#define RGBLIGHT_LIMIT_VAL 100 /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/config.h b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/config.h index 41b2e07c70..dedd1f5fe2 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/config.h +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/config.h @@ -25,9 +25,7 @@ #define TRACKBALL_DPI_OPTIONS \ { 1200, 1800, 2600, 3400 } -#define RGBLIGHT_EFFECT_TWINKLE_LIFE 50 -#define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1/63 -#define RGBLIGHT_MAX_BRIGHTNESS 100 +#define RGBLIGHT_MAX_BRIGHTNESS 60 #undef DEBOUNCE #define DEBOUNCE 10 @@ -36,6 +34,6 @@ #define SOLENOID_DEFAULT_DWELL 8 #define OLED_DISPLAY_128X64 -#define OLED_BRIGHTNESS 100 +#define OLED_BRIGHTNESS 50 #define MK_KINETIC_SPEED diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/keymap.c index 5a1bb79fe2..b3300daa9c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/keymap.c +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/keymap.c @@ -30,8 +30,8 @@ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ OS_LALT, OS_LGUI, TG_GAME, TG_DBLO, \ OS_LGUI, KC_GRV, OS_RGUI, \ - KC_SPC, TT(_MOUSE), KC_ENT, \ - BK_LWER, MO(_MOUSE), MO(_MOUSE), DL_RAIS \ + KC_SPC, OS_LGUI, KC_ENT, \ + BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ ) #define LAYOUT_5x6_right_trackball_base_wrapper(...) LAYOUT_5x6_right_trackball_base(__VA_ARGS__) @@ -88,8 +88,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MOUSE] = LAYOUT_5x6_right_trackball( _______, _______, _______, _______, _______, _______, DPI_CONFIG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_BTN4, KC_BTN5, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______, + _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -97,9 +97,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_GAMEPAD] = LAYOUT_5x6_right_trackball( KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, DPI_CONFIG, _______, _______, _______, _______, _______, - KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_WH_U, _______, _______, _______, _______, _______, - KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, - KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, KC_BTN4, KC_BTN5, _______, _______, _______, + KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, + KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, + KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______, KC_I, KC_T, TG_GAME, KC_NO, KC_V, KC_O, _______, KC_SPC, KC_P, _______, @@ -107,13 +107,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_DIABLO] = LAYOUT_5x6_right_trackball( KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, - KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, + KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______, + KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______, + KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______, KC_F, KC_L, KC_NO, TG_DBLO, - SFT_T(KC_SPC), KC_F, _______, - ALT_T(KC_Q), KC_J, _______, - KC_DIABLO_CLEAR, KC_LGUI, _______, _______ + KC_DIABLO_CLEAR, KC_F, _______, + SFT_T(KC_SPC), KC_J, _______, + ALT_T(KC_Q), KC_LGUI, _______, _______ ), [_LOWER] = LAYOUT_5x6_right_trackball_wrapper( KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, @@ -157,7 +157,7 @@ bool tap_toggling = false; void process_mouse_user(report_mouse_t* mouse_report, int16_t x, int16_t y) { if ((x || y) && timer_elapsed(mouse_timer) > 125) { mouse_timer = timer_read(); - if (!layer_state_is(_MOUSE) && !layer_state_is(_GAMEPAD) && timer_elapsed(mouse_debounce_timer) > 125) { + if (!layer_state_is(_MOUSE) && !(layer_state_is(_GAMEPAD) || layer_state_is(_DIABLO)) && timer_elapsed(mouse_debounce_timer) > 125) { layer_on(_MOUSE); } } @@ -167,7 +167,7 @@ void process_mouse_user(report_mouse_t* mouse_report, int16_t x, int16_t y) { # else if (timer_elapsed(mouse_debounce_timer) > TAPPING_TERM # endif - || layer_state_is(_GAMEPAD)) { + || (layer_state_is(_GAMEPAD) || layer_state_is(_DIABLO))) { mouse_report->x = x; mouse_report->y = y; } @@ -218,11 +218,33 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { default: if (layer_state_is(_MOUSE) && !mouse_keycode_tracker) { layer_off(_MOUSE); - mouse_keycode_tracker = 0; } + mouse_keycode_tracker = 0; mouse_debounce_timer = timer_read(); break; } return true; } + +layer_state_t layer_state_set_keymap(layer_state_t state) { + if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO)) { + state |= (1UL << _MOUSE); + } + return state; +} +#endif + +void matrix_init_keymap(void) { +#ifdef AUDIO_ENABLE + extern audio_config_t audio_config; + + if (!is_keyboard_master()) { + audio_stop_all(); + audio_config.enable = false; + } #endif +} + +void keyboard_post_init_keymap(void) { + matrix_init_keymap(); +} diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/rules.mk index 9999c0ddf4..754f0e45de 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/rules.mk +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/rules.mk @@ -1,5 +1,4 @@ RGBLIGHT_STARTUP_ANIMATION = yes -HAPTIC_ENABLE = SOLENOID COMMAND_ENABLE = no AUDIO_ENABLE = yes TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pmw3360.c b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pmw3360.c index 8007fecef6..9b6d93207a 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pmw3360.c +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pmw3360.c @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#ifdef POINTING_DEVICE_ENABLE #include "pmw3360.h" #include "pmw3360_firmware.h" @@ -223,3 +224,5 @@ report_pmw_t pmw_read_burst(void) { return data; } + +#endif diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pointer_transport.c b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pointer_transport.c index 5df90258bb..1a9aeb2e32 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pointer_transport.c +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/pointer_transport.c @@ -21,6 +21,7 @@ #include QMK_KEYBOARD_H #define ROWS_PER_HAND (MATRIX_ROWS / 2) +#define SYNC_TIMER_OFFSET 2 #ifdef RGBLIGHT_ENABLE # include "rgblight.h" @@ -36,6 +37,13 @@ static pin_t encoders_pad[] = ENCODERS_PAD_A; # define NUMBER_OF_ENCODERS (sizeof(encoders_pad) / sizeof(pin_t)) #endif +#if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) +# include "led_matrix.h" +#endif +#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) +# include "rgb_matrix.h" +#endif + #ifdef POINTING_DEVICE_ENABLE static uint16_t device_cpi = 0; static int8_t split_mouse_x = 0, split_mouse_y = 0; @@ -51,6 +59,12 @@ static int8_t split_mouse_x = 0, split_mouse_y = 0; # include "i2c_slave.h" typedef struct _I2C_slave_buffer_t { +# ifndef DISABLE_SYNC_TIMER + uint32_t sync_timer; +# endif +# ifdef SPLIT_TRANSPORT_MIRROR + matrix_row_t mmatrix[ROWS_PER_HAND]; +# endif matrix_row_t smatrix[ROWS_PER_HAND]; # ifdef SPLIT_MODS_ENABLE uint8_t real_mods; @@ -77,14 +91,22 @@ typedef struct _I2C_slave_buffer_t { bool oled_on; layer_state_t t_layer_state; layer_state_t t_default_layer_state; - bool is_rgb_matrix_suspended; +# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) + led_eeconfig_t led_matrix; + bool led_suspend_state; +# endif +# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) + rgb_config_t rgb_matrix; + bool rgb_suspend_state; +# endif } __attribute__((packed)) I2C_slave_buffer_t; static I2C_slave_buffer_t *const i2c_buffer = (I2C_slave_buffer_t *)i2c_slave_reg; # define I2C_BACKLIGHT_START offsetof(I2C_slave_buffer_t, backlight_level) # define I2C_RGB_START offsetof(I2C_slave_buffer_t, rgblight_sync) -# define I2C_KEYMAP_START offsetof(I2C_slave_buffer_t, mmatrix) +# define I2C_KEYMAP_MASTER_START offsetof(I2C_slave_buffer_t, mmatrix) +# define I2C_KEYMAP_SLAVE_START offsetof(I2C_slave_buffer_t, smatrix) # define I2C_SYNC_TIME_START offsetof(I2C_slave_buffer_t, sync_timer) # define I2C_REAL_MODS_START offsetof(I2C_slave_buffer_t, real_mods) # define I2C_WEAK_MODS_START offsetof(I2C_slave_buffer_t, weak_mods) @@ -97,7 +119,10 @@ static I2C_slave_buffer_t *const i2c_buffer = (I2C_slave_buffer_t *)i2c_slave_re # define I2C_OLED_ON_START offsetof(I2C_slave_buffer_t, oled_on) # define I2C_LAYER_STATE_START offsetof(I2C_slave_buffer_t, t_layer_state) # define I2C_DEFAULT_LAYER_STATE_START offsetof(I2C_slave_buffer_t, t_default_layer_state) -# define I2C_RGB_MATRIX_SUSPEND_START offsetof(I2C_slave_buffer_t, is_rgb_matrix_suspended) +# define I2C_LED_MATRIX_START offsetof(I2C_slave_buffer_t, led_matrix) +# define I2C_LED_SUSPEND_START offsetof(I2C_slave_buffer_t, led_suspend_state) +# define I2C_RGB_MATRIX_START offsetof(I2C_slave_buffer_t, rgb_matrix) +# define I2C_RGB_SUSPEND_START offsetof(I2C_slave_buffer_t, rgb_suspend_state) # define TIMEOUT 100 @@ -106,9 +131,11 @@ static I2C_slave_buffer_t *const i2c_buffer = (I2C_slave_buffer_t *)i2c_slave_re # endif // Get rows from other half over i2c -bool transport_master(matrix_row_t matrix[]) { - i2c_readReg(SLAVE_I2C_ADDRESS, I2C_KEYMAP_START, (void *)matrix, sizeof(i2c_buffer->smatrix), TIMEOUT); - +bool transport_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { + i2c_readReg(SLAVE_I2C_ADDRESS, I2C_KEYMAP_SLAVE_START, (void *)slave_matrix, sizeof(i2c_buffer->smatrix), TIMEOUT); +# ifdef SPLIT_TRANSPORT_MIRROR + i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_KEYMAP_MASTER_START, (void *)master_matrix, sizeof(i2c_buffer->mmatrix), TIMEOUT); +# endif // write backlight info # ifdef BACKLIGHT_ENABLE uint8_t level = is_backlight_enabled() ? get_backlight_level() : 0; @@ -206,21 +233,34 @@ bool transport_master(matrix_row_t matrix[]) { } # endif -# ifdef RGB_MATRIX_ENABLE - bool sus_state = rgb_matrix_get_suspend_state(); - if (sus_state != i2c_buffer->is_rgb_matrix_suspended) { - if (i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_RGB_MATRIX_SUSPEND_START, (void *)&sus_state, sizeof(sus_state), TIMEOUT) >= 0) { - i2c_buffer->is_rgb_matrix_suspended = sus_state; - } - } +# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) + i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_LED_MATRIX_START, (void *)led_matrix_eeconfig, sizeof(i2c_buffer->led_matrix), TIMEOUT); + bool suspend_state = led_matrix_get_suspend_state(); + i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_LED_SUSPEND_START, (void *)suspend_state, sizeof(i2c_buffer->led_suspend_state), TIMEOUT); +# endif +# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) + i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_RGB_MATRIX_START, (void *)rgb_matrix_config, sizeof(i2c_buffer->rgb_matrix), TIMEOUT); + bool suspend_state = rgb_matrix_get_suspend_state(); + i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_RGB_SUSPEND_START, (void *)suspend_state, sizeof(i2c_buffer->rgb_suspend_state), TIMEOUT); +# endif + +# ifndef DISABLE_SYNC_TIMER + i2c_buffer->sync_timer = sync_timer_read32() + SYNC_TIMER_OFFSET; + i2c_writeReg(SLAVE_I2C_ADDRESS, I2C_SYNC_TIME_START, (void *)&i2c_buffer->sync_timer, sizeof(i2c_buffer->sync_timer), TIMEOUT); # endif return true; } -void transport_slave(matrix_row_t matrix[]) { +void transport_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { +# ifndef DISABLE_SYNC_TIMER + sync_timer_update(i2c_buffer->sync_timer); +# endif // Copy matrix to I2C buffer - memcpy((void *)i2c_buffer->smatrix, (void *)matrix, sizeof(i2c_buffer->smatrix)); + memcpy((void *)i2c_buffer->smatrix, (void *)slave_matrix, sizeof(i2c_buffer->smatrix)); +# ifdef SPLIT_TRANSPORT_MIRROR + memcpy((void *)master_matrix, (void *)i2c_buffer->mmatrix, sizeof(i2c_buffer->mmatrix)); +# endif // Read Backlight Info # ifdef BACKLIGHT_ENABLE @@ -281,8 +321,13 @@ void transport_slave(matrix_row_t matrix[]) { } # endif -# ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_suspend_state(i2c_buffer->is_rgb_matrix_suspended); +# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) + memcpy((void *)i2c_buffer->led_matrix, (void *)led_matrix_eeconfig, sizeof(i2c_buffer->led_matrix)); + led_matrix_set_suspend_state(i2c_buffer->led_suspend_state); +# endif +# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) + memcpy((void *)i2c_buffer->rgb_matrix, (void *)rgb_matrix_config, sizeof(i2c_buffer->rgb_matrix)); + rgb_matrix_set_suspend_state(i2c_buffer->rgb_suspend_state); # endif } @@ -313,7 +358,10 @@ typedef struct _Serial_m2s_buffer_t { # endif # endif # ifndef DISABLE_SYNC_TIMER - uint32_t sync_timer; + uint32_t sync_timer; +# endif +# ifdef SPLIT_TRANSPORT_MIRROR + matrix_row_t mmatrix[ROWS_PER_HAND]; # endif # ifdef BACKLIGHT_ENABLE uint8_t backlight_level; @@ -325,7 +373,14 @@ typedef struct _Serial_m2s_buffer_t { bool oled_on; layer_state_t t_layer_state; layer_state_t t_default_layer_state; - bool is_rgb_matrix_suspended; +# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) + led_eeconfig_t led_matrix; + bool led_suspend_state; +# endif +# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) + rgb_config_t rgb_matrix; + bool rgb_suspend_state; +# endif } __attribute__((packed)) Serial_m2s_buffer_t; # if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT) @@ -402,7 +457,7 @@ void transport_rgblight_slave(void) { # define transport_rgblight_slave() # endif -bool transport_master(matrix_row_t matrix[]) { +bool transport_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { # ifndef SERIAL_USE_MULTI_TRANSACTION if (soft_serial_transaction() != TRANSACTION_END) { return false; @@ -416,7 +471,10 @@ bool transport_master(matrix_row_t matrix[]) { // TODO: if MATRIX_COLS > 8 change to unpack() for (int i = 0; i < ROWS_PER_HAND; ++i) { - matrix[i] = serial_s2m_buffer.smatrix[i]; + slave_matrix[i] = serial_s2m_buffer.smatrix[i]; +# ifdef SPLIT_TRANSPORT_MIRROR + serial_m2s_buffer.mmatrix[i] = master_matrix[i]; +# endif } # ifdef BACKLIGHT_ENABLE @@ -457,19 +515,32 @@ bool transport_master(matrix_row_t matrix[]) { serial_m2s_buffer.oled_on = is_oled_on(); # endif -# ifdef RGB_MATRIX_ENABLE - serial_m2s_buffer.is_rgb_matrix_suspended = rgb_matrix_get_suspend_state(); +# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) + serial_m2s_buffer.led_matrix = led_matrix_eeconfig; + serial_m2s_buffer.led_suspend_state = led_matrix_get_suspend_state(); +# endif +# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) + serial_m2s_buffer.rgb_matrix = rgb_matrix_config; + serial_m2s_buffer.rgb_suspend_state = rgb_matrix_get_suspend_state(); +# endif +# ifndef DISABLE_SYNC_TIMER + serial_m2s_buffer.sync_timer = sync_timer_read32() + SYNC_TIMER_OFFSET; # endif - return true; } -void transport_slave(matrix_row_t matrix[]) { +void transport_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { transport_rgblight_slave(); +# ifndef DISABLE_SYNC_TIMER + sync_timer_update(serial_m2s_buffer.sync_timer); +# endif // TODO: if MATRIX_COLS > 8 change to pack() for (int i = 0; i < ROWS_PER_HAND; ++i) { - serial_s2m_buffer.smatrix[i] = matrix[i]; + serial_s2m_buffer.smatrix[i] = slave_matrix[i]; +# ifdef SPLIT_TRANSPORT_MIRROR + master_matrix[i] = serial_m2s_buffer.mmatrix[i]; +# endif } # ifdef BACKLIGHT_ENABLE @@ -518,8 +589,13 @@ void transport_slave(matrix_row_t matrix[]) { } # endif -# ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_suspend_state(serial_m2s_buffer.is_rgb_matrix_suspended); +# if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) + led_matrix_eeconfig = serial_m2s_buffer.led_matrix; + led_matrix_set_suspend_state(serial_m2s_buffer.led_suspend_state); +# endif +# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) + rgb_matrix_config = serial_m2s_buffer.rgb_matrix; + rgb_matrix_set_suspend_state(serial_m2s_buffer.rgb_suspend_state); # endif } @@ -534,7 +610,7 @@ void trackball_set_cpi(uint16_t cpi) { if (!is_keyboard_left()) { pmw_set_cpi(cpi); } else { - device_cpi = cpi * 1.5; + device_cpi = cpi; } } #endif diff --git a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/rules.mk index 99275c15ae..3fb9ab2a84 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_right_trackball/rules.mk +++ b/keyboards/handwired/dactyl_manuform/5x6_right_trackball/rules.mk @@ -11,17 +11,18 @@ BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover +NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output SWAP_HANDS_ENABLE = yes POINTING_DEVICE_ENABLE = yes +MOUSE_SHARED_EP = no SPLIT_KEYBOARD = yes SPLIT_TRANSPORT = custom diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c index 1dc6f0e528..fe5e67b52f 100644 --- a/keyboards/keebio/iris/keymaps/drashna/keymap.c +++ b/keyboards/keebio/iris/keymaps/drashna/keymap.c @@ -91,14 +91,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - [_MODS] = LAYOUT_wrapper( - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - KC_LSFT, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, KC_RSFT, - _______, _______, _______, _______, _______, _______ - ), - [_GAMEPAD] = LAYOUT_wrapper( KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kyria/keymaps/drashna/config.h b/keyboards/kyria/keymaps/drashna/config.h index afd17b4360..af6f738155 100644 --- a/keyboards/kyria/keymaps/drashna/config.h +++ b/keyboards/kyria/keymaps/drashna/config.h @@ -20,7 +20,6 @@ #ifdef OLED_DRIVER_ENABLE # define OLED_DISPLAY_128X64 -# define OLED_SCROLL_TIMEOUT_RIGHT 60000 #endif #ifdef RGBLIGHT_ENABLE @@ -30,7 +29,7 @@ # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 # define RGBLIGHT_SPLIT -# define RGBLIGHT_LAYERS +// # define RGBLIGHT_LAYERS #endif #define KEYLOGGER_LENGTH 10 diff --git a/keyboards/kyria/keymaps/drashna/keymap.c b/keyboards/kyria/keymaps/drashna/keymap.c index beefe11d74..4563a3c622 100644 --- a/keyboards/kyria/keymaps/drashna/keymap.c +++ b/keyboards/kyria/keymaps/drashna/keymap.c @@ -16,12 +16,6 @@ #include "drashna.h" -uint8_t is_master; - -#ifndef UNICODE_ENABLE -# define UC(x) KC_NO -#endif - /* * The `LAYOUT_kyria_base` macro is a template to allow the use of identical * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so @@ -96,13 +90,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - [_MODS] = LAYOUT_wrapper( - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, - KC_LSFT, ___________________BLANK___________________, _______, _______, _______, _______, ___________________BLANK___________________, KC_RSFT, - _______, _______, KC_LALT, _______, _______, _______, _______, KC_RGUI, _______, _______ - ), - [_GAMEPAD] = LAYOUT_wrapper( KC_ESC, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, @@ -143,39 +130,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifndef SPLIT_KEYBOARD - if (keycode == RESET && !is_master) { - return false; - } -#endif - } - return true; -} - -void matrix_init_keymap(void) { is_master = (uint8_t)is_keyboard_master(); } - #ifdef OLED_DRIVER_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; } - -// clang-format off - -# ifndef SPLIT_TRANSPORT_MIRROR -void oled_driver_render_logo(void) { - static const char PROGMEM kyria_logo[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 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, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 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, 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, 0, 0, - 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0, - 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 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, 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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 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, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); -} -# endif #endif #ifdef ENCODER_ENABLE diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index 32b0dcfeba..643a5b6b0b 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -73,13 +73,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - - [_MODS] = LAYOUT_wrapper(\ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LOWER] = LAYOUT_wrapper(\ KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, KC_F11, _________________LOWER_L2__________________, _______, _______, _______, _______, _________________LOWER_R2__________________, KC_PIPE, diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk b/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk index 4e7eebe341..655dbfdfa0 100644 --- a/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk +++ b/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk @@ -2,3 +2,4 @@ USER_NAME := not_drashna RGBLIGHT_ENABLE = yes CONSOLE_ENABLE = no +LTO_ENABLE = yes -- cgit v1.2.3