]> 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 5d32189342d91237d9c05f4deeb0d79e51c1fb23..16defede9671cdbe1fcb0d3556526cfa2954efc9 100644 (file)
 
 #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 {
@@ -45,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_________________, EEP_RST,
-  _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUKE
-)
+  [_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
+  )
 
 };
 
@@ -111,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;
@@ -139,13 +165,13 @@ bool music_mask_user(uint16_t keycode) {
 
 #ifdef RGB_MATRIX_ENABLE
 
-void suspend_power_down_keymap(void)
-{
+void suspend_power_down_keymap(void) {
     rgb_matrix_set_suspend_state(true);
+    rgb_matrix_config.enable = false;
 }
 
-void suspend_wakeup_init_keymap(void)
-{
+void suspend_wakeup_init_keymap(void) {
+    rgb_matrix_config.enable = true;
     rgb_matrix_set_suspend_state(false);
 }
 
@@ -165,7 +191,14 @@ void rgb_matrix_indicators_user(void) {
   uint8_t this_mod = get_mods();
   uint8_t this_led = host_keyboard_leds();
   uint8_t this_osm = get_oneshot_mods();
-  if (!g_suspend_state) {
+
+  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;
@@ -183,6 +216,14 @@ void rgb_matrix_indicators_user(void) {
             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;
         }
     }
   }
@@ -197,32 +238,31 @@ 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) {
-  #ifndef CONVERT_TO_PROTON_C
+  #if !defined(CONVERT_TO_PROTON_C) && !defined(KEYBOARD_planck)
     setPinOutput(D5);
     writePinHigh(D5);
 
@@ -231,3 +271,48 @@ void matrix_init_keymap(void) {
   #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