]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - layouts/community/ortho_4x12/drashna/keymap.c
[Keymap] Update to Drashna Keymaps (#5594)
[qmk_firmware.git] / layouts / community / ortho_4x12 / drashna / keymap.c
index 108df693157db6d312eb46f4f2fac186bd251dec..16defede9671cdbe1fcb0d3556526cfa2954efc9 100644 (file)
 #include QMK_KEYBOARD_H
 #include "drashna.h"
 
+#ifdef RGB_MATRIX_ENABLE
+extern bool g_suspend_state;
+extern rgb_config_t rgb_matrix_config;
+#endif
+#ifdef RGBLIGHT_ENABLE
+extern rgblight_config_t rgblight_config;
+#endif
+
+
 #ifdef BACKLIGHT_ENABLE
 enum planck_keycodes {
   BACKLIT = NEW_SAFE_RANGE,
@@ -41,58 +50,81 @@ enum planck_keycodes {
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
-[_QWERTY] = LAYOUT_ortho_4x12_base_wrapper(
-  _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
-  _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
-  _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
-),
-
-[_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper(
-  _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
-  _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
-  _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
-),
-
-[_DVORAK] = LAYOUT_ortho_4x12_base_wrapper(
-  _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
-  _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
-  _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
-),
-
-[_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper(
-  _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
-  _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
-  _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
-),
-
-[_MODS] = LAYOUT_ortho_4x12_wrapper(
-  _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
-  _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
-  KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_LOWER] = LAYOUT_ortho_4x12_wrapper(
-  KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
-  KC_DEL,  _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
-  _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-[_RAISE] = LAYOUT_ortho_4x12_wrapper(
-  KC_GRV,  _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
-  KC_DEL,  _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
-  _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
-  _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
-),
-
-[_ADJUST] = LAYOUT_ortho_4x12_wrapper(
-  KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
-  VRSN,    _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EPRM,
-  _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
+  [_QWERTY] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+    _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+    _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+  ),
+
+  [_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+    _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+    _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+  ),
+
+  [_DVORAK] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+    _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+    _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
+  ),
+
+  [_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
+    _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
+    _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
+  ),
+
+  [_NORMAN] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
+    _________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
+    _________________NORMAN_L3_________________, _________________NORMAN_R3_________________
+  ),
+
+  [_MALTRON] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________MALTRON_L1________________, _________________MALTRON_R1________________,
+    _________________MALTRON_L2________________, _________________MALTRON_R2________________,
+    _________________MALTRON_L3________________, _________________MALTRON_R3________________
+  ),
+
+  [_EUCALYN] = LAYOUT_ortho_4x12_base_wrapper(
+    _________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
+    _________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
+    _________________EUCALYN_L3________________, _________________EUCALYN_R3________________
+  ),
+
+  [_CARPLAX] = LAYOUT_ortho_4x12_base_wrapper(
+    _____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
+    _____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
+    _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
+  ),
+
+  [_MODS] = LAYOUT_ortho_4x12_wrapper(
+    _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+    _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+    KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+  ),
 
+  [_LOWER] = LAYOUT_ortho_4x12_wrapper(
+    KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
+    KC_DEL,  _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
+    _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+  ),
+
+  [_RAISE] = LAYOUT_ortho_4x12_wrapper(
+    KC_GRV,  _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
+    KC_DEL,  _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
+    _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
+    _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
+  ),
+
+  [_ADJUST] = LAYOUT_ortho_4x12_wrapper(
+    KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
+    VRSN,    _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
+    _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUKE
+  )
 
 };
 
@@ -107,10 +139,8 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
         #ifdef BACKLIGHT_ENABLE
           backlight_step();
         #endif
-        PORTE &= ~(1<<6);
       } else {
         unregister_code(KC_RSFT);
-        PORTE |= (1<<6);
       }
       return false;
       break;
@@ -135,6 +165,15 @@ bool music_mask_user(uint16_t keycode) {
 
 #ifdef RGB_MATRIX_ENABLE
 
+void suspend_power_down_keymap(void) {
+    rgb_matrix_set_suspend_state(true);
+    rgb_matrix_config.enable = false;
+}
+
+void suspend_wakeup_init_keymap(void) {
+    rgb_matrix_config.enable = true;
+    rgb_matrix_set_suspend_state(false);
+}
 
 void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
   rgb_led led;
@@ -153,24 +192,40 @@ void rgb_matrix_indicators_user(void) {
   uint8_t this_led = host_keyboard_leds();
   uint8_t this_osm = get_oneshot_mods();
 
-  switch (biton32(layer_state)) {
-    case _RAISE:
-      rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
-    case _LOWER:
-      rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
-    case _ADJUST:
-      rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
-    default:
-      switch (biton32(default_layer_state)) {
-        case _QWERTY:
-          rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, true); break;
-        case _COLEMAK:
-          rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, true); break;
-        case _DVORAK:
-          rgb_matrix_layer_helper(0x00, 0xFF, 0x00, true); break;
-        case _WORKMAN:
-          rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, true); break;
-      }
+  if (!g_suspend_state && userspace_config.rgb_layer_change &&
+#if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
+    (!rgblight_config.enable && rgb_matrix_config.enable)
+#else
+    rgb_matrix_config.enable
+#endif
+    ) {
+    switch (biton32(layer_state)) {
+      case _RAISE:
+        rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+      case _LOWER:
+        rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+      case _ADJUST:
+        rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+      default:
+        switch (biton32(default_layer_state)) {
+          case _QWERTY:
+            rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, true); break;
+          case _COLEMAK:
+            rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, true); break;
+          case _DVORAK:
+            rgb_matrix_layer_helper(0x00, 0xFF, 0x00, true); break;
+          case _WORKMAN:
+            rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, true); break;
+          case _NORMAN:
+            rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, true); break;
+          case _MALTRON:
+            rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, true); break;
+          case _EUCALYN:
+            rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, true); break;
+          case _CARPLAX:
+            rgb_matrix_layer_helper(0x00, 0x00, 0xFF, true); break;
+        }
+    }
   }
 
   switch (biton32(default_layer_state)) {
@@ -183,26 +238,81 @@ void rgb_matrix_indicators_user(void) {
     case _WORKMAN:
       rgb_matrix_set_color(42, 0xD9, 0xA5, 0x21); break;
   }
-
-  if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
+  if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK)) {
     rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
     rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
   }
