From fa08cb2478e8c13a9f1c785956c95cb49bbebba3 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 28 Aug 2022 12:55:19 -0700 Subject: [Keymap] Drashna keymap updates for 0.18.0 (#18184) Co-authored-by: Ryan --- .../charybdis/4x6/keymaps/drashna/config.h | 24 +++- .../charybdis/4x6/keymaps/drashna/keymap.c | 4 +- .../charybdis/4x6/keymaps/drashna/rules.mk | 1 + .../bastardkb/dilemma/keymaps/drashna/config.h | 8 ++ .../bastardkb/dilemma/keymaps/drashna/keymap.c | 160 +++++++++++++++++++++ .../bastardkb/dilemma/keymaps/drashna/rules.mk | 8 ++ 6 files changed, 196 insertions(+), 9 deletions(-) create mode 100644 keyboards/bastardkb/dilemma/keymaps/drashna/config.h create mode 100644 keyboards/bastardkb/dilemma/keymaps/drashna/keymap.c create mode 100644 keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk (limited to 'keyboards/bastardkb') diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h index 6711212cb1..7e47953d63 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h @@ -16,6 +16,9 @@ */ #pragma once +#undef PRODUCT +#define PRODUCT "Charybdis (4x6) Blackpill" + #undef MATRIX_COL_PINS #define MATRIX_COL_PINS \ { B0, B1, B12, B3, B4, B5 } @@ -34,7 +37,7 @@ #define DIODE_DIRECTION ROW2COL #define SPLIT_HAND_PIN A3 #undef MASTER_RIGHT -// #define USB_VBUS_PIN B10 +#define USB_VBUS_PIN B10 #undef RGB_DI_PIN #define RGB_DI_PIN A1 @@ -55,6 +58,8 @@ #define AUDIO_PWM_PAL_MODE 2 #define AUDIO_STATE_TIMER GPTD3 #define AUDIO_INIT_DELAY +#define AUDIO_ENABLE_TONE_MULTIPLEXING +#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 #undef SOFT_SERIAL_PIN // #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. @@ -64,12 +69,8 @@ // #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 // #define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 // #define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100 -// // #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master -// // To use the highest possible baudrate (3.75Mbit/s) uncomment the following -// // line, this can result in dropped communications so lower the speed if there -// // are many timeouts. -// // #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4) -#define SERIAL_USART_SPEED 921600 +// #define SERIAL_USART_SPEED 921600 +#define SERIAL_USART_SPEED (1.5 * 1024 * 1024) #define CRC8_USE_TABLE #define CRC8_OPTIMIZE_SPEED @@ -103,3 +104,12 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define CHARYBDIS_CONFIG_SYNC + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW_RIGHT 5 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 0 +#define BOOTMAGIC_LITE_EEPROM_ROW 1 +#define BOOTMAGIC_LITE_EEPROM_COLUMN 0 +#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1 +#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0 diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c index 1268d1a8ba..a0f290ad57 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c @@ -26,8 +26,8 @@ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, UC_CLUE, \ SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ - OS_LSFT,CTL_T(K21),ALT_T(K22),GUI_T(K23),K24,K25, K26,K27,RGUI_T(K28),RALT_T(K29),RCTL_T(K2A), OS_RSFT, \ - SFT_T(KC_GRV), UC_IRNY, OS_LGUI, TT(_MOUSE), KC_ENT, \ + OS_LSFT,CTL_T(K21), K22, K23, K24, K25, K26,K27,RGUI_T(K28),RALT_T(K29),RCTL_T(K2A), OS_RSFT, \ + SFT_T(KC_GRV), OS_LALT, OS_LGUI, TT(_MOUSE), KC_ENT, \ KC_SPC, BK_LWER, DL_RAIS \ ) diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk index d9c1a5a9ba..336750bc90 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk @@ -31,3 +31,4 @@ TAP_DANCE_ENABLE = yes DEBOUNCE_TYPE = asym_eager_defer_pk WPM_ENABLE = yes LTO_ENABLE = no +# OPT = 3 diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/config.h b/keyboards/bastardkb/dilemma/keymaps/drashna/config.h new file mode 100644 index 0000000000..d7b1351d89 --- /dev/null +++ b/keyboards/bastardkb/dilemma/keymaps/drashna/config.h @@ -0,0 +1,8 @@ +// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define CIRQUE_PINNACLE_TAP_ENABLE +#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE +#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/keymap.c b/keyboards/bastardkb/dilemma/keymaps/drashna/keymap.c new file mode 100644 index 0000000000..9cd21c3c1f --- /dev/null +++ b/keyboards/bastardkb/dilemma/keymaps/drashna/keymap.c @@ -0,0 +1,160 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "drashna.h" + +// clang-format off +#define LAYOUT_split_3x5_2_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__) +#define LAYOUT_split_3x5_2_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_split_3x5_2 ( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + ALT_T(K11), K12, K13, K14, GUI_T(K15), LGUI_T(K16), K17, K18, K19, LALT_T(K1A), \ + CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), \ + KC_SPC, BK_LWER, DL_RAIS, RSFT_T(KC_ENT) \ + ) + +#define LAYOUT_split_3x5_2_base_wrapper(...) LAYOUT_split_3x5_2_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_DEFAULT_LAYER_1] = LAYOUT_split_3x5_2_base_wrapper( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ + ), + + [_DEFAULT_LAYER_2] = LAYOUT_split_3x5_2_base_wrapper( + ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, + ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, + ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ + ), + [_DEFAULT_LAYER_3] = LAYOUT_split_3x5_2_base_wrapper( + _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, + _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, + _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ + ), + + [_DEFAULT_LAYER_4] = LAYOUT_split_3x5_2_base_wrapper( + _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, + _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, + _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ + ), + + [_MOUSE] = LAYOUT_split_3x5_2( + _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, + _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, + _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, + SNIPING, _______, _______, _______ + ), + [_LOWER] = LAYOUT_split_3x5_2_wrapper( + _________________LOWER_L1__________________, _________________LOWER_R1__________________, + _________________LOWER_L2__________________, _________________LOWER_R2__________________, + _________________LOWER_L3__________________, _________________LOWER_R3__________________, + _______, _______, _______, AUTO_CTN + ), + [_RAISE] = LAYOUT_split_3x5_2_wrapper( + _________________RAISE_L1__________________, _________________RAISE_R1__________________, + _________________RAISE_L2__________________, _________________RAISE_R2__________________, + _________________RAISE_L3__________________, _________________RAISE_R3__________________, + _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT_split_3x5_2_wrapper( + _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, + _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, + _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, + KC_NUKE, _______, _______, QK_BOOT + ), +}; + + +void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { + for (int32_t i = 0; i < 40; i++) { + __asm__ volatile("nop" ::: "memory"); + } +} + + +#if defined(OLED_ENABLE) && defined(OLED_DISPLAY_128X128) +# ifdef UNICODE_COMMON_ENABLE +# include "process_unicode_common.h" +# include "keyrecords/unicode.h" +# endif + +extern const char PROGMEM display_border[3]; + + +extern uint32_t oled_timer; +extern bool is_oled_enabled; + + +bool oled_task_keymap(void) { + static const char PROGMEM header_image[] = { + 0, 192, 32, 16, 8, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 7, 15, 31, 63, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 63, 31, 15, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 8, 16, 32, 192, 0, + // 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0 + }; + oled_write_raw_P(header_image, sizeof(header_image)); + oled_set_cursor(7, 0); + oled_write_P(PSTR("Rock On"), true); + + render_default_layer_state(1, 1); + render_layer_state(1, 2); + render_kitty(0, 5); + render_wpm(1, 7, 5); +# if defined(POINTING_DEVICE_ENABLE) + render_pointing_dpi_status(dilemma_get_pointer_sniping_enabled() ? dilemma_get_pointer_sniping_dpi() : dilemma_get_pointer_default_dpi(), 1, 7, 6); + render_mouse_mode(17, 6); +# elif defined(WPM_ENABLE) && defined(DEBUG_MATRIX_SCAN_RATE) + render_matrix_scan_rate(1, 7, 6); +# endif + render_bootmagic_status(7, 7); + render_user_status(1, 9); + + render_mod_status(get_mods() | get_oneshot_mods(), 1, 10); + render_keylock_status(host_keyboard_led_state(), 1, 11); + render_unicode_mode(1, 12); + +// render_rgb_hsv(1, 13); + oled_set_cursor(1, 13); + // oled_write_P(PSTR("Timer:"), false); + // oled_write(get_u8_str((uint8_t)(timer_elapsed32(oled_timer) / 1000), ' '), false); + oled_write_P(PSTR("Status: "), false); + if (is_oled_enabled) { + oled_write_P(PSTR("on "), false); + } else { + oled_write_P(PSTR("off"), false); + } + + render_keylogger_status(1, 14); + + for (uint8_t i = 1; i < 15; i++) { + oled_set_cursor(0, i); + oled_write_raw_P(display_border, sizeof(display_border)); + oled_set_cursor(21, i); + oled_write_raw_P(display_border, sizeof(display_border)); + } + + static const char PROGMEM footer_image[] = {0, 3, 4, 8, 16, 32, 64, 128, 128, 128, 128, 128, 128, 128, 192, 224, 240, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 240, 224, 192, 128, 128, 128, 128, 128, 128, 128, 64, 32, 16, 8, 4, 3, 0}; + oled_set_cursor(0, 15); + oled_write_raw_P(footer_image, sizeof(footer_image)); + + return false; +} +#endif diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk b/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk new file mode 100644 index 0000000000..5f4afb7259 --- /dev/null +++ b/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk @@ -0,0 +1,8 @@ +SWAP_HANDS_ENABLE = no +AUTOCORRECTION_ENABLE = yes +CAPS_WORD_ENABLE = yes +CONSOLE_ENABLE = yes +KEYLOGGER_ENABLE = no +WPM_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = custom -- cgit v1.2.1