]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Add 60_ansi_split_bs_rshift layout to DZ60, with a new keymap for the same (#6096)
authorJonathan Rascher <jon@bcat.name>
Sat, 8 Jun 2019 00:01:13 +0000 (19:01 -0500)
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>
Sat, 8 Jun 2019 00:01:13 +0000 (17:01 -0700)
* Add 60_ansi_split_bs_rshift layout to DZ60

I know there's already a lot of DZ60 layout macros, and #4668 suggests
they should be refactored at some point, but since this is one of the
standard layouts already in QMK that this PCB supports, I figured it was
okay to add so that DZ60 keyboards can share this layout with other
keyboards.

* New 60% ANSI split backspace/right-shift layout

I'm using this on a DZ60, but it should work fine on most 60% PCBs. It's
basically a HHKB layout with a standard ANSI bottom row (3x 1.25U mods,
6.25U spacebar, 4x 1.25U mods).

keyboards/dz60/dz60.h
keyboards/dz60/rules.mk
layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c [new file with mode: 0644]
layouts/community/60_ansi_split_bs_rshift/bcat/readme.md [new file with mode: 0644]

index f435c4072bb81d58d3db3b5cbca7533d4848a477..35f3b9f09a16eaca75c13192b716f5212440d857 100644 (file)
     { KC_NO, k41,   KC_NO, k43,  KC_NO, KC_NO, k46,  KC_NO, KC_NO, KC_NO, KC_NO, k4b,  KC_NO, k4d,  KC_NO }  \
 }
 
+/* LAYOUT_60_ansi_split_bs_rshift
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
+ * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+ * │40  │41  │43  │46                      │4a  │4b  │4d  │4e  │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+*/
+#define LAYOUT_60_ansi_split_bs_rshift( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
+    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
+    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      \
+    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, k3e, \
+    k40, k41,      k43,           k46,                k4a, k4b,      k4d, k4e  \
+) { \
+    { k00,   k01,   k02,   k03,  k04,   k05,   k06,  k07,   k08,   k09,   k0a,   k0b,  k0c,   k0d,  k0e   }, \
+    { k10,   KC_NO, k12,   k13,  k14,   k15,   k16,  k17,   k18,   k19,   k1a,   k1b,  k1c,   k1d,  k1e   }, \
+    { k20,   KC_NO, k22,   k23,  k24,   k25,   k26,  k27,   k28,   k29,   k2a,   k2b,  k2c,   k2d,  KC_NO }, \
+    { k30,   KC_NO, k32,   k33,  k34,   k35,   k36,  k37,   k38,   k39,   k3a,   k3b,  KC_NO, k3d,  k3e   }, \
+    { k40,  k41,   KC_NO, k43,  KC_NO, KC_NO, k46,  KC_NO, KC_NO, KC_NO, k4a,  k4b,  KC_NO, k4d,   k4e   }  \
+}
+
 // 带方向配列
 /* Directional arrangement | LAYOUT_directional
  * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
index f290c305e22c96447a421f4e6c8577a327df22d8..ed683dbfa25977f5236e319ff97976f99f967485 100644 (file)
@@ -55,4 +55,4 @@ BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
 AUDIO_ENABLE = no
 RGBLIGHT_ENABLE = yes
 
-LAYOUTS = 60_ansi 60_iso 60_hhkb
+LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
new file mode 100644 (file)
index 0000000..780c13c
--- /dev/null
@@ -0,0 +1,42 @@
+#include QMK_KEYBOARD_H
+
+enum layer {
+    LAYER_DEFAULT,
+    LAYER_FUNCTION,
+    LAYER_ADJUST,
+};
+
+/* Switch to function layer when held. */
+#define LY_FUNC MO(LAYER_FUNCTION)
+
+/* Switch to adjust layer when held. */
+#define LY_ADJST MO(LAYER_ADJUST)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Default layer: http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc */
+    [LAYER_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift(
+        KC_ESC,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,     KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,  KC_EQL,   KC_BSLS,  KC_GRV,
+        KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,     KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,  KC_RBRC,  KC_BSPC,
+        KC_LCTL,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,  KC_ENT,
+        KC_LSFT,  KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,  KC_RSFT,  LY_FUNC,
+        KC_LCTL,  KC_LGUI,  KC_LALT,  KC_SPC,   KC_RALT,  LY_ADJST, KC_APP,   KC_RCTL
+    ),
+
+    /* Function layer: http://www.keyboard-layout-editor.com/#/gists/c7a55e75285d474b6301140eaf53f915 */
+    [LAYER_FUNCTION] = LAYOUT_60_ansi_split_bs_rshift(
+        _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_INS,   KC_DEL,
+        _______,  KC_MPLY,  KC_VOLU,  KC_MSTP,  _______,  _______,  _______,  _______,  KC_PSCR,  KC_SLCK,  KC_PAUS,  KC_UP,    _______,  _______,
+        KC_CAPS,  KC_MPRV,  KC_VOLD,  KC_MNXT,  _______,  _______,  _______,  _______,  KC_HOME,  KC_PGUP,  KC_LEFT,  KC_RGHT,  _______,
+        _______,  _______,  KC_MUTE,  _______,  _______,  _______,  _______,  _______,  KC_END,   KC_PGDN,  KC_DOWN,  _______,  _______,
+        _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______
+    ),
+
+    /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c */
+    [LAYER_ADJUST] = LAYOUT_60_ansi_split_bs_rshift(
+        _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
+        _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  RGB_VAI,  _______,  _______,
+        _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  RGB_HUI,  RGB_SAI,  RGB_RMOD, RGB_MOD,  RGB_TOG,
+        _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  RGB_HUD,  RGB_SAD,  RGB_VAD,  _______,  _______,
+        _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______
+    ),
+};
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
new file mode 100644 (file)
index 0000000..79bff74
--- /dev/null
@@ -0,0 +1,20 @@
+# bcat's 60% ANSI split backspace/right-shift layout
+
+This is a hybrid of an HHKB layout and a standard ANSI bottom row. It's nice if
+you want to fill out a 60% case with no blockers, or just really want a 6.25U
+spacebar. The arrow and navigation keys match a standard HHKB layout (using the
+Fn key next to the right shift key), but the media keys are centered around the
+WASD cluster instead of the usual HHKB layout. Additionally, the redundant Fn
+key on the bottom row activates an adjust layer to control RGB underglow.
+
+## Default layer
+
+![Default layer layout](https://i.imgur.com/HM0115k.png)
+
+## Function layer
+
+![Function layer layout](https://i.imgur.com/8dr5ktH.png)
+
+## Adjust layer
+
+![Adjust layer layout](https://i.imgur.com/78PBNt6.png)