-  if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
+  if ( (this_mod | this_osm) & MOD_MASK_CTRL) {
     rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
     rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
     rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
 
   }
-  if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
+  if ( (this_mod | this_osm) & MOD_MASK_GUI) {
     rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
   }
-  if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
+  if ( (this_mod | this_osm) & MOD_MASK_ALT) {
     rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
   }
 }
 
 void matrix_init_keymap(void) {
-  rgblight_mode(RGB_MATRIX_MULTISPLASH);
+  // rgblight_mode(RGB_MATRIX_MULTISPLASH);
+}
+#else //RGB_MATRIX_INIT
+
+void matrix_init_keymap(void) {
+  #if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
+    setPinOutput(D5);
+    writePinHigh(D5);
+
+    setPinOutput(B0);
+    writePinHigh(B0);
+  #endif
 }
 #endif //RGB_MATRIX_INIT
+
+#ifdef ENCODER_ENABLE
+void encoder_update(bool clockwise) {
+  switch (biton32(layer_state)) {
+    case _RAISE:
+      clockwise ? tap_code(KC_VOLD) : tap_code(KC_VOLU);
+      break;
+    case _LOWER:
+      #ifdef RGB_MATRIX_ENABLE
+        clockwise ? rgb_matrix_step() : rgblight_step_reverse();
+      #else
+      clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP);
+      #endif
+    case _ADJUST:
+      #ifdef AUDIO_CLICKY
+        clockwise ? clicky_freq_up() : clicky_freq_down();
+      #endif
+      break;
+    default:
+      clockwise ? tap_code(KC_DOWN) : tap_code(KC_UP);
+  }
+  #ifdef AUDIO_CLICKY
+    clicky_play();
+  #endif
+}
+#endif // ENCODER_ENABLE
+
+#ifdef KEYBOARD_planck_rev6
+void dip_update(uint8_t index, bool active) {
+  switch (index) {
+    case 0:
+      if(active) { audio_on(); } else { audio_off(); }
+      break;
+    case 1:
+      if(active) { clicky_on(); } else { clicky_off(); }
+      break;
+    case 2:
+      keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = active;
+      break;
+    case 3:
+      userspace_config.nuke_switch = active;
+      break;
+   }
+}
+#endif // KEYBOARD_planck_rev6