summaryrefslogtreecommitdiff
path: root/keyboards/orthodox/keymaps/drashna
diff options
context:
space:
mode:
authordrashna <drashna@live.com>2017-11-01 00:13:20 -0700
committerskullydazed <skullydazed@users.noreply.github.com>2017-11-01 00:13:20 -0700
commitb79a4cfeba32260a7d17c6e439ccd050416354f7 (patch)
tree91afc3fbf7708c9f5c83b56e99a1690278b7a827 /keyboards/orthodox/keymaps/drashna
parent44d9ad95b7600fbcad75704dd4ffc163fc6c734d (diff)
downloadqmk_firmware-b79a4cfeba32260a7d17c6e439ccd050416354f7.tar.gz
qmk_firmware-b79a4cfeba32260a7d17c6e439ccd050416354f7.zip
Updated personal keymaps (#1945)
* Add woodpad * Cleanup * Remove misc layouts for woodpad * Move woodpad to handwired * Updated RGB Underglow info * Cleanup macros * Fix odd merge issue * Tweaked RGB lighting stuff * Start to merge orthodox/ergodox keymaps (persistant layers) * Add forced NKRO * Added Colemak and Dvorak layers to default orthodox keymap * Added default layer (qwerty/colemak/dvorak) detection to RGB Underglow * Updated macros and added workman keymaps * Fixed RGB lighting for Workman layout * Add leader keys * Remove force NKRO * Add Viterbi one handed layout and minor tweaks to others * Finishing up Viterbi keyboard layout, and NKRO tweaks to other layouts * Made "make" keystroke universal * Clean up and updates of drashna keymaps * Add workman layer to planck * Update to keymaps * Fix accidental commit because I don't know how to git * Fix makefile toggle code in ez keymap Finish adding RGB code to orthodox * missing underscore in init function declaration * Updated RGB Underglow layer indication code due to discovery of the layer_state_set_kb function * Remove unnecessary planck layout
Diffstat (limited to 'keyboards/orthodox/keymaps/drashna')
-rw-r--r--keyboards/orthodox/keymaps/drashna/config.h11
-rw-r--r--keyboards/orthodox/keymaps/drashna/keymap.c236
-rw-r--r--keyboards/orthodox/keymaps/drashna/rules.mk9
3 files changed, 144 insertions, 112 deletions
diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h
index d79fd302e8..fc483b08e6 100644
--- a/keyboards/orthodox/keymaps/drashna/config.h
+++ b/keyboards/orthodox/keymaps/drashna/config.h
@@ -40,9 +40,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#endif
+/* key combination for command */
+#ifdef IS_COMMAND
+#undef IS_COMMAND
+#endif
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT)) \
+)
+
+
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
-#define RGBLED_NUM 12 // Number of LEDs
+#define RGBLED_NUM 16 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c
index a15fa6f753..de7d4e1080 100644
--- a/keyboards/orthodox/keymaps/drashna/keymap.c
+++ b/keyboards/orthodox/keymaps/drashna/keymap.c
@@ -45,6 +45,7 @@ enum custom_keycodes {
LOWER,
RAISE,
ADJUST,
+ KC_MAKE
};
// Fillers to make layering more clear
@@ -52,21 +53,17 @@ enum custom_keycodes {
#define XXXXXXX KC_NO
#ifdef RGBLIGHT_ENABLE
-//define layer change stuff for underglow indicator
-#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
-#define rgblight_set_red rgblight_sethsv(0x00, 0xFF, 0xFF);
-#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
-#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
-#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
-#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
-#define rgblight_set_urine rgblight_sethsv (0x3C, 0xFF, 0xFF);
-#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
-
-//This is both for underglow, and Diablo 3 macros
-bool has_layer_changed = true;
-static uint8_t current_layer = 10;
+#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
+#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
+#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
+#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
+#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
+#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
+#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
+#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
#endif
+
#ifdef TAP_DANCE_ENABLE
enum {
TD_FLSH = 0,
@@ -84,8 +81,8 @@ void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
rgblight_mode(1);
rgblight_setrgb(0xff, 0x00, 0x00);
#endif
- reset_keyboard();
reset_tap_dance(state);
+ reset_keyboard();
}
}
@@ -137,9 +134,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = KEYMAP( \
- _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
+ KC_MAKE, RESET, TD(TD_FLSH), _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, XXXXXXX, _______, _______, XXXXXXX, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN, _______, \
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MAGIC_TOGGLE_NKRO, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MAGIC_TOGGLE_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY \
)
@@ -149,6 +146,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_SONG);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
@@ -159,23 +157,23 @@ void persistent_default_layer_set(uint16_t default_layer) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
- if (record->event.pressed) {
+ if (record->event.pressed) {
#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
+ PLAY_SONG(tone_qwerty);
#endif
- persistent_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
+ persistent_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
case COLEMAK:
- if (record->event.pressed) {
+ if (record->event.pressed) {
#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_colemak);
+ PLAY_SONG(tone_colemak);
#endif
- persistent_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
+ persistent_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
case DVORAK:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
@@ -188,102 +186,124 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case WORKMAN:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_dvorak);
+ PLAY_SONG(tone_workman);
#endif
persistent_default_layer_set(1UL << _WORKMAN);
}
return false;
break;
case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ case KC_MAKE:
+ if (!record->event.pressed) {
+#ifdef RGBLIGHT_ENABLE
+ SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
+#else
+ SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP " RGBLIGHT_ENABLE=no"SS_TAP(X_ENTER));
+#endif
+ }
+ return false;
+ break;
+
}
return true;
}
-#ifdef RGBLIGHT_ENABLE
+void matrix_init_user(void) { // Runs boot tasks for keyboard
+#ifdef RGBLIGHT_ENABLE
+ uint8_t default_layer = eeconfig_read_default_layer();
+ rgblight_enable();
+ if (default_layer & (1UL << _COLEMAK)) {
+ rgblight_set_magenta;
+}
+ else if (default_layer & (1UL << _DVORAK)) {
+ rgblight_set_green;
+ }
+ else if (default_layer & (1UL << _WORKMAN)) {
+ rgblight_set_purple;
+ }
+ else {
+ rgblight_set_teal;
+ }
+#endif
+};
void matrix_scan_user(void) { // runs frequently to update info
- uint8_t layer = biton32(layer_state);
- if (layer != current_layer) {
- has_layer_changed = true;
- current_layer = layer;
- }
- // Check layer, and apply color if its changed since last check
- if (has_layer_changed) {
- uint8_t default_layer = 0;
- default_layer = eeconfig_read_default_layer();
-
- switch (layer) {
- case _QWERTY:
- if (default_layer & (1UL << _COLEMAK)) {
- rgblight_set_magenta;
- }
- else if (default_layer & (1UL << _DVORAK)) {
- rgblight_set_green;
- }
- else if (default_layer & (1UL << _WORKMAN)) {
- rgblight_set_purple;
- }
- else {
- rgblight_set_teal;
- }
- rgblight_mode(1);
- break;
- case _COLEMAK:
- rgblight_set_magenta;
- rgblight_mode(1);
- break;
- case _DVORAK:
- rgblight_set_green;
- rgblight_mode(1);
- break;
- case _RAISE:
- rgblight_set_blue;
- rgblight_mode(2);
- break;
- case _LOWER:
- rgblight_set_orange;
- rgblight_mode(3);
- break;
- case _ADJUST:
- rgblight_set_red;
- rgblight_mode(17);
- break;
- case 6:
- rgblight_set_urine;
- break;
+};
+
+uint32_t layer_state_set_kb(uint32_t state) { // runs on layer switch
+#ifdef RGBLIGHT_ENABLE
+ uint8_t default_layer = eeconfig_read_default_layer();
+
+ switch (biton32(state)) {
+ case _COLEMAK:
+ rgblight_set_magenta;
+ rgblight_mode(1);
+ break;
+ case _DVORAK:
+ rgblight_set_green;
+ rgblight_mode(1);
+ break;
+ case _RAISE:
+ rgblight_set_yellow;
+ rgblight_mode(5);
+ break;
+ case _LOWER:
+ rgblight_set_orange;
+ rgblight_mode(5);
+ break;
+ case _ADJUST:
+ rgblight_set_red;
+ rgblight_mode(23);
+ break;
+ case 6:
+ rgblight_set_blue;
+ break;
+ case _QWERTY:
+ if (default_layer & (1UL << _COLEMAK)) {
+ rgblight_set_magenta;
+ }
+ else if (default_layer & (1UL << _DVORAK)) {
+ rgblight_set_green;
}
- has_layer_changed = false;
+ else if (default_layer & (1UL << _WORKMAN)) {
+ rgblight_set_purple;
+ }
+ else {
+ rgblight_set_teal;
+ }
+ rgblight_mode(1);
+ break;
}
-
- };
-#endif \ No newline at end of file
+#endif
+ return state;
+}
diff --git a/keyboards/orthodox/keymaps/drashna/rules.mk b/keyboards/orthodox/keymaps/drashna/rules.mk
index 4980c0315a..bb4aad6890 100644
--- a/keyboards/orthodox/keymaps/drashna/rules.mk
+++ b/keyboards/orthodox/keymaps/drashna/rules.mk
@@ -1,8 +1,11 @@
CONSOLE_ENABLE = no
-TAP_DANCE_ENABLE = yes
-RGBLIGHT_ENABLE = no
+TAP_DANCE_ENABLE = no
+RGBLIGHT_ENABLE = yes
+AUDIO_ENABLE = no
MOUSEKEY_ENABLE = no
-
+NKRO_ENABLE = yes
+FAUXCLICKY_ENABLE = no
+EXTRAFLAGS = -flto
ifndef QUANTUM_DIR
include ../../../../Makefile