Keymap: Update for Drashna code - Proton C Prep Edition (#4708) * Make CRKBD keylogger output actually show tap keys * check MT/LT for twinkling * Add ortho 5x12 support for fractal keyboard * Use newer interface for setting pins/ports * Remove custom unicode methods * Reomve unicode input info * Odd rules issue * Redefine REST note to be more pleasing * Properly disable PM LEDs with GPIO commands * Update gitlab CI yaml file * Remove extra mod tap check * Remove initial state on ergodox glow * Rev6 Cleanup * Fix KC_MAKE macro * Update GitLab CI yaml file * More GitLab CI changes * One final GitLab CI change * Remove unneeded unicode support * Optimize KC_MAKE
19 files changed, 339 insertions(+), 193 deletions(-) M keyboards/crkbd/keymaps/drashna/keymap.c M keyboards/iris/keymaps/drashna/keymap.c M keyboards/orthodox/keymaps/drashna/keymap.c M keyboards/viterbi/keymaps/drashna/keymap.c M layouts/community/ergodox/drashna/keymap.c M layouts/community/ergodox/drashna/rules.mk M layouts/community/ergodox/drashna_glow/rules.mk M layouts/community/ortho_4x12/drashna/config.h M layouts/community/ortho_4x12/drashna/keymap.c A layouts/community/ortho_5x12/drashna/config.h A layouts/community/ortho_5x12/drashna/keymap.c A layouts/community/ortho_5x12/drashna/rules.mk M users/drashna/.gitlab-ci.yml M users/drashna/config.h M users/drashna/process_records.c M users/drashna/rgb_stuff.c M users/drashna/rules.mk D users/drashna/send_unicode.c M users/drashna/wrappers.h
M keyboards/crkbd/keymaps/drashna/keymap.c => keyboards/crkbd/keymaps/drashna/keymap.c +13 -11
@@ 88,16 88,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void matrix_init_keymap(void) { //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED iota_gfx_init(!has_usb()); // turns on the display #endif DDRD &= ~(1<<5); PORTD &= ~(1<<5); DDRB &= ~(1<<0); PORTB &= ~(1<<0); //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED iota_gfx_init(!has_usb()); // turns on the display #endif #ifndef CONVERT_TO_PROTON_C setPinOutput(D5); writePinHigh(D5); setPinOutput(B0); writePinHigh(B0); #endif } @@ //SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h 126,10 128,10 @@ const char code_to_name[60] = { void set_keylog(uint16_t keycode, keyrecord_t *record) { char name = ' '; if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } if (keycode < 60) { name = code_to_name[keycode]; } // update keylog snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", record->event.key.row, record->event.key.col,
M keyboards/iris/keymaps/drashna/keymap.c => keyboards/iris/keymaps/drashna/keymap.c +6 -4
@@ 89,9 89,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_init_keymap(void) { DDRD &= ~(1<<5); PORTD &= ~(1<<5); #ifndef CONVERT_TO_PROTON_C setPinOutput(D5); writePinHigh(D5); DDRB &= ~(1<<0); PORTB &= ~(1<<0); setPinOutput(B0); writePinHigh(B0); #endif }
M keyboards/orthodox/keymaps/drashna/keymap.c => keyboards/orthodox/keymaps/drashna/keymap.c +6 -4
@@ 97,9 97,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void matrix_init_keymap(void) { DDRD &= ~(1<<5); PORTD &= ~(1<<5); #ifndef CONVERT_TO_PROTON_C setPinOutput(D5); writePinHigh(D5); DDRB &= ~(1<<0); PORTB &= ~(1<<0); setPinOutput(B0); writePinHigh(B0); #endif }
M keyboards/viterbi/keymaps/drashna/keymap.c => keyboards/viterbi/keymaps/drashna/keymap.c +7 -4
@@ 87,10 87,13 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { void matrix_init_keymap(void) { DDRD &= ~(1<<5); PORTD &= ~(1<<5); #ifndef CONVERT_TO_PROTON_C setPinOutput(D5); writePinHigh(D5); DDRB &= ~(1<<0); PORTB &= ~(1<<0); setPinOutput(B0); writePinHigh(B0); #endif }
M layouts/community/ergodox/drashna/keymap.c => layouts/community/ergodox/drashna/keymap.c +2 -8
@@ 20,7 20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #ifdef UNICODEMAP_ENABLE #include "drashna_unicode.h" #endif // UNICODEMAP_ENABLE extern uint8_t input_mode; #ifdef RGB_MATRIX_ENABLE @@ extern bool g_suspend_state; 425,17 424,12 @@ void rgb_matrix_indicators_user(void) { } void matrix_init_keymap(void) { #if 0 #ifdef RGB_MATRIX_KEYPRESSES rgblight_mode(RGB_MATRIX_MULTISPLASH); #else rgblight_mode(RGB_MATRIX_RAINBOW_MOVING_CHEVRON); #endif input_mode = 2; } #else void matrix_init_keymap(void) { input_mode = 2; #endif } #endif //RGB_MATRIX_INIT
M layouts/community/ergodox/drashna/rules.mk => layouts/community/ergodox/drashna/rules.mk +1 -1
@@ 1,6 1,6 @@ TAP_DANCE_ENABLE = yes SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend COMMAND_ENABLE = yes # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration ifneq (,$(findstring ergodox_ez,$(KEYBOARD))) RGBLIGHT_ENABLE = yes RGB_MATRIX_ENABLE = no
M layouts/community/ergodox/drashna_glow/rules.mk => layouts/community/ergodox/drashna_glow/rules.mk +2 -0
@@ 7,3 7,5 @@ ifneq (,$(findstring ergodox_ez,$(KEYBOARD))) RGBLIGHT_ENABLE = no RGB_MATRIX_ENABLE = yes endif COMMAND_ENABLE = no
M layouts/community/ortho_4x12/drashna/config.h => layouts/community/ortho_4x12/drashna/config.h +1 -4
@@ 1,5 1,4 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H #pragma once @@ #if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM) 61,5 60,3 @@ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ //#define MIDI_TONE_KEYCODE_OCTAVES 2 #endif
M layouts/community/ortho_4x12/drashna/keymap.c => layouts/community/ortho_4x12/drashna/keymap.c +12 -1
@@ 94,7 94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUKE ) @@ 219,4 219,15 @@ void rgb_matrix_indicators_user(void) { void matrix_init_keymap(void) { rgblight_mode(RGB_MATRIX_MULTISPLASH); } #else //RGB_MATRIX_INIT void matrix_init_keymap(void) { #ifndef CONVERT_TO_PROTON_C setPinOutput(D5); writePinHigh(D5); setPinOutput(B0); writePinHigh(B0); #endif } #endif //RGB_MATRIX_INIT
A layouts/community/ortho_5x12/drashna/config.h => layouts/community/ortho_5x12/drashna/config.h +16 -0
@@ 0,0 1,16 @@ #pragma once /* ws2812 RGB LED */ #if defined(KEYBOARD_fractal) #define RGB_DI_PIN D2 #undef RGBLED_NUM #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 29 // Number of LEDs #undef RGBLIGHT_HUE_STEP #define RGBLIGHT_HUE_STEP 8 #undef RGBLIGHT_SAT_STEP #define RGBLIGHT_SAT_STEP 8 #undef RGBLIGHT_VAL_STEP #define RGBLIGHT_VAL_STEP 8 #endif
A layouts/community/ortho_5x12/drashna/keymap.c => layouts/community/ortho_5x12/drashna/keymap.c +156 -0
@@ 0,0 1,156 @@ /* Copyright 2015-2017 Jack Humbert * Modified by KeyPCB for the Fractal keyboard * Backlight isn't on the Fractal, so I've removed the keycode from the keymaps * * 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 <http://www.gnu.org/licenses/>. */ #include QMK_KEYBOARD_H #include "drashna.h" #define LAYOUT_ortho_5x12_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \ ) \ LAYOUT_ortho_5x12_wrapper( \ KC_GRV, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \ KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_QUOT, \ KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, CTL_T(K3A), KC_ENT, \ KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ) #define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_ortho_5x12_base_wrapper( ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ), [_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper( ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________ ), [_DVORAK] = LAYOUT_ortho_5x12_base_wrapper( ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________ ), [_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper( ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________ ), [_MODS] = LAYOUT_ortho_5x12_wrapper( _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LOWER] = LAYOUT_ortho_5x12_wrapper( \ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_PIPE, KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, _______, _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), /* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RAISE] = LAYOUT_ortho_5x12_wrapper( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________ ), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_5x12_wrapper( \ KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST, _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______, _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { switch (keycode) { } return true; }; void matrix_init_keymap(void) { #ifdef KEYBOARD_fractal setPinOutput(D5); writePinHigh(D5); setPinOutput(B0); writePinHigh(B0); #endif }
A layouts/community/ortho_5x12/drashna/rules.mk => layouts/community/ortho_5x12/drashna/rules.mk +23 -0
@@ 0,0 1,23 @@ BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration TAP_DANCE_ENABLE = no AUDIO_ENABLE = yes ifneq (,$(findstring fractal,$(KEYBOARD))) # Make sure it IS the Planck Light RGB_MATRIX_ENABLE = no AUDIO_ENABLE = no RGBLIGHT_ENABLE = yes RGBLIGHT_TWINKLE = yes BOOTLOADER = qmk-dfu endif ifeq ($(strip $(PROTOCOL)), VUSB) NKRO_ENABLE = no else NKRO_ENABLE = yes endif MACROS_ENABLED = no
M users/drashna/.gitlab-ci.yml => users/drashna/.gitlab-ci.yml +61 -9
@@ 1,26 1,78 @@ stages: - test - build - deploy qmk_firmware: Tests: stage: test variables: GIT_SUBMODULE_STRATEGY: recursive tags: - linux image: ubuntu:18.10 before_script: - apt-get update -qy - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - avr-gcc --version - uname -a script: - make test:all - make planck/rev6:default QMK Firmware Defaults: stage: deploy variables: GIT_SUBMODULE_STRATEGY: recursive tags: - linux image: ubuntu:18.10 before_script: - apt-get update -qy - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - avr-gcc --version - uname -a script: - make test:all - make all:default -j16 Drashna Firmware: stage: build variables: GIT_SUBMODULE_STRATEGY: recursive tags: - linux image: ubuntu image: ubuntu:18.10 before_script: - apt-get update -qy - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - avr-gcc --version script: - make iris/rev2:drashna iris/rev2:drashna_old ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna orthodox/rev1:drashna orthodox/rev3:drashna crkbd:drashna planck/light:drashna planck/rev6:drashna fractal:drashna artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" paths: - ./*.hex - ./*.bin expire_in: 1 month Firmware Deploy: stage: deploy dependencies: - Drashna Firmware variables: GIT_SUBMODULE_STRATEGY: recursive tags: - linux image: ubuntu:18.10 before_script: - apt-get update -qy - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util diffutils gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip - avr-gcc --version script: - make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna:production - make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna planck/rev6:drashna fractal:drashna:production artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" paths: - ./*.hex - ./*.bin only: - master - drashna_keymaps - merge-requests - branches expire_in: 1 month
M users/drashna/config.h => users/drashna/config.h +6 -2
@@ 14,8 14,12 @@ #define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f // #ifdef RGBLIGHT_ENABLE // #define NO_MUSIC_MODE // #endif //RGBLIGHT_ENABLE #endif // #endif //RGBLIGHT_ENABLE/ #ifndef __arm__ #undef NOTE_REST #define NOTE_REST 1.00f #endif // !__arm__ #endif // !AUDIO_ENABLE #ifdef RGBLIGHT_ENABLE #define RGBLIGHT_SLEEP
M users/drashna/process_records.c => users/drashna/process_records.c +22 -19
@@ 51,27 51,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader if (!record->event.pressed) { uint8_t temp_mod = get_mods(); uint8_t temp_osm = get_oneshot_mods(); clear_mods(); clear_oneshot_mods(); send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), 10); if (temp_mod & MODS_SHIFT_MASK || temp_osm & MODS_SHIFT_MASK) { #if defined(__ARM__) send_string_with_delay_P(PSTR(":dfu-util"), 10); #elif defined(BOOTLOADER_DFU) send_string_with_delay_P(PSTR(":dfu"), 10); #elif defined(BOOTLOADER_HALFKAY) send_string_with_delay_P(PSTR(":teensy"), 10); #elif defined(BOOTLOADER_CATERINA) send_string_with_delay_P(PSTR(":avrdude"), 10); #endif // bootloader options } #if !defined(KEYBOARD_viterbi) uint8_t temp_mod = get_mods(); uint8_t temp_osm = get_oneshot_mods(); clear_mods(); clear_oneshot_mods(); #endif send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), MACRO_TIMER); #if defined(KEYBOARD_viterbi) send_string_with_delay_P(PSTR(":dfu"), 10); send_string_with_delay_P(PSTR(":dfu" SS_TAP(X_ENTER)), MACRO_TIMER); #else if (temp_mod & MODS_SHIFT_MASK || temp_osm & MODS_SHIFT_MASK) { #if defined(__arm__) send_string_with_delay_P(PSTR(":dfu-util"), MACRO_TIMER); #elif defined(BOOTLOADER_DFU) send_string_with_delay_P(PSTR(":dfu"), MACRO_TIMER); #elif defined(BOOTLOADER_HALFKAY) send_string_with_delay_P(PSTR(":teensy"), MACRO_TIMER); #elif defined(BOOTLOADER_CATERINA) send_string_with_delay_P(PSTR(":avrdude"), MACRO_TIMER); #endif // bootloader options } if (temp_mod & MODS_CTRL_MASK || temp_osm & MODS_CTRL_MASK) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), MACRO_TIMER); } send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), MACRO_TIMER); set_mods(temp_mod); #endif if (temp_mod & MODS_CTRL_MASK || temp_osm & MODS_CTRL_MASK) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), 10); } send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10); set_mods(temp_mod); } break;
M users/drashna/rgb_stuff.c => users/drashna/rgb_stuff.c +4 -1
@@ 200,7 200,10 @@ void start_rgb_light(void) { bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } switch (keycode) { #ifdef RGBLIGHT_TWINKLE case KC_A ... KC_SLASH: case KC_F1 ... KC_F12:
M users/drashna/rules.mk => users/drashna/rules.mk +0 -13
@@ 42,16 42,3 @@ ifdef CONSOLE_ENABLE OPT_DEFS += -DKEYLOGGER_ENABLE endif endif ifeq ($(strip $(UCIS_ENABLE)), yes) SRC += send_unicode.c endif ifeq ($(strip $(UNICODEMAP_ENABLE)), yes) SRC += send_unicode.c endif ifeq ($(strip $(UNICODE_ENABLE)), yes) SRC += send_unicode.c endif
D users/drashna/send_unicode.c => users/drashna/send_unicode.c +0 -112
@@ 1,112 0,0 @@ // Written by konstantin: vomindoraan #include "send_unicode.h" #include <ctype.h> #include <string.h> __attribute__((weak)) void send_unicode_hex_string(const char* str) { if (!str) { return; } // Safety net while (*str) { // Find the next code point (token) in the string for (; *str == ' '; str++); size_t n = strcspn(str, " "); // Length of the current token char code_point[n+1]; strncpy(code_point, str, n); code_point[n] = '\0'; // Make sure it's null-terminated // Normalize the code point: make all hex digits lowercase for (char *p = code_point; *p; p++) { *p = tolower((unsigned char)*p); } // Send the code point as a Unicode input string unicode_input_start(); send_string(code_point); unicode_input_finish(); str += n; // Move to the first ' ' (or '\0') after the current token } } // (ノಠ痊ಠ)ノ彡┻━┻ // send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); //Old code // (╯°□°)╯ ︵ ┻━┻ #if 0 register_code(KC_RSFT); tap(KC_9); unregister_code(KC_RSFT); process_unicode((0x256F | QK_UNICODE), record); // Arm process_unicode((0x00B0 | QK_UNICODE), record); // Eye process_unicode((0x25A1 | QK_UNICODE), record); // Mouth process_unicode((0x00B0 | QK_UNICODE), record); // Eye register_code(KC_RSFT); tap(KC_0); unregister_code(KC_RSFT); process_unicode((0x256F | QK_UNICODE), record); // Arm tap(KC_SPC); process_unicode((0x0361 | QK_UNICODE), record); // Flippy tap(KC_SPC); process_unicode((0x253B | QK_UNICODE), record); // Table process_unicode((0x2501 | QK_UNICODE), record); // Table process_unicode((0x253B | QK_UNICODE), record); // Table #endif // If you need a good converter: https://r12a.github.io/app-conversion/ uint8_t saved_mods; void unicode_input_start (void) { // save current mods saved_mods = get_mods(); // Save current mods clear_mods(); // Unregister mods to start from a clean state switch(get_unicode_input_mode()) { case UC_OSX: register_code(KC_LALT); break; case UC_OSX_RALT: register_code(KC_RALT); break; case UC_LNX: register_code(KC_LCTL); register_code(KC_LSFT); register_code(KC_U); unregister_code(KC_U); unregister_code(KC_LSFT); unregister_code(KC_LCTL); break; case UC_WIN: register_code(KC_LALT); register_code(KC_PPLS); unregister_code(KC_PPLS); break; case UC_WINC: register_code(KC_RALT); unregister_code(KC_RALT); register_code(KC_U); unregister_code(KC_U); break; } wait_ms(UNICODE_TYPE_DELAY); } void unicode_input_finish (void) { switch(get_unicode_input_mode()) { case UC_OSX: case UC_WIN: unregister_code(KC_LALT); break; case UC_OSX_RALT: unregister_code(KC_RALT); break; case UC_LNX: register_code(KC_SPC); unregister_code(KC_SPC); break; } set_mods(saved_mods); // Reregister previously set mods }
M users/drashna/wrappers.h => users/drashna/wrappers.h +1 -0
@@ 14,6 14,7 @@ expanded before being used as arguments to the LAYOUT_xxx macro. #define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) #define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__) /* Blocks for each of the four major keyboard layouts