diff options
| author | Drashna Jaelre <drashna@live.com> | 2019-11-20 12:37:24 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-20 12:37:24 -0800 |
| commit | eb91c962886b1bb52c2d457a574cba09e2a8b0f0 (patch) | |
| tree | 20f3d49671b6d42ca1edf285431e3e4120551228 /keyboards | |
| parent | 8e8986b2506ca4cdd2339a441314a0838e3a4329 (diff) | |
| download | qmk_firmware-eb91c962886b1bb52c2d457a574cba09e2a8b0f0.tar.gz qmk_firmware-eb91c962886b1bb52c2d457a574cba09e2a8b0f0.zip | |
[Keymap] All about (ARM) RGB and OLEDs (drashna keymaps) (#7354)
* Add Kyria Keymap
* Enable all RGBLIGHT Animations for ARM and high capacity AVR
* Reduce GNUC version for __has_include
* Cleanup Ortho 4x12 Community layout
* Update Collide 39 keymap
* Cleanup Keymaps
* Enable full 30 LEDs for Ergodox
* Change EEPROM Load timing
* Use RGB Matrix on Planck Rev6
* Use correct keymap swap
* Enable everything for ARM
* Only enable rgb sleep on avr until crash is fixed
* Add additional Kyria keymap config
* Overhaul Kyria OLED display
* Improve kyria keymap based on usage
* Minor tweaks to rules
* Update OLED code to truncate properly
* Fix RGB Light layer indication
* Switch all of biton32 to get_highest_layer function
* Fix OLED Keylogger display
* Run qmk cformat over all of my user files
* Slight tweak to kyria based on usage
* Move around LALT_T config
* Add comments about base wrappers to keymaps
* Another cformat pass
* Temp fix for VUSB boards and NKRO
* Convert tabs to spaces in rules.mk files
* Only enable RGBLight if it's enabled
* Add Encoder Flip setting
* Update OLED font file
Diffstat (limited to 'keyboards')
| -rw-r--r-- | keyboards/40percentclub/nano/keymaps/drashna/keymap.c | 10 | ||||
| -rw-r--r--[-rwxr-xr-x] | keyboards/c39/keymaps/drashna/config.h | 9 | ||||
| -rwxr-xr-x | keyboards/c39/keymaps/drashna/keymap.c | 132 | ||||
| -rw-r--r-- | keyboards/c39/keymaps/drashna/rules.mk | 4 | ||||
| -rw-r--r-- | keyboards/crkbd/keymaps/drashna/glcdfont.c | 9 | ||||
| -rw-r--r-- | keyboards/crkbd/keymaps/drashna/keymap.c | 49 | ||||
| -rw-r--r-- | keyboards/gergo/keymaps/drashna/keymap.c | 18 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/drashna/config.h | 3 | ||||
| -rw-r--r-- | keyboards/keebio/iris/keymaps/drashna/keymap.c | 14 | ||||
| -rw-r--r-- | keyboards/keebio/viterbi/keymaps/drashna/config.h | 31 | ||||
| -rw-r--r-- | keyboards/keebio/viterbi/keymaps/drashna/keymap.c | 50 | ||||
| -rw-r--r-- | keyboards/kyria/keymaps/drashna/config.h | 38 | ||||
| -rw-r--r-- | keyboards/kyria/keymaps/drashna/keymap.c | 372 | ||||
| -rw-r--r-- | keyboards/kyria/keymaps/drashna/rules.mk | 22 | ||||
| -rw-r--r-- | keyboards/orthodox/keymaps/drashna/config.h | 45 | ||||
| -rw-r--r-- | keyboards/orthodox/keymaps/drashna/keymap.c | 39 |
16 files changed, 654 insertions, 191 deletions
diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c index 6c5b97457..668178967 100644 --- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c +++ b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c | |||
| @@ -1,12 +1,11 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | #include "drashna.h" | 1 | #include "drashna.h" |
| 3 | #include "analog.c" | 2 | #include "analog.c" |
| 4 | #include "pointing_device.h" | 3 | #include "pointing_device.h" |
| 5 | #include "pincontrol.h" | 4 | #include "pincontrol.h" |
| 6 | 5 | ||
| 7 | |||
| 8 | #define KC_X0 LT(_FN, KC_ESC) | 6 | #define KC_X0 LT(_FN, KC_ESC) |
| 9 | 7 | ||
| 8 | // clang-format off | ||
| 10 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 9 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 11 | [_QWERTY] = LAYOUT( | 10 | [_QWERTY] = LAYOUT( |
| 12 | KC_VOLU, KC_MPLY, KC_MPRV, RESET, | 11 | KC_VOLU, KC_MPLY, KC_MPRV, RESET, |
| @@ -14,6 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 14 | ), | 13 | ), |
| 15 | 14 | ||
| 16 | }; | 15 | }; |
| 16 | // clang-format on | ||
| 17 | 17 | ||
| 18 | // Joystick | 18 | // Joystick |
| 19 | // Set Pins | 19 | // Set Pins |
| @@ -39,7 +39,7 @@ int16_t xOrigin, yOrigin; | |||
| 39 | uint16_t lastCursor = 0; | 39 | uint16_t lastCursor = 0; |
| 40 | 40 | ||
| 41 | int16_t axisCoordinate(uint8_t pin, uint16_t origin) { | 41 | int16_t axisCoordinate(uint8_t pin, uint16_t origin) { |
| 42 | int8_t direction; | 42 | int8_t direction; |
| 43 | int16_t distanceFromOrigin; | 43 | int16_t distanceFromOrigin; |
| 44 | int16_t range; | 44 | int16_t range; |
| 45 | 45 | ||
| @@ -57,8 +57,8 @@ int16_t axisCoordinate(uint8_t pin, uint16_t origin) { | |||
| 57 | direction = 1; | 57 | direction = 1; |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | float percent = (float)distanceFromOrigin / range; | 60 | float percent = (float)distanceFromOrigin / range; |
| 61 | int16_t coordinate = (int16_t)(percent * 100); | 61 | int16_t coordinate = (int16_t)(percent * 100); |
| 62 | if (coordinate < 0) { | 62 | if (coordinate < 0) { |
| 63 | return 0; | 63 | return 0; |
| 64 | } else if (coordinate > 100) { | 64 | } else if (coordinate > 100) { |
diff --git a/keyboards/c39/keymaps/drashna/config.h b/keyboards/c39/keymaps/drashna/config.h index 361f68a78..5d53fe54b 100755..100644 --- a/keyboards/c39/keymaps/drashna/config.h +++ b/keyboards/c39/keymaps/drashna/config.h | |||
| @@ -2,6 +2,11 @@ | |||
| 2 | 2 | ||
| 3 | // place overrides here | 3 | // place overrides here |
| 4 | #undef MATRIX_COL_PINS | 4 | #undef MATRIX_COL_PINS |
| 5 | #define MATRIX_COL_PINS { A3, A2, A1, A0, B13, B14, B15, B9, B3, B2, B4, A10, A9 } | 5 | #define MATRIX_COL_PINS \ |
| 6 | { A3, A2, A1, A0, B13, B14, B15, B9, B3, B2, B4, A10, A9 } | ||
| 6 | #undef MATRIX_ROW_PINS | 7 | #undef MATRIX_ROW_PINS |
| 7 | #define MATRIX_ROW_PINS { B7, B1, B0 } | 8 | #define MATRIX_ROW_PINS \ |
| 9 | { B7, B1, B0 } | ||
| 10 | |||
| 11 | #define RGB_DI_PIN B10 | ||
| 12 | #define RGBLED_NUM 15 | ||
diff --git a/keyboards/c39/keymaps/drashna/keymap.c b/keyboards/c39/keymaps/drashna/keymap.c index 9de75190d..882938138 100755 --- a/keyboards/c39/keymaps/drashna/keymap.c +++ b/keyboards/c39/keymaps/drashna/keymap.c | |||
| @@ -1,45 +1,97 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include "drashna.h" |
| 2 | 2 | ||
| 3 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | 3 | /* |
| 4 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | 4 | * The `LAYOUT_base` macro is a template to allow the use of identical |
| 5 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | 5 | * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so |
| 6 | // entirely and just use numbers. | 6 | * that there is no need to set them up for each layout, and modify all of |
| 7 | #define _QWERTY 0 | 7 | * them if I want to change them. This helps to keep consistency and ease |
| 8 | #define _FN1 1 | 8 | * of use. K## is a placeholder to pass through the individual keycodes |
| 9 | 9 | */ | |
| 10 | // Defines for task manager and such | 10 | // clang-format off |
| 11 | #define CALTDEL LCTL(LALT(KC_DEL)) | 11 | #define LAYOUT_base( \ |
| 12 | #define TSKMGR LCTL(LSFT(KC_ESC)) | 12 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ |
| 13 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | ||
| 14 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ | ||
| 15 | ) \ | ||
| 16 | LAYOUT_wrapper( \ | ||
| 17 | KC_ESC, K01, K02, K03, K04, K05, KC_NO, K06, K07, K08, K09, K0A, KC_DEL, \ | ||
| 18 | ALT_T(KC_TAB), K11, K12, K13, K14, K15, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ | ||
| 19 | KC_MLSF, CTL_T(K21), K22, K23, K24, LT(_LOWER,K25), KC_SPC, LT(_RAISE,K26), K27, K28, K29, RCTL_T(K2A), KC_ENT \ | ||
| 20 | ) | ||
| 21 | #define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__) | ||
| 13 | 22 | ||
| 14 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 15 | 24 | ||
| 16 | /* Qwerty | 25 | [_QWERTY] = LAYOUT_base_wrapper( |
| 17 | * ,----------------------------------------------------------------------------. ,-------------. | 26 | _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, |
| 18 | * | Q | W | E | R | T | Bksp | Y | U | I | O | P | | M1 | M2 | | 27 | _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, |
| 19 | * |------+------+------+------+------+------+------+------+------+------+------+ |------+------| | 28 | _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ |
| 20 | * | A | S | D | F | G | Enter| H | J | K | L | ; | | M3 | M4 | | 29 | ), |
| 21 | * |------+------+------+------+------+------+------+------+------+------+------+ |------+------| | 30 | |
| 22 | * | Z | X | C | V | B | FN1 | N | M | , | . | / | | M5 | M6 | | 31 | [_COLEMAK] = LAYOUT_base_wrapper( |
| 23 | * `----------------------------------------------------------------------------' `-------------' | 32 | _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, |
| 24 | */ | 33 | _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, |
| 25 | [_QWERTY] = LAYOUT( | 34 | _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ |
| 26 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_1, KC_2, | 35 | ), |
| 27 | KC_A, KC_S, KC_D, KC_F, KC_G, MT(MOD_LSFT, KC_ENT), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_3, KC_4, | 36 | |
| 28 | KC_Z, KC_X, KC_C, KC_V, KC_B, LT(_FN1, KC_SPC), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_5, KC_6 | 37 | [_DVORAK] = LAYOUT_base_wrapper( |
| 29 | ), | 38 | _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, |
| 30 | 39 | _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, | |
| 31 | /* FN1 | 40 | _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ |
| 32 | * ,----------------------------------------------------------------------------. ,-------------. | 41 | ), |
| 33 | * | 1 | 2 | 3 | 4 | 5 | Bksp | 6 | 7 | 8 | 9 | 0 | | M1 | M2 | | 42 | |
| 34 | * |------+------+------+------+------+------+------+------+------+------+------+ |------+------| | 43 | [_WORKMAN] = LAYOUT_base_wrapper( |
| 35 | * | 4 | 5 | 6 | + | | Enter| | | | | | | M3 | M4 | | 44 | _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, |
| 36 | * |------+------+------+------+------+------+------+------+------+------+------+ |------+------| | 45 | _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, |
| 37 | * | 7 | 8 | 9 | 0 | | FN1 | | | | | | | M5 | M6 | | 46 | _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ |
| 38 | * `----------------------------------------------------------------------------' `-------------' | 47 | ), |
| 39 | */ | 48 | |
| 40 | [_FN1] = LAYOUT( | 49 | [_NORMAN] = LAYOUT_base_wrapper( |
| 41 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, | 50 | _________________NORMAN_L1_________________, _________________NORMAN_L1_________________, |
| 42 | KC_4, KC_5, KC_6, KC_PLUS, _______, KC_ENT, _______, _______, _______, _______, _______, KC_3, KC_4, | 51 | _________________NORMAN_L2_________________, _________________NORMAN_R2_________________, |
| 43 | KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, _______, _______, KC_5, KC_6 | 52 | _________________NORMAN_L3_________________, _________________NORMAN_R3_________________ |
| 44 | ), | 53 | ), |
| 54 | |||
| 55 | [_MALTRON] = LAYOUT_base_wrapper( | ||
| 56 | _________________MALTRON_L1________________, _________________MALTRON_R1________________, | ||
| 57 | _________________MALTRON_L2________________, _________________MALTRON_R2________________, | ||
| 58 | _________________MALTRON_L3________________, _________________MALTRON_R3________________ | ||
| 59 | ), | ||
| 60 | |||
| 61 | [_EUCALYN] = LAYOUT_base_wrapper( | ||
| 62 | _________________EUCALYN_L1________________, _________________EUCALYN_R1________________, | ||
| 63 | _________________EUCALYN_L2________________, _________________EUCALYN_R2________________, | ||
| 64 | _________________EUCALYN_L3________________, _________________EUCALYN_R3________________ | ||
| 65 | ), | ||
| 66 | |||
| 67 | [_CARPLAX] = LAYOUT_base_wrapper( | ||
| 68 | _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________, | ||
| 69 | _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________, | ||
| 70 | _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ | ||
| 71 | ), | ||
| 72 | |||
| 73 | [_MODS] = LAYOUT_wrapper( | ||
| 74 | _______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______, | ||
| 75 | _______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______, | ||
| 76 | KC_LSFT, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______ | ||
| 77 | ), | ||
| 78 | |||
| 79 | [_LOWER] = LAYOUT_wrapper( | ||
| 80 | KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC, | ||
| 81 | KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE, | ||
| 82 | _______, _________________LOWER_L3__________________, _______, _________________LOWER_R3__________________, _______ | ||
| 83 | ), | ||
| 84 | |||
| 85 | [_RAISE] = LAYOUT_wrapper( | ||
| 86 | KC_GRV, _________________RAISE_L1__________________, _______, _________________RAISE_R1__________________, KC_BSPC, | ||
| 87 | KC_DEL, _________________RAISE_L2__________________, _______, _________________RAISE_R2__________________, KC_BSLS, | ||
| 88 | _______, _________________RAISE_L3__________________, _______, _________________RAISE_R3__________________, _______ | ||
| 89 | ), | ||
| 90 | |||
| 91 | [_ADJUST] = LAYOUT_wrapper( | ||
| 92 | KC_MAKE, _________________ADJUST_L1_________________, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, | ||
| 93 | VRSN, _________________ADJUST_L2_________________, MG_NKRO, _________________ADJUST_R2_________________, EEP_RST, | ||
| 94 | TG_MODS, _________________ADJUST_L3_________________, KC_RGB_T,_________________ADJUST_R3_________________, RGB_IDL | ||
| 95 | ) | ||
| 45 | }; | 96 | }; |
| 97 | // clang-format on | ||
diff --git a/keyboards/c39/keymaps/drashna/rules.mk b/keyboards/c39/keymaps/drashna/rules.mk index ae0cc9efe..d216f6abe 100644 --- a/keyboards/c39/keymaps/drashna/rules.mk +++ b/keyboards/c39/keymaps/drashna/rules.mk | |||
| @@ -15,4 +15,6 @@ MIDI_ENABLE = no # MIDI controls | |||
| 15 | UNICODE_ENABLE = yes # Unicode | 15 | UNICODE_ENABLE = yes # Unicode |
| 16 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | 16 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID |
| 17 | AUDIO_ENABLE = yes # Audio output on port C6 | 17 | AUDIO_ENABLE = yes # Audio output on port C6 |
| 18 | RGBLIGHT_ENABLE = no # RGB Enable / Disable | 18 | RGBLIGHT_ENABLE = yes # RGB Enable / Disable |
| 19 | |||
| 20 | RGBLIGHT_STARTUP_ANIMATION = yes | ||
diff --git a/keyboards/crkbd/keymaps/drashna/glcdfont.c b/keyboards/crkbd/keymaps/drashna/glcdfont.c index 998b5c408..2bfc3fac6 100644 --- a/keyboards/crkbd/keymaps/drashna/glcdfont.c +++ b/keyboards/crkbd/keymaps/drashna/glcdfont.c | |||
| @@ -1,17 +1,18 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 3 | #ifdef __AVR__ | 3 | #ifdef __AVR__ |
| 4 | #include <avr/io.h> | 4 | # include <avr/io.h> |
| 5 | #include <avr/pgmspace.h> | 5 | # include <avr/pgmspace.h> |
| 6 | #elif defined(ESP8266) | 6 | #elif defined(ESP8266) |
| 7 | #include <pgmspace.h> | 7 | # include <pgmspace.h> |
| 8 | #else | 8 | #else |
| 9 | #define PROGMEM | 9 | # define PROGMEM |
| 10 | #endif | 10 | #endif |
| 11 | 11 | ||
| 12 | // Corne 8x6 font with QMK Firmware Logo | 12 | // Corne 8x6 font with QMK Firmware Logo |
| 13 | // Online editor: https://helixfonteditor.netlify.com/ | 13 | // Online editor: https://helixfonteditor.netlify.com/ |
| 14 | 14 | ||
| 15 | // clang-format off | ||
| 15 | const unsigned char font[] PROGMEM = { | 16 | const unsigned char font[] PROGMEM = { |
| 16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 17 | 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, | 18 | 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, |
diff --git a/keyboards/crkbd/keymaps/drashna/keymap.c b/keyboards/crkbd/keymaps/drashna/keymap.c index cd84f0d91..9a1beeb74 100644 --- a/keyboards/crkbd/keymaps/drashna/keymap.c +++ b/keyboards/crkbd/keymaps/drashna/keymap.c | |||
| @@ -1,17 +1,17 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | #include "drashna.h" | 1 | #include "drashna.h" |
| 3 | 2 | ||
| 4 | extern keymap_config_t keymap_config; | 3 | extern uint8_t is_master; |
| 5 | extern uint8_t is_master; | ||
| 6 | 4 | ||
| 7 | #ifdef RGBLIGHT_ENABLE | 5 | #ifdef RGBLIGHT_ENABLE |
| 8 | // Following line allows macro to read current RGB settings | 6 | // Following line allows macro to read current RGB settings |
| 9 | extern rgblight_config_t rgblight_config; | 7 | extern rgblight_config_t rgblight_config; |
| 10 | #endif | 8 | #endif |
| 11 | #ifdef OLED_DRIVER_ENABLE | 9 | #ifdef OLED_DRIVER_ENABLE |
| 12 | static uint32_t oled_timer = 0; | 10 | # define KEYLOGGER_LENGTH 5 |
| 13 | static char keylog_str[6] = {}; | 11 | static uint32_t oled_timer = 0; |
| 14 | static uint16_t log_timer = 0; | 12 | static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"}; |
| 13 | static uint16_t log_timer = 0; | ||
| 14 | // clang-format off | ||
| 15 | static const char PROGMEM code_to_name[0xFF] = { | 15 | static const char PROGMEM code_to_name[0xFF] = { |
| 16 | // 0 1 2 3 4 5 6 7 8 9 A B c D E F | 16 | // 0 1 2 3 4 5 6 7 8 9 A B c D E F |
| 17 | ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x | 17 | ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x |
| @@ -37,7 +37,14 @@ void add_keylog(uint16_t keycode); | |||
| 37 | 37 | ||
| 38 | enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; | 38 | enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; |
| 39 | 39 | ||
| 40 | // clang-format off | 40 | /* |
| 41 | * The `LAYOUT_crkbd_base` macro is a template to allow the use of identical | ||
| 42 | * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so | ||
| 43 | * that there is no need to set them up for each layout, and modify all of | ||
| 44 | * them if I want to change them. This helps to keep consistency and ease | ||
| 45 | * of use. K## is a placeholder to pass through the individual keycodes | ||
| 46 | */ | ||
| 47 | |||
| 41 | #define LAYOUT_crkbd_base( \ | 48 | #define LAYOUT_crkbd_base( \ |
| 42 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | 49 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ |
| 43 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | 50 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ |
| @@ -155,7 +162,7 @@ void add_keylog(uint16_t keycode) { | |||
| 155 | keycode = 0; | 162 | keycode = 0; |
| 156 | } | 163 | } |
| 157 | 164 | ||
| 158 | for (uint8_t i = 4; i > 0; --i) { | 165 | for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) { |
| 159 | keylog_str[i] = keylog_str[i - 1]; | 166 | keylog_str[i] = keylog_str[i - 1]; |
| 160 | } | 167 | } |
| 161 | 168 | ||
| @@ -168,7 +175,7 @@ void add_keylog(uint16_t keycode) { | |||
| 168 | 175 | ||
| 169 | void update_log(void) { | 176 | void update_log(void) { |
| 170 | if (timer_elapsed(log_timer) > 750) { | 177 | if (timer_elapsed(log_timer) > 750) { |
| 171 | //add_keylog(0); | 178 | // add_keylog(0); |
| 172 | } | 179 | } |
| 173 | } | 180 | } |
| 174 | 181 | ||
| @@ -179,7 +186,7 @@ void render_keylogger_status(void) { | |||
| 179 | 186 | ||
| 180 | void render_default_layer_state(void) { | 187 | void render_default_layer_state(void) { |
| 181 | oled_write_P(PSTR("Lyout"), false); | 188 | oled_write_P(PSTR("Lyout"), false); |
| 182 | switch (biton32(default_layer_state)) { | 189 | switch (get_highest_layer(default_layer_state)) { |
| 183 | case _QWERTY: | 190 | case _QWERTY: |
| 184 | oled_write_P(PSTR(" QRTY"), false); | 191 | oled_write_P(PSTR(" QRTY"), false); |
| 185 | break; | 192 | break; |
| @@ -268,7 +275,7 @@ void render_status_secondary(void) { | |||
| 268 | /* Show Keyboard Layout */ | 275 | /* Show Keyboard Layout */ |
| 269 | render_default_layer_state(); | 276 | render_default_layer_state(); |
| 270 | render_layer_state(); | 277 | render_layer_state(); |
| 271 | render_mod_status(get_mods()|get_oneshot_mods()); | 278 | render_mod_status(get_mods() | get_oneshot_mods()); |
| 272 | 279 | ||
| 273 | render_keylogger_status(); | 280 | render_keylogger_status(); |
| 274 | } | 281 | } |
| @@ -278,9 +285,11 @@ void oled_task_user(void) { | |||
| 278 | oled_off(); | 285 | oled_off(); |
| 279 | return; | 286 | return; |
| 280 | } | 287 | } |
| 281 | #ifndef SPLIT_KEYBOARD | 288 | # ifndef SPLIT_KEYBOARD |
| 282 | else { oled_on(); } | 289 | else { |
| 283 | #endif | 290 | oled_on(); |
| 291 | } | ||
| 292 | # endif | ||
| 284 | 293 | ||
| 285 | update_log(); | 294 | update_log(); |
| 286 | if (is_master) { | 295 | if (is_master) { |
| @@ -303,16 +312,12 @@ uint16_t get_tapping_term(uint16_t keycode) { | |||
| 303 | 312 | ||
| 304 | #ifdef RGB_MATRIX_ENABLE | 313 | #ifdef RGB_MATRIX_ENABLE |
| 305 | 314 | ||
| 306 | void suspend_power_down_keymap(void) { | 315 | void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); } |
| 307 | rgb_matrix_set_suspend_state(true); | ||
| 308 | } | ||
| 309 | 316 | ||
| 310 | void suspend_wakeup_init_keymap(void) { | 317 | void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } |
| 311 | rgb_matrix_set_suspend_state(false); | ||
| 312 | } | ||
| 313 | 318 | ||
| 314 | void check_default_layer(uint8_t mode, uint8_t type) { | 319 | void check_default_layer(uint8_t mode, uint8_t type) { |
| 315 | switch (biton32(default_layer_state)) { | 320 | switch (get_highest_layer(default_layer_state)) { |
| 316 | case _QWERTY: | 321 | case _QWERTY: |
| 317 | rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type); | 322 | rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type); |
| 318 | break; | 323 | break; |
| @@ -351,7 +356,7 @@ void rgb_matrix_indicators_user(void) { | |||
| 351 | rgb_matrix_config.enable | 356 | rgb_matrix_config.enable |
| 352 | # endif | 357 | # endif |
| 353 | ) { | 358 | ) { |
| 354 | switch (biton32(layer_state)) { | 359 | switch (get_highest_layer(layer_state)) { |
| 355 | case _GAMEPAD: | 360 | case _GAMEPAD: |
| 356 | rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); | 361 | rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); |
| 357 | break; | 362 | break; |
diff --git a/keyboards/gergo/keymaps/drashna/keymap.c b/keyboards/gergo/keymaps/drashna/keymap.c index edc5a9e99..d1e622406 100644 --- a/keyboards/gergo/keymaps/drashna/keymap.c +++ b/keyboards/gergo/keymaps/drashna/keymap.c | |||
| @@ -1,14 +1,12 @@ | |||
| 1 | /* Good on you for modifying your layout! if you don't have | ||
| 2 | * time to read the QMK docs, a list of keycodes can be found at | ||
| 3 | * | ||
| 4 | * https://github.com/qmk/qmk_firmware/blob/master/docs/keycodes.md | ||
| 5 | * | ||
| 6 | * There's also a template for adding new layers at the bottom of this file! | ||
| 7 | */ | ||
| 8 | |||
| 9 | #include QMK_KEYBOARD_H | ||
| 10 | #include "drashna.h" | 1 | #include "drashna.h" |
| 11 | 2 | ||
| 3 | /* | ||
| 4 | * The `LAYOUT_gergo_base` macro is a template to allow the use of identical | ||
| 5 | * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so | ||
| 6 | * that there is no need to set them up for each layout, and modify all of | ||
| 7 | * them if I want to change them. This helps to keep consistency and ease | ||
| 8 | * of use. K## is a placeholder to pass through the individual keycodes | ||
| 9 | */ | ||
| 12 | // clang-format off | 10 | // clang-format off |
| 13 | #define LAYOUT_gergo_base( \ | 11 | #define LAYOUT_gergo_base( \ |
| 14 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | 12 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ |
| @@ -17,7 +15,7 @@ | |||
| 17 | ) \ | 15 | ) \ |
| 18 | LAYOUT_gergo_wrapper( \ | 16 | LAYOUT_gergo_wrapper( \ |
| 19 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_PIPE, \ | 17 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_PIPE, \ |
| 20 | KC_TAB, K11, K12, K13, K14, K15, _______, _______, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ | 18 | LALT_T(KC_TAB), K11, K12, K13, K14, K15, _______, _______, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ |
| 21 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, _______, _______, _______, _______, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ | 19 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, _______, _______, _______, _______, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ |
| 22 | KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \ | 20 | KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \ |
| 23 | ) | 21 | ) |
diff --git a/keyboards/keebio/iris/keymaps/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h index 6fff5d72c..25678bd67 100644 --- a/keyboards/keebio/iris/keymaps/drashna/config.h +++ b/keyboards/keebio/iris/keymaps/drashna/config.h | |||
| @@ -32,7 +32,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 32 | # undef RGBLED_NUM | 32 | # undef RGBLED_NUM |
| 33 | # define RGBLED_NUM 18 // Number of LEDs | 33 | # define RGBLED_NUM 18 // Number of LEDs |
| 34 | # undef RGBLED_SPLIT | 34 | # undef RGBLED_SPLIT |
| 35 | # define RGBLED_SPLIT { 9, 9 } | 35 | # define RGBLED_SPLIT \ |
| 36 | { 9, 9 } | ||
| 36 | # define RGBLIGHT_HUE_STEP 8 | 37 | # define RGBLIGHT_HUE_STEP 8 |
| 37 | # define RGBLIGHT_SAT_STEP 8 | 38 | # define RGBLIGHT_SAT_STEP 8 |
| 38 | # define RGBLIGHT_VAL_STEP 8 | 39 | # define RGBLIGHT_VAL_STEP 8 |
diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c index de19f7ca0..edfcd23e7 100644 --- a/keyboards/keebio/iris/keymaps/drashna/keymap.c +++ b/keyboards/keebio/iris/keymaps/drashna/keymap.c | |||
| @@ -1,7 +1,13 @@ | |||
| 1 | |||
| 2 | #include QMK_KEYBOARD_H | ||
| 3 | #include "drashna.h" | 1 | #include "drashna.h" |
| 4 | 2 | ||
| 3 | /* | ||
| 4 | * The `LAYOUT_iris_base` macro is a template to allow the use of identical | ||
| 5 | * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so | ||
| 6 | * that there is no need to set them up for each layout, and modify all of | ||
| 7 | * them if I want to change them. This helps to keep consistency and ease | ||
| 8 | * of use. K## is a placeholder to pass through the individual keycodes | ||
| 9 | */ | ||
| 10 | |||
| 5 | // clang-format off | 11 | // clang-format off |
| 6 | #define LAYOUT_iris_base( \ | 12 | #define LAYOUT_iris_base( \ |
| 7 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | 13 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ |
| @@ -10,8 +16,8 @@ | |||
| 10 | ) \ | 16 | ) \ |
| 11 | LAYOUT_wrapper( \ | 17 | LAYOUT_wrapper( \ |
| 12 | KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, \ | 18 | KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, \ |
| 13 | KC_TAB , K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \ | 19 | LALT_T(KC_TAB), K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \ |
| 14 | KC_C1R3, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ | 20 | KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ |
| 15 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ | 21 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ |
| 16 | KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \ | 22 | KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \ |
| 17 | ) | 23 | ) |
diff --git a/keyboards/keebio/viterbi/keymaps/drashna/config.h b/keyboards/keebio/viterbi/keymaps/drashna/config.h index 201c02e41..40a5bbd0e 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/config.h +++ b/keyboards/keebio/viterbi/keymaps/drashna/config.h | |||
| @@ -21,27 +21,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 21 | #define MATRIX_ROWS 5 | 21 | #define MATRIX_ROWS 5 |
| 22 | 22 | ||
| 23 | #ifdef RGBLIGHT_ENABLE | 23 | #ifdef RGBLIGHT_ENABLE |
| 24 | # undef RGBLED_NUM | 24 | # undef RGBLED_NUM |
| 25 | # define RGBLED_NUM 16 | 25 | # define RGBLED_NUM 16 |
| 26 | |||
| 27 | # define RGBLIGHT_HUE_STEP 8 | ||
| 28 | # define RGBLIGHT_SAT_STEP 8 | ||
| 29 | # define RGBLIGHT_VAL_STEP 8 | ||
| 30 | # define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 | ||
| 31 | # define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 | ||
| 32 | #endif // RGBLIGHT_ENABLE | ||
| 33 | |||
| 34 | |||
| 35 | 26 | ||
| 27 | # define RGBLIGHT_HUE_STEP 8 | ||
| 28 | # define RGBLIGHT_SAT_STEP 8 | ||
| 29 | # define RGBLIGHT_VAL_STEP 8 | ||
| 30 | # define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 | ||
| 31 | # define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 | ||
| 32 | #endif // RGBLIGHT_ENABLE | ||
| 36 | 33 | ||
| 37 | #undef PRODUCT | 34 | #undef PRODUCT |
| 38 | #define PRODUCT Drashnas Viterbi Macro Pad | 35 | #define PRODUCT Drashnas Viterbi Macro Pad |
| 39 | 36 | ||
| 40 | #ifdef AUDIO_ENABLE | 37 | #ifdef AUDIO_ENABLE |
| 41 | # define C6_AUDIO | 38 | # define C6_AUDIO |
| 42 | # define NO_MUSIC_MODE | 39 | # define NO_MUSIC_MODE |
| 43 | #endif | 40 | #endif |
| 44 | 41 | ||
| 42 | // clang-format off | ||
| 45 | #define LAYOUT_ortho_5x7( \ | 43 | #define LAYOUT_ortho_5x7( \ |
| 46 | L00, L01, L02, L03, L04, L05, L06, \ | 44 | L00, L01, L02, L03, L04, L05, L06, \ |
| 47 | L10, L11, L12, L13, L14, L15, L16, \ | 45 | L10, L11, L12, L13, L14, L15, L16, \ |
| @@ -56,8 +54,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 56 | { L30, L31, L32, L33, L34, L35, L36 }, \ | 54 | { L30, L31, L32, L33, L34, L35, L36 }, \ |
| 57 | { L40, L41, L42, L43, L44, L45, L46 }, \ | 55 | { L40, L41, L42, L43, L44, L45, L46 }, \ |
| 58 | } | 56 | } |
| 57 | // clang-format on | ||
| 59 | 58 | ||
| 60 | #define QMK_ESC_OUTPUT F5 // usually COL | 59 | #define QMK_ESC_OUTPUT F5 // usually COL |
| 61 | #define QMK_ESC_INPUT D4 // usually ROW | 60 | #define QMK_ESC_INPUT D4 // usually ROW |
| 62 | #define QMK_LED B0 | 61 | #define QMK_LED B0 |
| 63 | #define QMK_SPEAKER C6 | 62 | #define QMK_SPEAKER C6 |
diff --git a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c index 9c17c5a57..3b213418d 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c | |||
| @@ -1,24 +1,15 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | #include "drashna.h" | 1 | #include "drashna.h" |
| 3 | 2 | ||
| 4 | extern keymap_config_t keymap_config; | ||
| 5 | |||
| 6 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 7 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 8 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 9 | // entirely and just use numbers. | ||
| 10 | |||
| 11 | |||
| 12 | // Fillers to make layering more clear | 3 | // Fillers to make layering more clear |
| 13 | #define DIABLO TG(_DIABLO) | 4 | #define DIABLO TG(_DIABLO) |
| 14 | #define GAMEPAD TG(_GAMEPAD) | 5 | #define GAMEPAD TG(_GAMEPAD) |
| 15 | #define MEDIA TT(_MEDIA) | 6 | #define MEDIA TT(_MEDIA) |
| 16 | 7 | ||
| 17 | 8 | // enum more_custom_keycodes { | |
| 18 | //enum more_custom_keycodes { | ||
| 19 | // KC_P00 = NEW_SAFE_RANGE | 9 | // KC_P00 = NEW_SAFE_RANGE |
| 20 | //}; | 10 | //}; |
| 21 | 11 | ||
| 12 | // clang-format off | ||
| 22 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 13 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 23 | 14 | ||
| 24 | [_NUMLOCK] = LAYOUT_ortho_5x7( | 15 | [_NUMLOCK] = LAYOUT_ortho_5x7( |
| @@ -55,32 +46,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 55 | 46 | ||
| 56 | 47 | ||
| 57 | }; | 48 | }; |
| 58 | 49 | // clang-format on | |
| 59 | |||
| 60 | 50 | ||
| 61 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | 51 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { |
| 62 | 52 | // switch (keycode) { | |
| 63 | //switch (keycode) { | 53 | // case KC_P00: |
| 64 | //case KC_P00: | 54 | // if (!record->event.pressed) { |
| 65 | // if (!record->event.pressed) { | 55 | // tap(KC_KP_0); |
| 66 | // tap(KC_KP_0); | 56 | // tap(KC_KP_0); |
| 67 | // tap(KC_KP_0); | 57 | // } |
| 68 | // } | 58 | // return false; |
| 69 | // return false; | 59 | // break; |
| 70 | // break; | 60 | //} |
| 71 | //} | 61 | return true; |
| 72 | return true; | ||
| 73 | } | 62 | } |
| 74 | 63 | ||
| 75 | |||
| 76 | |||
| 77 | |||
| 78 | void matrix_init_keymap(void) { | 64 | void matrix_init_keymap(void) { |
| 79 | #ifndef CONVERT_TO_PROTON_C | 65 | #ifndef CONVERT_TO_PROTON_C |
| 80 | setPinOutput(D5); | 66 | setPinOutput(D5); |
| 81 | writePinHigh(D5); | 67 | writePinHigh(D5); |
| 82 | 68 | ||
| 83 | setPinOutput(B0); | 69 | setPinOutput(B0); |
| 84 | writePinHigh(B0); | 70 | writePinHigh(B0); |
| 85 | #endif | 71 | #endif |
| 86 | } | 72 | } |
diff --git a/keyboards/kyria/keymaps/drashna/config.h b/keyboards/kyria/keymaps/drashna/config.h new file mode 100644 index 000000000..83d6283f5 --- /dev/null +++ b/keyboards/kyria/keymaps/drashna/config.h | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | /* Copyright 2019 Thomas Baart <thomas@splitkb.com> | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #define EE_HANDS | ||
| 20 | |||
| 21 | #ifdef OLED_DRIVER_ENABLE | ||
| 22 | # define OLED_DISPLAY_128X64 | ||
| 23 | # define OLED_FONT_H "font_gmk_bad.h" | ||
| 24 | # define OLED_DISABLE_TIMEOUT | ||
| 25 | # define OLED_SCROLL_TIMEOUT_RIGHT 60000 | ||
| 26 | #endif | ||
| 27 | |||
| 28 | #ifdef RGBLIGHT_ENABLE | ||
| 29 | # define RGBLIGHT_SLEEP | ||
| 30 | # define RGBLIGHT_LIMIT_VAL 200 | ||
| 31 | # define RGBLIGHT_HUE_STEP 8 | ||
| 32 | # define RGBLIGHT_SAT_STEP 8 | ||
| 33 | # define RGBLIGHT_VAL_STEP 8 | ||
| 34 | #endif | ||
| 35 | |||
| 36 | // If you are using an Elite C rev3 on the slave side, uncomment the lines below: | ||
| 37 | #define SPLIT_USB_DETECT | ||
| 38 | #define SPLIT_USB_TIMEOUT 1000 | ||
diff --git a/keyboards/kyria/keymaps/drashna/keymap.c b/keyboards/kyria/keymaps/drashna/keymap.c new file mode 100644 index 000000000..bdb00e596 --- /dev/null +++ b/keyboards/kyria/keymaps/drashna/keymap.c | |||
| @@ -0,0 +1,372 @@ | |||
| 1 | #include "drashna.h" | ||
| 2 | |||
| 3 | uint8_t is_master; | ||
| 4 | |||
| 5 | #ifdef OLED_DRIVER_ENABLE | ||
| 6 | # define KEYLOGGER_LENGTH 10 | ||
| 7 | static uint32_t oled_timer = 0; | ||
| 8 | static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"}; | ||
| 9 | static uint16_t log_timer = 0; | ||
| 10 | // clang-format off | ||
| 11 | static const char PROGMEM code_to_name[0xFF] = { | ||
| 12 | // 0 1 2 3 4 5 6 7 8 9 A B c D E F | ||
| 13 | ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x | ||
| 14 | 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x | ||
| 15 | '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x | ||
| 16 | ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x | ||
| 17 | ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x | ||
| 18 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x | ||
| 19 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x | ||
| 20 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x | ||
| 21 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x | ||
| 22 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x | ||
| 23 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax | ||
| 24 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx | ||
| 25 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx | ||
| 26 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx | ||
| 27 | 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex | ||
| 28 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx | ||
| 29 | }; | ||
| 30 | |||
| 31 | void add_keylog(uint16_t keycode); | ||
| 32 | #endif | ||
| 33 | |||
| 34 | #ifndef UNICODE_ENABLE | ||
| 35 | # define UC(x) KC_NO | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* | ||
| 39 | * The `LAYOUT_kyria_base` macro is a template to allow the use of identical | ||
| 40 | * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so | ||
| 41 | * that there is no need to set them up for each layout, and modify all of | ||
| 42 | * them if I want to change them. This helps to keep consistency and ease | ||
| 43 | * of use. K## is a placeholder to pass through the individual keycodes | ||
| 44 | */ | ||
| 45 | |||
| 46 | // clang-format off | ||
| 47 | #define LAYOUT_kyria_base( \ | ||
| 48 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | ||
| 49 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | ||
| 50 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ | ||
| 51 | ) \ | ||
| 52 | LAYOUT_wrapper( \ | ||
| 53 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ | ||
| 54 | LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ | ||
| 55 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, KC_NO, KC_NO, KC_NO, KC_NO, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ | ||
| 56 | KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \ | ||
| 57 | ) | ||
| 58 | /* Re-pass though to allow templates to be used */ | ||
| 59 | #define LAYOUT_kyria_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__) | ||
| 60 | |||
| 61 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 62 | |||
| 63 | [_QWERTY] = LAYOUT_kyria_base_wrapper( | ||
| 64 | _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, | ||
| 65 | _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, | ||
| 66 | _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ | ||
| 67 | ), | ||
| 68 | |||
| 69 | [_COLEMAK] = LAYOUT_kyria_base_wrapper( | ||
| 70 | _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, | ||
| 71 | _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, | ||
| 72 | _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ | ||
| 73 | ), | ||
| 74 | |||
| 75 | [_DVORAK] = LAYOUT_kyria_base_wrapper( | ||
| 76 | _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, | ||
| 77 | _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, | ||
| 78 | _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ | ||
| 79 | ), | ||
| 80 | |||
| 81 | [_WORKMAN] = LAYOUT_kyria_base_wrapper( | ||
| 82 | _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, | ||
| 83 | _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, | ||
| 84 | _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ | ||
| 85 | ), | ||
| 86 | |||
| 87 | [_NORMAN] = LAYOUT_kyria_base_wrapper( | ||
| 88 | _________________NORMAN_L1_________________, _________________NORMAN_L1_________________, | ||
| 89 | _________________NORMAN_L2_________________, _________________NORMAN_R2_________________, | ||
| 90 | _________________NORMAN_L3_________________, _________________NORMAN_R3_________________ | ||
| 91 | ), | ||
| 92 | |||
| 93 | [_MALTRON] = LAYOUT_kyria_base_wrapper( | ||
| 94 | _________________MALTRON_L1________________, _________________MALTRON_R1________________, | ||
| 95 | _________________MALTRON_L2________________, _________________MALTRON_R2________________, | ||
| 96 | _________________MALTRON_L3________________, _________________MALTRON_R3________________ | ||
| 97 | ), | ||
| 98 | |||
| 99 | [_EUCALYN] = LAYOUT_kyria_base_wrapper( | ||
| 100 | _________________EUCALYN_L1________________, _________________EUCALYN_R1________________, | ||
| 101 | _________________EUCALYN_L2________________, _________________EUCALYN_R2________________, | ||
| 102 | _________________EUCALYN_L3________________, _________________EUCALYN_R3________________ | ||
| 103 | ), | ||
| 104 | |||
| 105 | [_CARPLAX] = LAYOUT_kyria_base_wrapper( | ||
| 106 | _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________, | ||
| 107 | _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________, | ||
| 108 | _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ | ||
| 109 | ), | ||
| 110 | [_MODS] = LAYOUT_wrapper( | ||
| 111 | _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, | ||
| 112 | _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, | ||
| 113 | KC_LSFT, ___________________BLANK___________________, _______, _______, _______, _______, ___________________BLANK___________________, KC_RSFT, | ||
| 114 | _______, _______, KC_LALT, _______, _______, _______, _______, KC_RGUI, _______, _______ | ||
| 115 | ), | ||
| 116 | [_LOWER] = LAYOUT_wrapper( | ||
| 117 | KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, | ||
| 118 | _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, | ||
| 119 | _______, _________________LOWER_L3__________________, _______, _______, _______, _______, _________________LOWER_R3__________________, _______, | ||
| 120 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 121 | ), | ||
| 122 | [_RAISE] = LAYOUT_wrapper( | ||
| 123 | KC_F12, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_F11, | ||
| 124 | _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, | ||
| 125 | _______, _________________RAISE_L3__________________, _______, _______, _______, _______, _________________RAISE_R3__________________, _______, | ||
| 126 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 127 | ), | ||
| 128 | [_ADJUST] = LAYOUT_wrapper( | ||
| 129 | KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, | ||
| 130 | VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, | ||
| 131 | _______, _________________ADJUST_L3_________________, HPT_TOG, HPT_FBK, MG_NKRO, UC_MOD, _________________ADJUST_R3_________________, TG_MODS, | ||
| 132 | _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, _______ | ||
| 133 | ), | ||
| 134 | // [_LAYERINDEX] = LAYOUT_wrapper( | ||
| 135 | // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 136 | // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 137 | // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 138 | // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 139 | // ), | ||
| 140 | }; | ||
| 141 | // clang-format on | ||
| 142 | |||
| 143 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||
| 144 | if (record->event.pressed) { | ||
| 145 | #ifdef OLED_DRIVER_ENABLE | ||
| 146 | oled_timer = timer_read32(); | ||
| 147 | add_keylog(keycode); | ||
| 148 | #endif | ||
| 149 | #ifndef SPLIT_KEYBOARD | ||
| 150 | if (keycode == RESET && !is_master) { | ||
| 151 | return false; | ||
| 152 | } | ||
| 153 | #endif | ||
| 154 | } | ||
| 155 | return true; | ||
| 156 | } | ||
| 157 | void matrix_init_keymap(void) { is_master = (uint8_t)is_keyboard_master(); } | ||
| 158 | |||
| 159 | #ifdef OLED_DRIVER_ENABLE | ||
| 160 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; } | ||
| 161 | |||
| 162 | void add_keylog(uint16_t keycode) { | ||
| 163 | if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { | ||
| 164 | keycode = keycode & 0xFF; | ||
| 165 | } else if (keycode > 0xFF) { | ||
| 166 | keycode = 0; | ||
| 167 | } | ||
| 168 | |||
| 169 | for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) { | ||
| 170 | keylog_str[i] = keylog_str[i - 1]; | ||
| 171 | } | ||
| 172 | |||
| 173 | if (keycode < (sizeof(code_to_name) / sizeof(char))) { | ||
| 174 | keylog_str[0] = pgm_read_byte(&code_to_name[keycode]); | ||
| 175 | } | ||
| 176 | |||
| 177 | log_timer = timer_read(); | ||
| 178 | } | ||
| 179 | |||
| 180 | void update_log(void) { | ||
| 181 | if (timer_elapsed(log_timer) > 750) { | ||
| 182 | // add_keylog(0); | ||
| 183 | } | ||
| 184 | } | ||
| 185 | |||
| 186 | void render_keylogger_status(void) { | ||
| 187 | oled_write_P(PSTR("Keylogger: "), false); | ||
| 188 | oled_write(keylog_str, false); | ||
| 189 | } | ||
| 190 | |||
| 191 | void render_default_layer_state(void) { | ||
| 192 | oled_write_P(PSTR("Layout: "), false); | ||
| 193 | switch (get_highest_layer(default_layer_state)) { | ||
| 194 | case _QWERTY: | ||
| 195 | oled_write_ln_P(PSTR("Qwerty "), false); | ||
| 196 | break; | ||
| 197 | case _COLEMAK: | ||
| 198 | oled_write_ln_P(PSTR("Colemak"), false); | ||
| 199 | break; | ||
| 200 | case _DVORAK: | ||
| 201 | oled_write_ln_P(PSTR("Dvorak"), false); | ||
| 202 | break; | ||
| 203 | case _WORKMAN: | ||
| 204 | oled_write_ln_P(PSTR("Workman"), false); | ||
| 205 | break; | ||
| 206 | case _NORMAN: | ||
| 207 | oled_write_ln_P(PSTR("Norman"), false); | ||
| 208 | break; | ||
| 209 | case _MALTRON: | ||
| 210 | oled_write_ln_P(PSTR("Maltron"), false); | ||
| 211 | break; | ||
| 212 | case _EUCALYN: | ||
| 213 | oled_write_ln_P(PSTR("Eucalyn"), false); | ||
| 214 | break; | ||
| 215 | case _CARPLAX: | ||
| 216 | oled_write_ln_P(PSTR("Carplax"), false); | ||
| 217 | break; | ||
| 218 | } | ||
| 219 | } | ||
| 220 | |||
| 221 | void render_layer_state(void) { | ||
| 222 | oled_write_ln_P(PSTR("Layer:"), false); | ||
| 223 | oled_write_P(PSTR(" "), false); | ||
| 224 | oled_write_P(PSTR("Lower"), layer_state_is(_LOWER)); | ||
| 225 | oled_write_P(PSTR(" "), false); | ||
| 226 | oled_write_P(PSTR("Raise"), layer_state_is(_RAISE)); | ||
| 227 | oled_write_P(PSTR(" "), false); | ||
| 228 | oled_write_ln_P(PSTR("Mods"), layer_state_is(_MODS)); | ||
| 229 | } | ||
| 230 | |||
| 231 | void render_keylock_status(uint8_t led_usb_state) { | ||
| 232 | oled_write_P(PSTR("Lock: "), false); | ||
| 233 | oled_write_P(PSTR("NUM"), led_usb_state & (1 << USB_LED_NUM_LOCK)); | ||
| 234 | oled_write_P(PSTR(" "), false); | ||
| 235 | oled_write_P(PSTR("CAPS"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); | ||
| 236 | oled_write_P(PSTR(" "), false); | ||
| 237 | oled_write_ln_P(PSTR("SCL"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); | ||
| 238 | } | ||
| 239 | |||
| 240 | void render_mod_status(uint8_t modifiers) { | ||
| 241 | oled_write_P(PSTR("Mods: "), false); | ||
| 242 | oled_write_P(PSTR("Sft"), (modifiers & MOD_MASK_SHIFT)); | ||
| 243 | oled_write_P(PSTR(" "), false); | ||
| 244 | oled_write_P(PSTR("Ctl"), (modifiers & MOD_MASK_CTRL)); | ||
| 245 | oled_write_P(PSTR(" "), false); | ||
| 246 | oled_write_P(PSTR("Alt"), (modifiers & MOD_MASK_ALT)); | ||
| 247 | oled_write_P(PSTR(" "), false); | ||
| 248 | oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); | ||
| 249 | } | ||
| 250 | |||
| 251 | void render_bootmagic_status(void) { | ||
| 252 | /* Show Ctrl-Gui Swap options */ | ||
| 253 | static const char PROGMEM logo[][2][3] = { | ||
| 254 | {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, | ||
| 255 | {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, | ||
| 256 | }; | ||
| 257 | oled_write_P(PSTR("Boot "), false); | ||
| 258 | oled_write_P(logo[0][0], !keymap_config.swap_lctl_lgui); | ||
| 259 | oled_write_P(logo[1][0], keymap_config.swap_lctl_lgui); | ||
| 260 | oled_write_P(PSTR(" "), false); | ||
| 261 | oled_write_P(PSTR("NKRO"), keymap_config.nkro); | ||
| 262 | oled_write_P(PSTR(" "), false); | ||
| 263 | oled_write_ln_P(PSTR("GUI"), !keymap_config.no_gui); | ||
| 264 | oled_write_P(PSTR("Magic "), false); | ||
| 265 | oled_write_P(logo[0][1], !keymap_config.swap_lctl_lgui); | ||
| 266 | oled_write_P(logo[1][1], keymap_config.swap_lctl_lgui); | ||
| 267 | oled_write_P(PSTR(" "), false); | ||
| 268 | oled_write_P(PSTR("GRV"), keymap_config.swap_grave_esc); | ||
| 269 | oled_write_P(PSTR(" "), false); | ||
| 270 | oled_write_ln_P(PSTR("CAPS"), keymap_config.swap_control_capslock); | ||
| 271 | } | ||
| 272 | |||
| 273 | void render_user_status(void) { | ||
| 274 | oled_write_P(PSTR("USER: "), false); | ||
| 275 | oled_write_P(PSTR("Anim"), userspace_config.rgb_matrix_idle_anim); | ||
| 276 | oled_write_P(PSTR(" "), false); | ||
| 277 | oled_write_P(PSTR("Layr"), userspace_config.rgb_layer_change); | ||
| 278 | oled_write_P(PSTR(" "), false); | ||
| 279 | oled_write_ln_P(PSTR("Nuke"), userspace_config.nuke_switch); | ||
| 280 | } | ||
| 281 | |||
| 282 | // clang-format off | ||
| 283 | void render_logo(void) { | ||
| 284 | static const char PROGMEM qmk_logo[] = { | ||
| 285 | 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, | ||
| 286 | 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, | ||
| 287 | 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; | ||
| 288 | |||
| 289 | oled_write_P(qmk_logo, false); | ||
| 290 | } | ||
| 291 | |||
| 292 | # ifndef SPLIT_TRANSPORT_MIRROR | ||
| 293 | void render_kyria_logo(void) { | ||
| 294 | static const char PROGMEM kyria_logo[] = { | ||
| 295 | 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, | ||
| 296 | 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, | ||
| 297 | 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, | ||
| 298 | 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, | ||
| 299 | 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, | ||
| 300 | 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, | ||
| 301 | 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, | ||
| 302 | 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 | ||
| 303 | }; | ||
| 304 | oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); | ||
| 305 | } | ||
| 306 | # endif | ||
| 307 | // clang-format on | ||
| 308 | |||
| 309 | void render_status_main(void) { | ||
| 310 | /* Show Keyboard Layout */ | ||
| 311 | render_default_layer_state(); | ||
| 312 | render_keylock_status(host_keyboard_leds()); | ||
| 313 | render_bootmagic_status(); | ||
| 314 | render_user_status(); | ||
| 315 | |||
| 316 | render_keylogger_status(); | ||
| 317 | } | ||
| 318 | |||
| 319 | void render_status_secondary(void) { | ||
| 320 | /* Show Keyboard Layout */ | ||
| 321 | render_logo(); | ||
| 322 | render_default_layer_state(); | ||
| 323 | render_layer_state(); | ||
| 324 | render_mod_status(get_mods() | get_oneshot_mods()); | ||
| 325 | |||
| 326 | render_keylogger_status(); | ||
| 327 | } | ||
| 328 | |||
| 329 | void oled_task_user(void) { | ||
| 330 | if (timer_elapsed32(oled_timer) > 30000) { | ||
| 331 | oled_off(); | ||
| 332 | return; | ||
| 333 | } | ||
| 334 | # ifndef SPLIT_KEYBOARD | ||
| 335 | else { | ||
| 336 | oled_on(); | ||
| 337 | } | ||
| 338 | # endif | ||
| 339 | |||
| 340 | update_log(); | ||
| 341 | if (is_master) { | ||
| 342 | render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) | ||
| 343 | } else { | ||
| 344 | # ifdef SPLIT_TRANSPORT_MIRROR | ||
| 345 | render_status_secondary(); | ||
| 346 | # else | ||
| 347 | render_kyria_logo(); | ||
| 348 | # endif | ||
| 349 | } | ||
| 350 | } | ||
| 351 | |||
| 352 | #endif | ||
| 353 | |||
| 354 | #ifdef ENCODER_ENABLE | ||
| 355 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 356 | if (index == 0) { | ||
| 357 | // Volume control | ||
| 358 | if (clockwise) { | ||
| 359 | tap_code(KC_VOLU); | ||
| 360 | } else { | ||
| 361 | tap_code(KC_VOLD); | ||
| 362 | } | ||
| 363 | } else if (index == 1) { | ||
| 364 | // Page up/Page down | ||
| 365 | if (clockwise) { | ||
| 366 | tap_code(KC_PGDN); | ||
| 367 | } else { | ||
| 368 | tap_code(KC_PGUP); | ||
| 369 | } | ||
| 370 | } | ||
| 371 | } | ||
| 372 | #endif | ||
diff --git a/keyboards/kyria/keymaps/drashna/rules.mk b/keyboards/kyria/keymaps/drashna/rules.mk new file mode 100644 index 000000000..c1a37f5c5 --- /dev/null +++ b/keyboards/kyria/keymaps/drashna/rules.mk | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays | ||
| 2 | ENCODER_ENABLE = yes # ENables the use of one or more encoders | ||
| 3 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
| 4 | RGBLIGHT_STARTUP_ANIMATION = yes | ||
| 5 | |||
| 6 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | ||
| 7 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 8 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 9 | CONSOLE_ENABLE = no # Console for debug | ||
| 10 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 11 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 12 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default | ||
| 13 | MIDI_ENABLE = no # MIDI support | ||
| 14 | UNICODE_ENABLE = yes # Unicode | ||
| 15 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 16 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 17 | FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches | ||
| 18 | HD44780_ENABLE = no # Enable support for HD44780 based LCDs | ||
| 19 | |||
| 20 | BOOTLOADER = atmel-dfu | ||
| 21 | |||
| 22 | SPLIT_TRANSPORT = mirror | ||
diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h index 4719c2269..585c91640 100644 --- a/keyboards/orthodox/keymaps/drashna/config.h +++ b/keyboards/orthodox/keymaps/drashna/config.h | |||
| @@ -34,41 +34,40 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 34 | 34 | ||
| 35 | /* key combination for magic key command */ | 35 | /* key combination for magic key command */ |
| 36 | #undef IS_COMMAND | 36 | #undef IS_COMMAND |
| 37 | #define IS_COMMAND() ( \ | 37 | #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT))) |
| 38 | get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT)) \ | ||
| 39 | ) | ||
| 40 | 38 | ||
| 41 | #ifdef RGBLIGHT_ENABLE | 39 | #ifdef RGBLIGHT_ENABLE |
| 42 | # define RGB_DI_PIN D3 | 40 | # define RGB_DI_PIN D3 |
| 43 | # define RGBLED_NUM 16 // Number of LEDs | 41 | # define RGBLED_NUM 16 // Number of LEDs |
| 44 | # define RGBLED_SPLIT { 8, 8 } | 42 | # define RGBLED_SPLIT \ |
| 45 | 43 | { 8, 8 } | |
| 46 | # define RGBLIGHT_HUE_STEP 12 | 44 | |
| 47 | # define RGBLIGHT_SAT_STEP 12 | 45 | # define RGBLIGHT_HUE_STEP 12 |
| 48 | # define RGBLIGHT_VAL_STEP 12 | 46 | # define RGBLIGHT_SAT_STEP 12 |
| 49 | # define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 | 47 | # define RGBLIGHT_VAL_STEP 12 |
| 50 | # define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 | 48 | # define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 |
| 51 | #endif // RGBLIGHT_ENABLE | 49 | # define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 |
| 50 | #endif // RGBLIGHT_ENABLE | ||
| 52 | 51 | ||
| 53 | #ifdef AUDIO_ENABLE | 52 | #ifdef AUDIO_ENABLE |
| 54 | # define C6_AUDIO | 53 | # define C6_AUDIO |
| 55 | # ifdef RGBLIGHT_ENABLE | 54 | # ifdef RGBLIGHT_ENABLE |
| 56 | # define NO_MUSIC_MODE | 55 | # define NO_MUSIC_MODE |
| 57 | # endif | 56 | # endif |
| 58 | #endif //AUDIO_ENABLE | 57 | #endif // AUDIO_ENABLE |
| 59 | 58 | ||
| 60 | #undef PRODUCT | 59 | #undef PRODUCT |
| 61 | #ifdef KEYBOARD_orthodox_rev1 | 60 | #ifdef KEYBOARD_orthodox_rev1 |
| 62 | # define PRODUCT Drashna Hacked Orthodox Rev.1 | 61 | # define PRODUCT Drashna Hacked Orthodox Rev .1 |
| 63 | #elif KEYBOARD_orthodox_rev3 | 62 | #elif KEYBOARD_orthodox_rev3 |
| 64 | # define PRODUCT Drashna Hacked Orthodox Rev.3 | 63 | # define PRODUCT Drashna Hacked Orthodox Rev .3 |
| 65 | #endif | 64 | #endif |
| 66 | 65 | ||
| 67 | #define QMK_ESC_OUTPUT D7 // usually COL | 66 | #define QMK_ESC_OUTPUT D7 // usually COL |
| 68 | #ifdef KEYBOARD_orthodox_rev1 | 67 | #ifdef KEYBOARD_orthodox_rev1 |
| 69 | # define QMK_ESC_INPUT D4 // usually ROW | 68 | # define QMK_ESC_INPUT D4 // usually ROW |
| 70 | #else | 69 | #else |
| 71 | # define QMK_ESC_INPUT D2 // usually ROW | 70 | # define QMK_ESC_INPUT D2 // usually ROW |
| 72 | #endif | 71 | #endif |
| 73 | #define QMK_LED B0 | 72 | #define QMK_LED B0 |
| 74 | #define QMK_SPEAKER C6 | 73 | #define QMK_SPEAKER C6 |
diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index bf6b62b41..2dbe18634 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c | |||
| @@ -1,35 +1,12 @@ | |||
| 1 | /* | ||
| 2 | This is the keymap for the keyboard | ||
| 3 | |||
| 4 | Copyright 2012 Jun Wako <wakojun@gmail.com> | ||
| 5 | Copyright 2015 Jack Humbert | ||
| 6 | Copyright 2017 Art Ortenburger | ||
| 7 | |||
| 8 | This program is free software: you can redistribute it and/or modify | ||
| 9 | it under the terms of the GNU General Public License as published by | ||
| 10 | the Free Software Foundation, either version 2 of the License, or | ||
| 11 | (at your option) any later version. | ||
| 12 | |||
| 13 | This program is distributed in the hope that it will be useful, | ||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | GNU General Public License for more details. | ||
| 17 | |||
| 18 | You should have received a copy of the GNU General Public License | ||
| 19 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 20 | */ | ||
| 21 | |||
| 22 | #include QMK_KEYBOARD_H | ||
| 23 | #include "drashna.h" | 1 | #include "drashna.h" |
| 24 | 2 | ||
| 25 | #ifdef INDICATOR_LIGHTS | 3 | /* |
| 26 | extern userspace_config_t userspace_config; | 4 | * The `LAYOUT_orthodox_base` macro is a template to allow the use of identical |
| 27 | 5 | * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so | |
| 28 | uint8_t last_mod; | 6 | * that there is no need to set them up for each layout, and modify all of |
| 29 | uint8_t last_led; | 7 | * them if I want to change them. This helps to keep consistency and ease |
| 30 | uint8_t last_osm; | 8 | * of use. K## is a placeholder to pass through the individual keycodes |
| 31 | #endif | 9 | */ |
| 32 | |||
| 33 | // clang-format off | 10 | // clang-format off |
| 34 | #define LAYOUT_orthodox_base( \ | 11 | #define LAYOUT_orthodox_base( \ |
| 35 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | 12 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ |
| @@ -38,7 +15,7 @@ uint8_t last_osm; | |||
| 38 | ) \ | 15 | ) \ |
| 39 | LAYOUT_wrapper( \ | 16 | LAYOUT_wrapper( \ |
| 40 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ | 17 | KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ |
| 41 | KC_TAB, ALT_T(K11), K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ | 18 | LALT_T(KC_TAB), K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ |
| 42 | KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \ | 19 | KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \ |
| 43 | ) | 20 | ) |
| 44 | #define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__) | 21 | #define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__) |
