~ruther/qmk_firmware

33e9f1c75a6961fa25689aba2586fd0ef1fba75f — stanrc85 6 years ago be8257f
[Keymap] Add KC_MAKE keycode to my userspace and keymaps (#5324)

* Add keycode for KC_MAKE

* Add KC_MAKE keycode

* Add stanrc85.c file with KC_MAKE

* Remove unused include

* Improved KC_MAKE stolen from Drashna

* Define mod mask for new KC_MAKE code

* RESET board to flash after compiling

* Remove send_string

* RESET fixed in KC_MAKE
M keyboards/hs60/v2/keymaps/stanrc85/keymap.c => keyboards/hs60/v2/keymaps/stanrc85/keymap.c +2 -2
@@ 52,7 52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	[3] = LAYOUT_60_ansi(
		_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
		_______, EF_INC,  ES_INC,  S1_INC,  H1_INC,  S2_INC,  H2_INC,  BR_INC,  _______, _______, _______, _______, _______, RESET,
		TG(1),   EF_DEC,  ES_DEC,  S1_DEC,  H1_DEC,  S2_DEC,  H2_DEC,  BR_DEC,  _______, _______, _______, _______, _______,
		TG(1),   EF_DEC,  ES_DEC,  S1_DEC,  H1_DEC,  S2_DEC,  H2_DEC,  BR_DEC,  _______, _______, _______, _______, KC_MAKE,
		_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
		_______, _______, _______,                   _______,                   _______, _______, _______, _______)
};


@@ 65,6 65,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//  S2_INC, S2_DEC,   // Color 2 saturation increase/decrease
//  BR_INC, BR_DEC,   // backlight brightness increase/decrease

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  return true;
}

M layouts/community/60_ansi/stanrc85-ansi/keymap.c => layouts/community/60_ansi/stanrc85-ansi/keymap.c +2 -2
@@ 52,11 52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	[3] = LAYOUT_60_ansi(
		_______, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______,
		_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
		TG(1),   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
		TG(1),   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
		_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
		_______, _______, _______,                   _______,                   _______, _______, _______, _______)
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  return true;
}

M users/stanrc85/rules.mk => users/stanrc85/rules.mk +2 -0
@@ 8,6 8,8 @@ AUDIO_ENABLE = no
CONSOLE_ENABLE = no
NKRO_ENABLE = no

SRC += stanrc85.c

ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
  # Include my fancy rgb functions source here
  SRC += layer_rgb.c

A users/stanrc85/stanrc85.c => users/stanrc85/stanrc85.c +41 -0
@@ 0,0 1,41 @@
#include "stanrc85.h"

__attribute__ ((weak))
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  return true;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
  case KC_MAKE:
    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 ) {
          //RESET board for flashing if SHIFT held or tapped with KC_MAKE
          #if defined(__arm__)
            send_string_with_delay_P(PSTR(":dfu-util"), 10);
            wait_ms(100);
            reset_keyboard();
          #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);
          #else
            reset_keyboard();
          #endif // bootloader options
        }
        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);
      }
    return false;
    break;
  }
  return process_record_keymap(keycode, record);
}

M users/stanrc85/stanrc85.h => users/stanrc85/stanrc85.h +9 -0
@@ 1,12 1,21 @@
#pragma once

#include "quantum.h"
#include "version.h"

#define DEFAULT 0  //Custom ANSI
#define LAYER1 1   //Default ANSI (enable with Fn2+CAPS)
#define LAYER2 2   //Function keys, arrows, custom shortcuts, volume control
#define LAYER3 3   //RGB Underglow controls and RESET

enum custom_keycodes {
  KC_MAKE = SAFE_RANGE,
  NEW_SAFE_RANGE  //use "NEW_SAFE_RANGE" for keymap specific codes
};

#define MODS_SHIFT_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
#define MODS_CTRL_MASK  (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL))

//Aliases for longer keycodes
#define KC_CAD	LALT(LCTL(KC_DEL))
#define KC_LOCK	LGUI(KC_L)