From 0e715f64941f7fa0ec03b3799c13bff962f833fd Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Sat, 13 May 2023 17:31:39 -0400 Subject: planck layout --- config/base.keymap | 78 +++++++++++----------- config/extra_keys.h | 16 +++++ config/gen_positions.sh | 4 +- config/keypos_defs/keypos_kj_planck.h | 59 ++++++++++++++++ config/planck_rev6.keymap | 122 +++------------------------------- config/reviung41.conf | 1 + config/reviung41.keymap | 2 +- 7 files changed, 129 insertions(+), 153 deletions(-) create mode 100644 config/keypos_defs/keypos_kj_planck.h diff --git a/config/base.keymap b/config/base.keymap index 148d89d..6740184 100644 --- a/config/base.keymap +++ b/config/base.keymap @@ -150,10 +150,10 @@ label = "DVORAK"; // DV - Dvorak layer bindings = < - R1X &kp SQT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L R1Z - R2X &HL1(A) &HL2(O) &HL3(E) &HL4(U) &kp I &kp D &HR4(H) &HR3(T) &HR2(N) &HR1(S) R2Z - R3X &kp SEMI &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z R3Z - R4X &kp LSHIFT &mo LOW SPACEKEY TX &mo UPR &kp LSHIFT R4Z + R1X &kp SQT &kp COMMA &kp DOT &kp P &kp Y R1Y &kp F &kp G &kp C &kp R &kp L R1Z + R2X &HL1(A) &HL2(O) &HL3(E) &HL4(U) &kp I R2Y &kp D &HR4(H) &HR3(T) &HR2(N) &HR1(S) R2Z + R3X &kp SEMI &kp Q &kp J &kp K &kp X R3Y &kp B &kp M &kp W &kp V &kp Z R3Z + R4X &kp LSHIFT &mo LOW SPACEKEY R4Y TX &mo UPR &kp LSHIFT R4Z >; }; @@ -162,50 +162,50 @@ // This is a "QWERTY" keymap, but it's really intended to be used in dvorak mode // (with setxkbmap us -variant dvorak -option compose:ralt). bindings = < - R1X &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P R1Z - R2X &HL1(A) &HL2(S) &HL3(D) &HL4(F) &kp G &kp H &HR4(J) &HR3(K) &HR2(L) &HR1(SEMI) R2Z - R3X &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp SLASH R3Z - R4X &kp LSHIFT &mo LOW SPACEKEY TX &mo UPR &kp LSHIFT R4Z + R1X &kp Q &kp W &kp E &kp R &kp T R1Y &kp Y &kp U &kp I &kp O &kp P R1Z + R2X &HL1(A) &HL2(S) &HL3(D) &HL4(F) &kp G R2Y &kp H &HR4(J) &HR3(K) &HR2(L) &HR1(SEMI) R2Z + R3X &kp Z &kp X &kp C &kp V &kp B R3Y &kp N &kp M &kp COMMA &kp DOT &kp SLASH R3Z + R4X &kp LSHIFT &mo LOW SPACEKEY R4Y TX &mo UPR &kp LSHIFT R4Z >; }; gaming_layer { label = "GAMING"; bindings = < - R1X &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P R1Z - R2X &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI R2Z - R3X &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp SLASH R3Z + R1X &kp Q &kp W &kp E &kp R &kp T R1Y &kp Y &kp U &kp I &kp O &kp P R1Z + R2X &kp A &kp S &kp D &kp F &kp G R2Y &kp H &kp J &kp K &kp L &kp SEMI R2Z + R3X &kp Z &kp X &kp C &kp V &kp B R3Y &kp N &kp M &kp COMMA &kp DOT &kp SLASH R3Z - R4X SPACEKEY &mo UPR &kp LSHIFT TX &mo LOW R4Z + R4X SPACEKEY &mo UPR &kp LSHIFT R4Y TX &mo LOW R4Z >; }; lower_layer { bindings = < - R1X &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR R1Z - R2X &kp LGUI &kp LALT &kp LCTL &kp LSHFT &kp BSLH &kp FSLH &kp UNDER &kp PLUS &kp LBRC &kp RBRC R2Z - R3X &kp GRAVE &kp TILDE &kp TAB &kp ESC &kp PIPE &kp QMARK &kp MINUS &kp EQUAL &kp LBKT &kp RBKT R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R1X &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT R1Y &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR R1Z + R2X &kp LGUI &kp LALT &kp LCTL &kp LSHFT &kp BSLH R2Y &kp FSLH &kp UNDER &kp PLUS &kp LBRC &kp RBRC R2Z + R3X &kp GRAVE &kp TILDE &kp TAB &kp ESC &kp PIPE R3Y &kp QMARK &kp MINUS &kp EQUAL &kp LBKT &kp RBKT R3Z + R4X &trans &trans SPACEKEY R4Y TX &trans &trans R4Z >; }; raise_layer { bindings = < - R1X &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 R1Z - R2X &trans &trans &trans &trans &trans &kp BSPC &kp LSHFT &kp LCTL &kp LALT &kp LGUI R2Z - R3X &trans &trans &trans &trans &trans &kp RALT &kp RET &kp DEL &trans &trans R3Z + R1X &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 R1Y &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 R1Z + R2X &trans &trans &trans &trans &trans R2Y &kp BSPC &kp LSHFT &kp LCTL &kp LALT &kp LGUI R2Z + R3X &trans &trans &trans &trans &trans R3Y &kp RALT &kp RET &kp DEL &trans &trans R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R4X &trans &trans SPACEKEY R4Y TX &trans &trans R4Z >; }; navigation_layer { bindings = < - R1X &mkp MB4 &mkp MB3 &mkp MB2 &mkp MB1 &trans &trans &trans &trans &trans &trans R1Z - R2X &trans &trans &trans &trans &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT R2Z - R3X &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END R3Z + R1X &mkp MB4 &mkp MB3 &mkp MB2 &mkp MB1 &trans R1Y &trans &trans &trans &trans &trans R1Z + R2X &trans &trans &trans &trans &trans R2Y &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT R2Z + R3X &trans &trans &trans &trans &trans R3Y &trans &kp HOME &kp PG_DN &kp PG_UP &kp END R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R4X &trans &trans SPACEKEY R4Y TX &trans &trans R4Z >; }; @@ -213,38 +213,38 @@ // Waiting for https://github.com/zmkfirmware/zmk/pull/778 // Using fork at https://github.com/ftc/zmk/blob/mouse-ftc bindings = < - R1X &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans R1Z - R2X &mkp MB4 &mkp MB3 &mkp MB2 &mkp MB1 &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT R2Z - R3X &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans R3Z + R1X &trans &trans &trans &trans &trans R1Y &trans &trans &trans &trans &trans R1Z + R2X &mkp MB4 &mkp MB3 &mkp MB2 &mkp MB1 &trans R2Y &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT R2Z + R3X &trans &trans &trans &trans &trans R3Y &trans &trans &trans &trans &trans R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R4X &trans &trans SPACEKEY R4Y TX &trans &trans R4Z >; }; qwerty_lower_layer { bindings = < - R1X &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR R1Z - R2X &kp LGUI &kp LALT &kp LCTL &kp LSHFT &kp BSLH &kp LBKT &kp DQT &kp RBRC &kp UNDER &kp PLUS R2Z - R3X &kp GRAVE &kp TILDE &kp TAB &kp ESC &kp PIPE &kp LBRC &kp SQT &kp RBKT &kp MINUS &kp EQUAL R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R1X &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT R1Y &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR R1Z + R2X &kp LGUI &kp LALT &kp LCTL &kp LSHFT &kp BSLH R2Y &kp LBKT &kp DQT &kp RBRC &kp UNDER &kp PLUS R2Z + R3X &kp GRAVE &kp TILDE &kp TAB &kp ESC &kp PIPE R3Y &kp LBRC &kp SQT &kp RBKT &kp MINUS &kp EQUAL R3Z + R4X &trans &trans SPACEKEY R4Y TX &trans &trans R4Z >; }; gaming_lower_layer { bindings = < - R1X &kp N1 &kp N2 &kp N3 &kp N4 &kp N9 &trans &trans &trans &trans &trans R1Z - R2X &kp N5 &kp N6 &kp N7 &kp N8 &kp N0 &trans &trans &trans &trans &trans R2Z - R3X &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R1X &kp N1 &kp N2 &kp N3 &kp N4 &kp N9 R1Y &trans &trans &trans &trans &trans R1Z + R2X &kp N5 &kp N6 &kp N7 &kp N8 &kp N0 R2Y &trans &trans &trans &trans &trans R2Z + R3X &trans &trans &trans &trans &trans R3Y &trans &trans &trans &trans &trans R3Z + R4X &trans &trans SPACEKEY R4Y TX &trans &trans R4Z >; }; function_layer { bindings = < - R1X &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 R1Z - R2X &kp F11 &kp F12 &to GAMING &to DV &to QW &trans &trans &trans &trans &trans R2Z + R1X &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 R1Y &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 R1Z + R2X &kp F11 &kp F12 &to GAMING &to DV &to QW R2Y &trans &trans &trans &trans &trans R2Z R3X FUNC_KEYS R3Z - R4X &trans &trans SPACEKEY TX &trans &trans R4Z + R4X &trans &trans SPACEKEY R3Y TX &trans &trans R4Z >; }; diff --git a/config/extra_keys.h b/config/extra_keys.h index c187f96..d69c545 100644 --- a/config/extra_keys.h +++ b/config/extra_keys.h @@ -14,6 +14,22 @@ #define R4X #endif +#if !defined R1Y +#define R1Y +#endif + +#if !defined R2Y +#define R2Y +#endif + +#if !defined R3Y +#define R3Y +#endif + +#if !defined R4Y +#define R4Y +#endif + #if !defined R1Z #define R1Z #endif diff --git a/config/gen_positions.sh b/config/gen_positions.sh index b83ca9d..c5ec9ba 100755 --- a/config/gen_positions.sh +++ b/config/gen_positions.sh @@ -6,10 +6,10 @@ fi f="$1" -echo -n "#define LEFT" +echo -n "#define LEFT_KEYS" grep "#define " $f | awk '$2 ~ /^L[^H]/ { printf(" %s", $2) }' echo -echo -n "#define RIGHT" +echo -n "#define RIGHT_KEYS" grep "#define " $f | awk '$2 ~ /^R[^H]/ { printf(" %s", $2) }' echo echo -n "#define THUMBS" diff --git a/config/keypos_defs/keypos_kj_planck.h b/config/keypos_defs/keypos_kj_planck.h new file mode 100644 index 0000000..a3f2e32 --- /dev/null +++ b/config/keypos_defs/keypos_kj_planck.h @@ -0,0 +1,59 @@ +/* 48 KEY MATRIX / LAYOUT MAPPING + + ╭────────────────────────┬────────────────────────╮ ╭─────────────────────────┬─────────────────────────╮ + │ 0 1 2 3 4 5 │ 6 7 8 9 10 11 │ │ LT5 LT4 LT3 LT2 LT1 LT0 │ RT0 RT1 RT2 RT3 RT4 RT5 │ + │ 12 13 14 15 16 17 │ 18 19 20 21 22 23 │ │ LM5 LM4 LM3 LM2 LM1 LM0 │ RM0 RM1 RM2 RM3 RM4 RM5 │ + │ 24 25 26 27 28 29 │ 30 31 32 33 34 35 │ │ LB5 LB4 LB3 LB2 LB1 LB0 │ RB0 RB1 RB2 RB3 RB4 RB5 │ + │ 36 37 38 39 40 41 │ 42 43 44 45 46 47 │ │ LH5 LH4 LH3 LH2 LH1 LH0 │ RH0 RH1 RH2 RH3 RH4 RH5 │ + ╰────────────────────────┴────────────────────────╯ ╰─────────────────────────┴─────────────────────────╯ */ + +#pragma once + +#define LT0 4 // left-top row +#define LT1 3 +#define LT2 2 +#define LT3 1 +#define LT4 0 + +#define RT0 7 // right-top row +#define RT1 8 +#define RT2 9 +#define RT3 10 +#define RT4 11 + +#define LM0 16 // left-middle row +#define LM1 15 +#define LM2 14 +#define LM3 13 +#define LM4 12 + +#define RM0 19 // right-middle row +#define RM1 20 +#define RM2 21 +#define RM3 22 +#define RM4 23 + +#define LB0 28 // left-bottom row +#define LB1 27 +#define LB2 26 +#define LB3 25 +#define LB4 24 + +#define RB0 31 // right-bottom row +#define RB1 32 +#define RB2 33 +#define RB3 34 +#define RB4 35 + +#define LH0 40 // left thumb keys +#define LH1 39 +#define LH2 38 +#define LH3 37 +#define LH4 36 + +#define RH0 43 // right thumb keys +#define RH1 44 +#define RH2 45 +#define RH3 46 +#define RH4 47 + diff --git a/config/planck_rev6.keymap b/config/planck_rev6.keymap index 76531dc..1c3525e 100644 --- a/config/planck_rev6.keymap +++ b/config/planck_rev6.keymap @@ -1,116 +1,16 @@ // -*- mode: dts-mode; tab-width: 2 -*- -#include -#include -#define QWERTY 0 -// #define DVORAK 1 -#define LOW 1 -#define UPR 2 -#define NAV 3 -#define FN 4 +#define R1Y &none &none +#define R2Y &none &none +#define R3Y &none &none +#define R4X &none &none +#define R4Y &none &none -// #define HM1(k) kp k -// #define HM2(k) kp k -// #define HM3(k) kp k -// #define HM4(k) kp k -#define HM1(k) hm_slow LGUI k -#define HM2(k) hm_med LALT k -#define HM3(k) hm_med LCTL k -#define HM4(k) hm_fast LSHFT k +#include "keypos_defs/keypos_kj_planck.h" +#define LEFT_KEYS LT0 LT1 LT2 LT3 LT4 LM0 LM1 LM2 LM3 LM4 LB0 LB1 LB2 LB3 LB4 +#define RIGHT_KEYS RT0 RT1 RT2 RT3 RT4 RM0 RM1 RM2 RM3 RM4 RB0 RB1 RB2 RB3 RB4 +#define THUMBS LH0 LH1 LH2 LH3 LH4 RH0 RH1 RH2 RH3 RH4 -// Resources: -// https://github.com/manna-harbour/qmk_firmware/tree/miryoku/users/manna-harbour_miryoku -// https://precondition.github.io/home-row-mods +#define FUNC_KEYS &none &none &none &none &none R3Y &none &none &none &none &none -/ { - behaviors { - hm_slow: homerow_mods_slow { - compatible = "zmk,behavior-hold-tap"; - label = "HMOD_S"; - #binding-cells = <2>; - tapping-term-ms = <250>; - #quick-tap-ms = <0>; - flavor = "tap-preferred"; - bindings = <&kp>, <&kp>; - }; - hm_med: homerow_mods_medium { - compatible = "zmk,behavior-hold-tap"; - label = "HMOD_M"; - #binding-cells = <2>; - tapping-term-ms = <200>; - #quick-tap-ms = <0>; - flavor = "tap-preferred"; - bindings = <&kp>, <&kp>; - }; - hm_fast: homerow_mods_fast { - compatible = "zmk,behavior-hold-tap"; - label = "HMOD_F"; - #binding-cells = <2>; - tapping-term-ms = <160>; - #quick-tap-ms = <0>; - flavor = "tap-preferred"; - bindings = <&kp>, <&kp>; - }; - }; - - keymap { - compatible = "zmk,keymap"; - - default_layer { - // This is a "QWERTY" keymap, but it's really intended to be used in dvorak mode - // (with setxkbmap us -variant dvorak -option compose:ralt). - bindings = < - &trans &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &trans - &trans &HM1(A) &HM2(S) &HM3(D) &HM4(F) &kp G &kp H &HM4(J) &HM3(K) &HM2(L) &HM1(SEMI) &trans - &trans &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp SLASH &trans - &trans &trans &trans &mo NAV &mo LOW &kp SPACE &kp SPACE &mo UPR &mo NAV &trans &trans &trans - >; - }; - - // dvorak { - // // Incomplete! - // bindings = < - //&kp TAB &kp SQT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L &kp BSPC - //&kp ESC &kp A &kp O &kp E &kp U &kp I &kp D &kp H &kp T &kp N &kp S &kp RET - //&kp LSHFT &kp SEMI &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z &kp SLASH - //&trans &trans &kp LGUI &kp LALT &mo LOW &kp ESC &kp SPACE &mo UPR &trans &trans &trans &trans - // >; - // }; - - lower { - bindings = < - &trans &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &trans - &trans &kp LGUI &kp LALT &kp LCTL &kp LSHFT &kp BSLH &kp LBKT &kp DQT &kp RBRC &kp UNDER &kp PLUS &trans - &trans &kp GRAVE &kp TILDE &kp TAB &kp ESC &kp PIPE &kp LBRC &kp SQT &kp RBKT &kp MINUS &kp EQUAL &trans - &trans &trans &trans &trans &trans &kp SPACE &kp SPACE &trans &trans &trans &trans &trans - >; - }; - - upper { - bindings = < - &trans &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans - &trans &trans &trans &trans &trans &trans &kp BSPC &kp LSHFT &kp LCTL &kp LALT &kp LGUI &trans - &trans &trans &trans &trans &trans &trans &kp RALT &kp RET &kp DEL &trans &trans &trans - &trans &trans &trans &trans &mo FN &kp SPACE &kp SPACE &trans &trans &trans &trans &trans - >; - }; - - navigation { - bindings = < - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &kp KP_N4 &kp KP_N3 &kp KP_N2 &kp KP_N1 &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans - &trans &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END &trans - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - >; - }; - - function { - bindings = < - &trans &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &trans - &trans &kp F11 &kp F12 &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &bootloader &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - >; - }; - }; -}; +#include "base.keymap" diff --git a/config/reviung41.conf b/config/reviung41.conf index 1882b96..76b185d 100644 --- a/config/reviung41.conf +++ b/config/reviung41.conf @@ -1,5 +1,6 @@ CONFIG_ZMK_SLEEP=y CONFIG_ZMK_IDLE_TIMEOUT=5000 +# 15 minute sleep timeout CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000 CONFIG_ZMK_MOUSE=y diff --git a/config/reviung41.keymap b/config/reviung41.keymap index 18f5bed..287584e 100644 --- a/config/reviung41.keymap +++ b/config/reviung41.keymap @@ -10,7 +10,7 @@ #include "keypos_defs/keypos_42keys.h" #define LEFT_KEYS LT0 LT1 LT2 LT3 LT4 LT5 LM0 LM1 LM2 LM3 LM4 LM5 LB0 LB1 LB2 LB3 LB4 LB5 -#define RIGHT_KEYS RT0 RT1 RT2 RT3 RT4 RT5 RM0 RM1 RM2 RM3 RM4 RM5 RB0 RB1 RB2 RB3 RB4 RB5 +#define RIGHT RT0 RT1 RT2 RT3 RT4 RT5 RM0 RM1 RM2 RM3 RM4 RM5 RB0 RB1 RB2 RB3 RB4 RB5 #define THUMBS LH0 LH1 LH2 RH0 RH1 RH2 #define FUNC_KEYS &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_CLR &none &none &none &none -- cgit v1.2.3