~ruther/qmk_firmware

d5a76e899d1d4f91dc7d348075a08e42047fc8d1 — Drashna Jaelre 7 years ago dd05bf0
Updates to drashna keymaps and userspace (#2093)

* Add "secret" macor

* Updating secret macros

* Re-add RGB to Ergodox

* Fixed issue when RGB was disabled

* Consistency changes

* Updated bootloader macro

* Fixing audio setup

* Fix bootloader typo

* Update to full list of stings (for completeness)

* Template fix

* Finally got woodpad to force numlock

* Fix for new RGB mode
M keyboards/ergodox_ez/keymaps/drashna/keymap.c => keyboards/ergodox_ez/keymaps/drashna/keymap.c +3 -3
@@ 244,9 244,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                KC_MAKE,        KC_HASH,    KC_DLR,     KC_LPRN,    KC_RPRN,    KC_GRAVE,
                KC_RESET,       KC_PERC,    KC_CIRC,    KC_LBRACKET,KC_RBRACKET,KC_TILD,    KC_COLEMAK,
                KC_TRNS,          KC_AMPR,    KC_ASTR,    KC_COLN,    KC_SCOLON,
                                                                  KC_TRNS, KC_TRNS,
                                                                  KC_TRNS,
                                                                  KC_TRNS, KC_TRNS, KC_TRNS,
                                                                  RGB_SMOD, KC_RGB_T,
                                                                  RGB_HUI,
                                                                  RGB_M_R, RGB_M_SW, RGB_HUD,
                
                KC_QWERTY,   KC_F6,      KC_F7,      KC_F8,      KC_F9,      KC_F10,         KC_F11,
                KC_DVORAK,   KC_KP_PLUS, KC_KP_7,    KC_KP_8,    KC_KP_9,    KC_KP_ASTERISK, KC_F12,

M keyboards/handwired/woodpad/keymaps/drashna/keymap.c => keyboards/handwired/woodpad/keymaps/drashna/keymap.c +7 -7
@@ 13,7 13,7 @@
 * 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 "woodpad.h"
#include QMK_KEYBOARD_H
#include "drashna.h"

 // Each layer gets a name for readability, which is then used in the keymap matrix below.


@@ 97,12 97,6 @@ void matrix_init_keymap(void) {
  // set Numlock LED to output and low
  DDRF |= (1 << 7);
  PORTF &= ~(1 << 7);


  if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) {
    register_code(KC_NUMLOCK);
    unregister_code(KC_NUMLOCK);
  }
}

void matrix_scan_keymap(void) {


@@ 114,3 108,9 @@ void matrix_scan_keymap(void) {
  // Run Diablo 3 macro checking code.
}

void led_set_keymap(uint8_t usb_led) {
  if (!(usb_led & (1<<USB_LED_NUM_LOCK))) {
    register_code(KC_NUMLOCK);
    unregister_code(KC_NUMLOCK);
  }
}

M keyboards/orthodox/keymaps/drashna/config.h => keyboards/orthodox/keymaps/drashna/config.h +1 -0
@@ 63,6 63,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#ifdef AUDIO_ENABLE
#define C6_AUDIO
#define STARTUP_SONG SONG(ZELDA_PUZZLE)
#endif

#endif

M keyboards/orthodox/keymaps/drashna/keymap.c => keyboards/orthodox/keymaps/drashna/keymap.c +23 -16
@@ 19,7 19,7 @@ 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 "orthodox.h"
#include QMK_KEYBOARD_H
#include "drashna.h"




@@ 32,6 32,18 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define _______ KC_TRNS
#define XXXXXXX KC_NO

#ifdef FAUXCLICKY_ENABLE
float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2);  // (_D4, 0.25);
float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125);
float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 2);       // (_C4, 0.25);
#define AUD_ON  FC_ON
#define AUD_OFF FC_OFF
#else
#define AUD_ON  AU_ON
#define AUD_OFF AU_OFF

#endif 


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {



@@ 48,20 60,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),

[_DVORAK] = KEYMAP(\
    KC_ESC,   KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y,                                                                   KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC, \
    KC_TAB,   KC_A,    KC_O,    KC_E,   KC_U,     KC_I,      KC_UP, XXXXXXX,  KC_DOWN,        KC_LEFT, XXXXXXX, KC_RIGHT, KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS, \
    KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K,    KC_X,      LOWER, KC_SPACE, KC_BSPC,        KC_DEL,  KC_ENT,  RAISE,    KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z), KC_LGUI \
  KC_ESC,   KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y,                                                                   KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC, \
  KC_TAB,   KC_A,    KC_O,    KC_E,   KC_U,     KC_I,      KC_UP, XXXXXXX,  KC_DOWN,        KC_LEFT, XXXXXXX, KC_RIGHT, KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS, \
  KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K,    KC_X,      LOWER, KC_SPACE, KC_BSPC,        KC_DEL,  KC_ENT,  RAISE,    KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z), KC_LGUI \
),
[_WORKMAN] = KEYMAP(\
    KC_ESC,   KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y,                                                                   KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC, \
    KC_TAB,   KC_A,    KC_O,    KC_E,   KC_U,     KC_I,      KC_UP, XXXXXXX,  KC_DOWN,        KC_LEFT, XXXXXXX, KC_RIGHT, KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS, \
    KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K,    KC_X,      LOWER, KC_SPACE, KC_BSPC,        KC_DEL,  KC_ENT,  RAISE,    KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z), KC_LGUI \
  KC_ESC,   KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y,                                                                   KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC, \
  KC_TAB,   KC_A,    KC_O,    KC_E,   KC_U,     KC_I,      KC_UP, XXXXXXX,  KC_DOWN,        KC_LEFT, XXXXXXX, KC_RIGHT, KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS, \
  KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K,    KC_X,      LOWER, KC_SPACE, KC_BSPC,        KC_DEL,  KC_ENT,  RAISE,    KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z), KC_LGUI \
),

[_LOWER] = KEYMAP(\
  KC_TILD,    KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                                KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_BSPC, \
  KC_DEL,     KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F11,   XXXXXXX, KC_F12,          _______, XXXXXXX, KC_RCTL, XXXXXXX, KC_UNDS,    KC_PLUS,    KC_LCBR, KC_RCBR, KC_PIPE, \
  _______,    KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______, _______, _______,          _______, _______, _______, XXXXXXX, KC_HOME,    KC_COMM,    KC_DOT,  KC_END,  _______ \
  KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                                KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_BSPC, \
  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,      KC_F11,   XXXXXXX, KC_F12,          _______, XXXXXXX, KC_RCTL, XXXXXXX, KC_UNDS,    KC_PLUS,    KC_LCBR, KC_RCBR, KC_PIPE, \
  _______, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,     _______, _______, _______,          _______, _______, _______, XXXXXXX, KC_HOME,    KC_COMM,    KC_DOT,  KC_END,  _______ \
),

[_RAISE] = KEYMAP(\


@@ 72,15 84,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_ADJUST] = KEYMAP(\
  KC_MAKE,KC_RESET, _______, _______, _______, _______,                                                                _______, _______, _______, _______, _______, _______,  \
  RGB_SMOD,RGB_HUI, _______, AU_ON,   AU_OFF,  AG_NORM, _______, XXXXXXX, _______,          _______, XXXXXXX, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______, \
  RGB_SMOD,RGB_HUI, _______, AUD_ON,  AUD_OFF, AG_NORM, _______, XXXXXXX, _______,          _______, XXXXXXX, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______, \
  KC_RGB_T,RGB_HUD, MU_ON,   MU_OFF,  MU_TOG,  MU_MOD,  _______, _______, _______,          _______, _______, _______, MAGIC_TOGGLE_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY  \
)


};

#ifdef FAUXCLICKY_ENABLE
float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2);  // (_D4, 0.25);
float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125);
float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 2);       // (_C4, 0.25);
#endif 

M keyboards/viterbi/keymaps/drashna/keymap.c => keyboards/viterbi/keymaps/drashna/keymap.c +1 -1
@@ 1,4 1,4 @@
#include "viterbi.h"
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
#include "drashna.h"

M users/drashna/drashna.c => users/drashna/drashna.c +40 -36
@@ 19,6 19,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#include "action.h"
#include "version.h"
#include "sensitive.h"

#ifdef TAP_DANCE_ENABLE
//define diablo macro timer variables


@@ 78,6 79,14 @@ qk_tap_dance_action_t tap_dance_actions[] = {
};
#endif

#ifdef AUDIO_ENABLE
float tone_qwerty[][2]       = SONG(QWERTY_SOUND);
float tone_dvorak[][2]       = SONG(DVORAK_SOUND);
float tone_colemak[][2]      = SONG(COLEMAK_SOUND);
float tone_workman[][2]      = SONG(PLOVER_SOUND);
float tone_hackstartup[][2]  = SONG(ONE_UP_SOUND);
#endif


// Add reconfigurable functions here, for keymap customization
// This allows for a global, userspace functions, and continued


@@ 138,6 147,11 @@ void matrix_init_user(void) {
    rgblight_mode(5);
  }
#endif
#ifdef AUDIO_ENABLE
//  _delay_ms(21); // gets rid of tick
//  stop_all_notes();
//  PLAY_SONG(tone_hackstartup);
#endif
  matrix_init_keymap();
}
#ifdef TAP_DANCE_ENABLE


@@ 190,13 204,6 @@ void led_set_user(uint8_t usb_led) {
}


#ifdef AUDIO_ENABLE
float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
float tone_workman[][2]    = SONG(PLOVER_SOUND);
#endif


void persistent_default_layer_set(uint16_t default_layer) {
  eeconfig_update_default_layer(default_layer);


@@ 427,28 434,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
  case KC_MAKE:
    if (!record->event.pressed) {
      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
#ifndef BOOTLOADER_CATERINA
      SEND_STRING(":teensy ");
#else
      SEND_STRING(" ");
      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
#if  (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
       ":dfu"
#elif defined(BOOTLOADER_HALFKAY)
      ":teensy"
#elif defined(BOOTLOADER_CATERINA)
       ":avrdude"
#endif
#ifdef RGBLIGHT_ENABLE
      SEND_STRING("RGBLIGHT_ENABLE=yes ");
        " RGBLIGHT_ENABLE=yes"
#else
      SEND_STRING("RGBLIGHT_ENABLE=no ");
        " RGBLIGHT_ENABLE=no"
#endif
#ifdef AUDIO_ENABLE
      SEND_STRING("AUDIO_ENABLE=yes ");
        " AUDIO_ENABLE=yes"
#else
      SEND_STRING("AUDIO_ENABLE=no ");
        " AUDIO_ENABLE=no"
#endif
#ifdef FAUXCLICKY_ENABLE
      SEND_STRING("FAUXCLICKY_ENABLE=yes ");
        " FAUXCLICKY_ENABLE=yes"
#else
      SEND_STRING("FAUXCLICKY_ENABLE=no ");
        " FAUXCLICKY_ENABLE=no" 
#endif
      SEND_STRING(SS_TAP(X_ENTER));
        SS_TAP(X_ENTER));
    }
    return false;
    break;


@@ 475,33 484,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    }
    return false;
    break;
  case KC_SECRET_1 ... KC_SECRET_5:
    if (!record->event.pressed) {
      send_string(secret[keycode - KC_SECRET_1]);
    }
    return false;
    break;
  case KC_RGB_T:  // Because I want the option to go back to normal RGB mode rather than always layer indication
#ifdef RGBLIGHT_ENABLE
    if (record->event.pressed) {
      rgb_layer_change = !rgb_layer_change;
    }
#endif
    return false;
    break;
  case RGB_MOD:
  case RGB_SMOD:
  case RGB_HUI:
  case RGB_HUD:
  case RGB_SAI:
  case RGB_SAD:
  case RGB_VAI:
  case RGB_VAD:
  case RGB_MODE_PLAIN:
  case RGB_MODE_BREATHE:
  case RGB_MODE_RAINBOW:
  case RGB_MODE_SWIRL:
  case RGB_MODE_SNAKE:
  case RGB_MODE_KNIGHT:
  case RGB_MODE_XMAS:
  case RGB_MODE_GRADIENT:
    if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
  case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
    if (record->event.pressed) { //This disrables layer indication, as it's assumed that if you're changing this ... you want that disabled
      rgb_layer_change = false;
    }
    return true;
    break;
#endif
  }
  return process_record_keymap(keycode, record);
}

M users/drashna/drashna.h => users/drashna/drashna.h +10 -0
@@ 19,6 19,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define USERSPACE

#include "quantum.h"
#include "song_list.h"

// Define layer names 
#define _QWERTY 0


@@ 86,6 87,11 @@ enum userrpace_custom_keycodes {
  KC_MAKE,
  KC_RESET,
  KC_RGB_T,
  KC_SECRET_1,
  KC_SECRET_2,
  KC_SECRET_3,
  KC_SECRET_4,
  KC_SECRET_5,
  NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
};



@@ 99,6 105,10 @@ enum {
#endif


#define QMK_KEYS_PER_SCAN 4

#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_SLEEP
#endif

#endif

A users/drashna/sensitive.h => users/drashna/sensitive.h +8 -0
@@ 0,0 1,8 @@
const char secret[][64] = {
  "test1",
  "test2",
  "test3",
  "test4",
  "test5"
};


M users/drashna/template.c => users/drashna/template.c +6 -0
@@ 21,6 21,8 @@ __attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
  return state;
}
__attribute__ ((weak))
void led_set_keymap(uint8_t usb_led) {}

// Call user matrix init, then call the keymap's init function
void matrix_init_user(void) {


@@ 82,3 84,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
uint32_t layer_state_set_user (uint32_t state) {
  return layer_state_set_keymap (state);
}

void led_set_user(uint8_t usb_led) {
   led_set_keymap(usb_led);
}