added my own config

This commit is contained in:
Daniel Fichtinger 2024-12-30 22:05:51 -05:00
parent 3d7bf2ee7a
commit 8bb40af282
10 changed files with 404 additions and 276 deletions

View file

@ -13,8 +13,12 @@
# #
--- ---
include: include:
- board: planck_rev6 - board: nice_nano_v2
- board: corneish_zen_v2_left shield: corne_left nice_view_adapter nice_view
- board: corneish_zen_v2_right - board: nice_nano_v2
- board: glove80_lh shield: corne_right nice_view_adapter nice_view
- board: glove80_rh # - board: planck_rev6
# - board: corneish_zen_v2_left
# - board: corneish_zen_v2_right
# - board: glove80_lh
# - board: glove80_rh

View file

@ -1,17 +1,19 @@
// commetns
#include <behaviors.dtsi> #include <behaviors.dtsi>
#include <behaviors/num_word.dtsi> // requires auto-layer module #include <behaviors/num_word.dtsi> // requires auto-layer module
#include <dt-bindings/zmk/keys.h> #include <dt-bindings/zmk/keys.h>
#ifdef CONFIG_WIRELESS #ifdef CONFIG_WIRELESS
#include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h> #include <dt-bindings/zmk/outputs.h>
#define _BT_SEL_KEYS_ &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_CLR #define _BT_SEL_KEYS_ \
&bt BT_SEL 0 & bt BT_SEL 1 & bt BT_SEL 2 & bt BT_SEL 3 & bt BT_CLR
#else #else
#define _BT_SEL_KEYS_ &trans &trans &trans &trans &trans #define _BT_SEL_KEYS_ &trans & trans & trans & trans &trans
#endif #endif
#include "zmk-helpers/helper.h" #include "zmk-helpers/helper.h"
#include "zmk-helpers/unicode-chars/greek.dtsi"
#include "zmk-helpers/unicode-chars/german.dtsi" #include "zmk-helpers/unicode-chars/german.dtsi"
#include "zmk-helpers/unicode-chars/greek.dtsi"
#define DEF 0 #define DEF 0
#define NAV 1 #define NAV 1
@ -28,129 +30,118 @@
#define QUICK_TAP_MS 175 #define QUICK_TAP_MS 175
&sk { // sticky-key config &sk { // sticky-key config
release-after-ms = <900>; // release after 0.9s release - after - ms = <900>; // release after 0.9s
quick-release; // no double capitalization when rolling keys quick - release; // no double capitalization when rolling keys
}; };
&sl { // sticky-layer config &sl { // sticky-layer config
ignore-modifiers; // allow chording sticky mods & layers ignore - modifiers; // allow chording sticky mods & layers
}; };
&lt { // layer-tap config &lt { // layer-tap config
flavor = "balanced"; flavor = "balanced";
tapping-term-ms = <200>; tapping - term - ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>; quick - tap - ms = <QUICK_TAP_MS>;
}; };
/* Homerow mods */ /* Homerow mods */
#define KEYS_L LT0 LT1 LT2 LT3 LT4 LM0 LM1 LM2 LM3 LM4 LB0 LB1 LB2 LB3 LB4 // left hand #define KEYS_L \
#define KEYS_R RT0 RT1 RT2 RT3 RT4 RM0 RM1 RM2 RM3 RM4 RB0 RB1 RB2 RB3 RB4 // right hand LT0 LT1 LT2 LT3 LT4 LM0 LM1 LM2 LM3 LM4 LB0 LB1 LB2 LB3 LB4 // left hand
#define KEYS_R \
RT0 RT1 RT2 RT3 RT4 RM0 RM1 RM2 RM3 RM4 RB0 RB1 RB2 RB3 RB4 // right hand
#ifndef LH2 #ifndef LH2
#define THUMBS LH1 LH0 RH0 RH1 // thumbs on 34 keys #define THUMBS LH1 LH0 RH0 RH1 // thumbs on 34 keys
#else #else
#define THUMBS LH2 LH1 LH0 RH0 RH1 RH2 // thumbs on 36+ keys #define THUMBS LH2 LH1 LH0 RH0 RH1 RH2 // thumbs on 36+ keys
#endif #endif
#define MAKE_HRM(NAME, HOLD, TAP, TRIGGER_POS) \ #define MAKE_HRM(NAME, HOLD, TAP, TRIGGER_POS) \
ZMK_HOLD_TAP(NAME, \ ZMK_HOLD_TAP(NAME, flavor = "balanced"; tapping - term - ms = <280>; \
flavor = "balanced"; \ quick - tap - ms = <QUICK_TAP_MS>; \
tapping-term-ms = <280>; \ require - prior - idle - ms = <150>; bindings = <HOLD>, <TAP>; \
quick-tap-ms = <QUICK_TAP_MS>; \ hold - trigger - key - positions = <TRIGGER_POS>; \
require-prior-idle-ms = <150>; \ hold - trigger - on - release;)
bindings = <HOLD>, <TAP>; \
hold-trigger-key-positions = <TRIGGER_POS>; \
hold-trigger-on-release; \
)
MAKE_HRM(hml, &kp, &kp, KEYS_R THUMBS) // left-hand HRMs MAKE_HRM(hml, &kp, &kp, KEYS_R THUMBS) // left-hand HRMs
MAKE_HRM(hmr, &kp, &kp, KEYS_L THUMBS) // right-hand HRMs MAKE_HRM(hmr, &kp, &kp, KEYS_L THUMBS) // right-hand HRMs
// HRM combo hack - workaround for lack of tap-only combos (ZMK issue #544) // HRM combo hack - workaround for lack of tap-only combos (ZMK issue #544)
#define ZMK_COMBO_8(NAME, TAP, KEYPOS, LAYERS, COMBO_TERM, COMBO_IDLE, HOLD, SIDE) \ #define ZMK_COMBO_8(NAME, TAP, KEYPOS, LAYERS, COMBO_TERM, COMBO_IDLE, HOLD, \
MAKE_HRM(hm_combo_ ## NAME, &kp, TAP, SIDE THUMBS) \ SIDE) \
ZMK_COMBO_6(NAME, &hm_combo_ ## NAME HOLD 0, KEYPOS, LAYERS, COMBO_TERM, COMBO_IDLE) MAKE_HRM(hm_combo_##NAME, &kp, TAP, SIDE THUMBS) \
ZMK_COMBO_6(NAME, &hm_combo_##NAME HOLD 0, KEYPOS, LAYERS, COMBO_TERM, \
COMBO_IDLE)
/* Combos, leader key sequences, mouse emulation */ /* Combos, leader key sequences, mouse emulation */
#include "combos.dtsi" // must be sources after HRM-combo hack #include "combos.dtsi" // must be sources after HRM-combo hack
#include "extra_keys.h"
#include "leader.dtsi" #include "leader.dtsi"
#include "mouse.dtsi" #include "mouse.dtsi"
#include "extra_keys.h"
/* Nav cluster */ /* Nav cluster */
// long-tap action on hold, short-tap action on all interrupts // long-tap action on hold, short-tap action on all interrupts
#define MT_CORE \ #define MT_CORE \
flavor = "tap-preferred"; \ flavor = "tap-preferred"; \
tapping-term-ms = <220>; \ tapping - term - ms = <220>; \
quick-tap-ms = <220>; \ quick - tap - ms = <220>; \
hold-trigger-key-positions = <0>; hold - trigger - key - positions = <0>;
&mt { MT_CORE }; &mt{MT_CORE};
ZMK_HOLD_TAP(mt_home, bindings = <&masked_home>, <&kp>; MT_CORE) ZMK_HOLD_TAP(mt_home, bindings = <&masked_home>, <&kp>; MT_CORE)
ZMK_HOLD_TAP(mt_end, bindings = <&masked_end>, <&kp>; MT_CORE) ZMK_HOLD_TAP(mt_end, bindings = <&masked_end>, <&kp>; MT_CORE)
#define NAV_LEFT &mt_home 0 LEFT // tap: left | long-tap: beginning of line #define NAV_LEFT &mt_home 0 LEFT // tap: left | long-tap: beginning of line
#define NAV_RIGHT &mt_end 0 RIGHT // tap: right | long-tap: end of line #define NAV_RIGHT &mt_end 0 RIGHT // tap: right | long-tap: end of line
#define NAV_UP &mt LC(HOME) UP // tap: up | long-tap: beginning of document #define NAV_UP &mt LC(HOME) UP // tap: up | long-tap: beginning of document
#define NAV_DOWN &mt LC(END) DOWN // tap: down | long-tap: end of document #define NAV_DOWN \
#define NAV_BSPC &mt LC(BSPC) BSPC // tap: bspc | long-tap: delete word backward &mt LC(END) DOWN // tap: down | long-tap: end of document
#define NAV_BSPC \
&mt LC(BSPC) BSPC // tap: bspc | long-tap: delete word backward
#define NAV_DEL &mt LC(DEL) DEL // tap: del | long-tap: delete word forward #define NAV_DEL &mt LC(DEL) DEL // tap: del | long-tap: delete word forward
// mask CTRL when holding left/right to avoid accidental jumps to beginning/end of document // mask CTRL when holding left/right to avoid accidental jumps to beginning/end
// of document
#define MASK_MODS(NAME, MODS, BINDING) \ #define MASK_MODS(NAME, MODS, BINDING) \
ZMK_MOD_MORPH(NAME, \ ZMK_MOD_MORPH(NAME, bindings = <BINDING>, <BINDING>; mods = <MODS>;)
bindings = <BINDING>, <BINDING>; \
mods = <MODS>; \
)
MASK_MODS(masked_home, (MOD_LCTL), &kp HOME) MASK_MODS(masked_home, (MOD_LCTL), &kp HOME)
MASK_MODS(masked_end, (MOD_LCTL), &kp END) MASK_MODS(masked_end, (MOD_LCTL), &kp END)
/* Caps-word, num-word and smart-mouse */ /* Caps-word, num-word and smart-mouse */
// tap: sticky-shift | shift + tap/ double-tap: caps-word | hold: shift // tap: sticky-shift | shift + tap/ double-tap: caps-word | hold: shift
ZMK_MOD_MORPH(smart_shft, ZMK_MOD_MORPH(smart_shft, bindings = <&sk LSHFT>, <&caps_word>;
bindings = <&sk LSHFT>, <&caps_word>; mods = <(MOD_LSFT)>;)
mods = <(MOD_LSFT)>;
)
&caps_word { // mods deactivate caps-word, requires PR #1451 &caps_word { // mods deactivate caps-word, requires PR #1451
/delete-property/ ignore-modifiers; / delete -property / ignore - modifiers;
}; };
// tap: num-word | double-tap: sticky num-layer | hold: num-layer // tap: num-word | double-tap: sticky num-layer | hold: num-layer
#define SMART_NUM &smart_num NUM 0 #define SMART_NUM &smart_num NUM 0
ZMK_HOLD_TAP(smart_num, ZMK_HOLD_TAP(smart_num, flavor = "balanced"; tapping - term - ms = <200>;
flavor = "balanced"; quick - tap - ms = <QUICK_TAP_MS>; bindings = <&mo>, <&num_dance>;)
tapping-term-ms = <200>; ZMK_TAP_DANCE(num_dance, tapping - term - ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>; bindings = <&num_word NUM>,
bindings = <&mo>, <&num_dance>; <&sl NUM>; // reverse this for sticky-num on single tap
)
ZMK_TAP_DANCE(num_dance,
tapping-term-ms = <200>;
bindings = <&num_word NUM>, <&sl NUM>; // reverse this for sticky-num on single tap
) )
// smart-mouse, requires PR #1366 // smart-mouse, requires PR #1366
ZMK_TRI_STATE(smart_mouse, ZMK_TRI_STATE(smart_mouse, bindings = <&tog MOUSE>, <&none>, <&tog MOUSE>;
bindings = <&tog MOUSE>, <&none>, <&tog MOUSE>; ignored - key - positions =
ignored-key-positions = <LT1 LT3 RT0 RT1 RT2 RT3 RT4 RM1 RM2 RM3 RB1 RB2 RB3 RH0 RH1>; <LT1 LT3 RT0 RT1 RT2 RT3 RT4 RM1 RM2 RM3 RB1 RB2 RB3 RH0 RH1>;
ignored-layers = <MOUSE>; ignored - layers = <MOUSE>;)
)
/* Custom behaviors */ /* Custom behaviors */
// Alt+Tab swapper, requires PR #1366 // Alt+Tab swapper, requires PR #1366
ZMK_TRI_STATE(swapper, ZMK_TRI_STATE(swapper, bindings = <&kt LALT>, <&kp TAB>, <&kt LALT>;
bindings = <&kt LALT>, <&kp TAB>, <&kt LALT>; ignored - key - positions = <LT2>;)
ignored-key-positions = <LT2>;
)
// reuse basic mod-morph scheme // reuse basic mod-morph scheme
#define SIMPLE_MORPH(NAME, MOD, BINDING1, BINDING2) \ #define SIMPLE_MORPH(NAME, MOD, BINDING1, BINDING2) \
ZMK_MOD_MORPH(NAME, \ ZMK_MOD_MORPH(NAME, mods = <(MOD_L##MOD | MOD_R##MOD)>; \
mods = <(MOD_L ## MOD|MOD_R ## MOD)>; \ bindings = <BINDING1>, <BINDING2>;)
bindings = <BINDING1>, <BINDING2>; \
)
// tap: comma | shift + tap: semicolon | ctrl + shift + tap: < // tap: comma | shift + tap: semicolon | ctrl + shift + tap: <
SIMPLE_MORPH(comma_morph, SFT, &kp COMMA, &comma_inner_morph) SIMPLE_MORPH(comma_morph, SFT, &kp COMMA, &comma_inner_morph)
@ -168,34 +159,22 @@ SIMPLE_MORPH(lpar_lt, SFT, &kp LPAR, &kp LT)
SIMPLE_MORPH(rpar_gt, SFT, &kp RPAR, &kp GT) SIMPLE_MORPH(rpar_gt, SFT, &kp RPAR, &kp GT)
// tap: space | shift + tap: dot -> space -> sticky shift | hold: activate layer // tap: space | shift + tap: dot -> space -> sticky shift | hold: activate layer
ZMK_HOLD_TAP(lt_spc, ZMK_HOLD_TAP(lt_spc, flavor = "balanced"; tapping - term - ms = <200>;
flavor = "balanced"; quick - tap - ms = <QUICK_TAP_MS>; bindings = <&mo>, <&spc_morph>;)
tapping-term-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
bindings = <&mo>, <&spc_morph>;
)
SIMPLE_MORPH(spc_morph, SFT, &kp SPACE, &dot_spc) SIMPLE_MORPH(spc_morph, SFT, &kp SPACE, &dot_spc)
ZMK_MACRO(dot_spc, ZMK_MACRO(dot_spc, wait - ms = <0>; tap - ms = <5>;
wait-ms = <0>; bindings = < &kp DOT & kp SPACE & sk LSHFT > ;)
tap-ms = <5>;
bindings = <&kp DOT &kp SPACE &sk LSHFT>;
)
// tap: backspace | lshft + tap: delete | rshft + tap: shift-delete // tap: backspace | lshft + tap: delete | rshft + tap: shift-delete
ZMK_MOD_MORPH(bs_del, ZMK_MOD_MORPH(bs_del, bindings = <&kp BSPC>, <&kp DEL>;
bindings = <&kp BSPC>, <&kp DEL>; mods = <(MOD_LSFT | MOD_RSFT)>; keep - mods = <MOD_RSFT>;)
mods = <(MOD_LSFT|MOD_RSFT)>;
keep-mods = <MOD_RSFT>;
)
// tap: copy | double-tap: cut // tap: copy | double-tap: cut
ZMK_TAP_DANCE(copy_cut, ZMK_TAP_DANCE(copy_cut, tapping - term - ms = <200>;
tapping-term-ms = <200>; bindings = <&kp LC(INS)>, <&kp LC(X)>;)
bindings = <&kp LC(INS)>, <&kp LC(X)>;
)
// Sticky shift + leader // Sticky shift + leader
ZMK_MACRO(leader_sft, bindings = <&sk LSHFT &leader>;) ZMK_MACRO(leader_sft, bindings = < &sk LSHFT & leader > ;)
// misc aliases // misc aliases
#define CANCEL &kp K_CANCEL // cancel caps-word, num-word and smart-mouse #define CANCEL &kp K_CANCEL // cancel caps-word, num-word and smart-mouse
@ -210,76 +189,198 @@ ZMK_MACRO(leader_sft, bindings = <&sk LSHFT &leader>;)
ZMK_CONDITIONAL_LAYER(sys, FN NUM, SYS) // FN + NUM --> SYS ZMK_CONDITIONAL_LAYER(sys, FN NUM, SYS) // FN + NUM --> SYS
ZMK_LAYER(base, ZMK_LAYER(
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ base,
// ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
X_LT &kp Q &kp W &kp F &kp P &kp B X_MT &kp J &kp L &kp U &kp Y &kp SQT X_RT X_LT &kp Q &kp W &kp F &kp P &kp B X_MT &kp J &kp L &kp U &kp Y &kp SQT X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LM &hml LGUI A &hml LALT R &hml LSHFT S &hml LCTRL T &kp G X_MM &kp M &hmr LCTRL N &hmr RSHFT E &hmr LALT I &hmr LGUI O X_RM // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LB &kp Z &kp X &kp C &kp D &kp V X_MB &kp K &kp H &comma_morph &dot_morph &qexcl X_RB // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤ // ├──────┤
X_LH &lt_spc NAV 0 &lt FN RET X_MH SMART_NUM &smart_shft X_RH X_LM &hml LGUI A &hml LALT R &hml LSHFT S &hml LCTRL T &kp
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ G X_MM &kp M &hmr LCTRL N &hmr RSHFT E &hmr LALT I &hmr LGUI O X_RM
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LB &kp Z &kp X &kp C &kp D &kp V X_MB &kp K &kp H &comma_morph &
dot_morph &
qexcl X_RB
// ├──────┤
// ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┴───────────────────────────╯
// ├──────┤
X_LH &
lt_spc NAV 0 & lt FN RET X_MH SMART_NUM & smart_shft X_RH
// ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
// ╰─────────────┴─────────────╯ ╰──────╯
) )
ZMK_LAYER(nav, ZMK_LAYER(nav,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ // ╭──────╮
X_LT ___ ___ &kp LS(TAB) &swapper ___ X_MT &kp PG_UP NAV_BSPC NAV_UP NAV_DEL ___ X_RT // ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ╭──────╮
X_LM &sk LGUI &sk LALT &sk LSHFT &sk LCTRL ___ X_MM &kp PG_DN NAV_LEFT NAV_DOWN NAV_RIGHT &kp RET X_RM // ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ╭──────╮
X_LB ___ ___ ___ ___ ___ X_MB &kp INS &kp TAB ___ ___ ___ X_RB X_LT ___ ___ &kp LS(TAB) & swapper ___ X_MT &
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤ kp PG_UP NAV_BSPC NAV_UP NAV_DEL ___ X_RT
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LM &
sk LGUI & sk LALT & sk LSHFT & sk LCTRL ___ X_MM &
kp PG_DN NAV_LEFT NAV_DOWN NAV_RIGHT &
kp RET X_RM
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LB ___ ___ ___ ___ ___ X_MB &
kp INS &
kp TAB ___ ___ ___ X_RB
// ├──────┤
// ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┴───────────────────────────╯
// ├──────┤
X_LH ___ ___ X_MH ___ CANCEL X_RH X_LH ___ ___ X_MH ___ CANCEL X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ // ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
// ╰─────────────┴─────────────╯ ╰──────╯
) )
ZMK_LAYER(fn, ZMK_LAYER(fn,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ // ╭──────╮
X_LT &kp F12 &kp F7 &kp F8 &kp F9 ___ X_MT ___ &kp C_PREV &kp C_VOL_UP &kp C_NEXT ___ X_RT // ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ╭──────╮
X_LM &hml LGUI F11 &hml LALT F4 &hml LSHFT F5 &hml LCTRL F6 ___ X_MM ___ DSK_PREV VOL_DOWN DSK_NEXT ___ X_RM // ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ╭──────╮
X_LB &kp F10 &kp F1 &kp F2 &kp F3 ___ X_MB PIN_APP PIN_WIN DSK_MGR ___ ___ X_RB X_LT &kp F12 &kp F7 &kp F8 &kp F9 ___
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤ X_MT ___ &kp C_PREV &kp C_VOL_UP &kp C_NEXT ___ X_RT
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LM &hml LGUI F11 &hml LALT F4 &hml LSHFT F5 &hml LCTRL F6 ___ X_MM
___ DSK_PREV VOL_DOWN DSK_NEXT ___ X_RM
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LB &kp F10 &kp F1 &kp F2 &kp F3 ___ X_MB PIN_APP PIN_WIN DSK_MGR ___
___ X_RB
// ├──────┤
// ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┴───────────────────────────╯
// ├──────┤
X_LH ___ ___ X_MH &kp C_MUTE &kp C_PP X_RH X_LH ___ ___ X_MH &kp C_MUTE &kp C_PP X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ // ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
// ╰─────────────┴─────────────╯ ╰──────╯
) )
ZMK_LAYER(num, ZMK_LAYER(
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ num,
// ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
X_LT ___ &kp N7 &kp N8 &kp N9 ___ X_MT ___ ___ ___ ___ ___ X_RT X_LT ___ &kp N7 &kp N8 &kp N9 ___ X_MT ___ ___ ___ ___ ___ X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LM &hml LGUI N0 &hml LALT N4 &hml LSHFT N5 &hml LCTRL N6 ___ X_MM ___ ___ ___ ___ ___ X_RM // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LM &hml LGUI N0 &hml LALT N4 &hml LSHFT N5 &hml LCTRL N6 ___ X_MM ___ ___
___ ___ ___ X_RM
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LB ___ &kp N1 &kp N2 &kp N3 ___ X_MB ___ ___ ___ ___ ___ X_RB X_LB ___ &kp N1 &kp N2 &kp N3 ___ X_MB ___ ___ ___ ___ ___ X_RB
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤ // ├──────┤
// ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┴───────────────────────────╯
// ├──────┤
X_LH ___ ___ X_MH ___ ___ X_RH X_LH ___ ___ X_MH ___ ___ X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ // ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
// ╰─────────────┴─────────────╯ ╰──────╯
) )
ZMK_LAYER(sys, ZMK_LAYER(sys,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ // ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
X_LT _BT_SEL_KEYS_ X_MT ___ ___ ___ ___ ___ X_RT X_LT _BT_SEL_KEYS_ X_MT ___ ___ ___ ___ ___ X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LM ___ ___ ___ ___ &bootloader X_MM &bootloader ___ ___ ___ ___ X_RM // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LB ___ ___ ___ ___ &sys_reset X_MB &sys_reset ___ ___ ___ ___ X_RB // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤ // ├──────┤
X_LM ___ ___ ___ ___ &bootloader X_MM &bootloader ___ ___ ___
___ X_RM
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LB ___ ___ ___ ___ &sys_reset X_MB &sys_reset
___ ___ ___ ___ X_RB
// ├──────┤
// ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┴───────────────────────────╯
// ├──────┤
X_LH ___ ___ X_MH ___ ___ X_RH X_LH ___ ___ X_MH ___ ___ X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ // ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
// ╰─────────────┴─────────────╯ ╰──────╯
) )
ZMK_LAYER(mouse, ZMK_LAYER(mouse,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ // ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
// ╭──────╮
X_LT ___ ___ ___ ___ ___ X_MT ___ &kp PG_UP U_MS_U &kp PG_DN ___ X_RT X_LT ___ ___ ___ ___ ___ X_MT ___ &kp PG_UP U_MS_U &kp PG_DN ___ X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LM ___ ___ ___ ___ ___ X_MM U_WH_L U_MS_L U_MS_D U_MS_R U_WH_R X_RM // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ // ├──────┤
X_LB ___ ___ ___ ___ ___ X_MB ___ &mkp LCLK &mkp MCLK &mkp RCLK ___ X_RB // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤ // ├──────┤
X_LM ___ ___ ___ ___ ___ X_MM U_WH_L U_MS_L U_MS_D U_MS_R
U_WH_R X_RM
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
// ├──────┤
X_LB ___ ___ ___ ___ ___ X_MB ___ &mkp LCLK
&mkp MCLK &mkp RCLK ___ X_RB
// ├──────┤
// ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤
// ├──────┤
// ├─────────────┼─────────────┼─────────────┴───────────────────────────╯
// ├──────┤
X_LH ___ ___ X_MH U_WH_U U_WH_D X_RH X_LH ___ ___ X_MH U_WH_U U_WH_D X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ // ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
// ╰─────────────┴─────────────╯ ╰──────╯
) )
/* vim: set ft=c tw=174: */ /* vim: set ft=c tw=174: */

10
config/corne.conf Normal file
View file

@ -0,0 +1,10 @@
# Uncomment the following lines to enable the Corne RGB Underglow
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y
# Uncomment the following line to enable the Corne OLED Display
# CONFIG_ZMK_DISPLAY=y
# CONFIG_ZMK_SLEEP=y
# CONFIG_ZMK_SLEEP_TIMEOUT=3600000
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_ZMK_SLEEP=y

116
config/corne.keymap Normal file
View file

@ -0,0 +1,116 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/keys.h>
#include "zmk-helpers/helper.h"
&sk { // sticky-key config
release-after-ms = <900>; // release after 0.9s
quick-release; // no double capitalization when rolling keys
};
// tap: sticky-shift | shift + tap/ double-tap: caps-word | hold: shift
ZMK_MOD_MORPH(smart_shft,
bindings = <&sk LSHFT>, <&caps_word>;
mods = <(MOD_LSFT)>;
)
&caps_word { // mods deactivate caps-word, requires PR #1451
/delete-property/ ignore-modifiers;
};
/ {
behaviors {
rpi: require_prior_idle {
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
flavor = "tap-preferred";
tapping-term-ms = <200>;
quick-tap-ms = <200>;
require-prior-idle-ms = <125>;
bindings = <&kp>, <&kp>;
};
};
conditional_layers {
compatible = "zmk,conditional-layers";
meta_layer {
if-layers = <1 2>;
then-layer = <3>;
};
};
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
// ┌──────┬───┬───┬──────┬───────────────────────┬─────────────┐ ┌──────┬───────────────┬──────┬───┬───┬────────────┐
// │ esc │ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │ lctl(lsft) │
// ├──────┼───┼───┼──────┼───────────────────────┼─────────────┤ ├──────┼───────────────┼──────┼───┼───┼────────────┤
// │ bspc │ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │ ' │
// ├──────┼───┼───┼──────┼───────────────────────┼─────────────┤ ├──────┼───────────────┼──────┼───┼───┼────────────┤
// │ lsft │ Z │ X │ C │ D │ V │ │ K │ H │ , │ . │ / │ tab │
// └──────┴───┴───┼──────┼───────────────────────┼─────────────┤ ├──────┼───────────────┼──────┼───┴───┴────────────┘
// │ lgui │ &rpi left_CONTROL spc │ &smart_shft │ │ mo 1 │ &rpi lalt ent │ mo 2 │
// └──────┴───────────────────────┴─────────────┘ └──────┴───────────────┴──────┘
&kp ESC &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SEMICOLON &kp LC(LSHFT)
&kp BSPC &kp A &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &kp O &kp SQT
&kp LSHFT &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH &kp TAB
&kp LGUI &rpi LEFT_CONTROL SPACE &smart_shft &mo 1 &rpi LEFT_ALT ENTER &mo 2
>;
};
nav_sym {
bindings = <
// ┌─────┬─────┬───┬─────┬─────┬─────┐ ┌──────┬──────┬─────┬──────┬───┬─────┐
// │ │ │ ! │ ( │ ) │ % │ │ @ │ & │ * │ = │ + │ │
// ├─────┼─────┼───┼─────┼─────┼─────┤ ├──────┼──────┼─────┼──────┼───┼─────┤
// │ │ ^ │ - │ { │ } │ ~ │ │ left │ down │ up │ rght │ $ │ │
// ├─────┼─────┼───┼─────┼─────┼─────┤ ├──────┼──────┼─────┼──────┼───┼─────┤
// │ │ esc │ _ │ [ │ ] │ tab │ │ │ # │ ` │ . │ \ │ | │
// └─────┴─────┴───┼─────┼─────┼─────┤ ├──────┼──────┼─────┼──────┴───┴─────┘
// │ │ │ │ │ │ │ │
// └─────┴─────┴─────┘ └──────┴──────┴─────┘
&trans &trans &kp EXCL &kp LEFT_PARENTHESIS &kp RIGHT_PARENTHESIS &kp PERCENT &kp AT &kp AMPS &kp STAR &kp EQUAL &kp PLUS &trans
&trans &kp CARET &kp MINUS &kp LEFT_BRACE &kp RIGHT_BRACE &kp TILDE &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp DOLLAR &trans
&trans &kp ESC &kp UNDER &kp LEFT_BRACKET &kp RIGHT_BRACKET &kp TAB &trans &kp HASH &kp GRAVE &kp DOT &kp BSLH &kp PIPE
&trans &trans &trans &trans &trans &trans
>;
};
num {
bindings = <
// ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
// ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
// │ │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ │
// ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └─────┴─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┴─────┘
// │ │ │ │ │ │ │ │
// └─────┴─────┴─────┘ └─────┴─────┴─────┘
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&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 &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans
>;
};
meta_layer {
bindings = <
// ┌────────┬────────┬────────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
// │ bt_clr │ bt_nxt │ bt_prv │ │ │ │ │ │ │ │ │ │ │
// ├────────┼────────┼────────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
// ├────────┼────────┼────────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
// │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┴─────┘
// │ │ │ │ │ │ │ │
// └─────┴─────┴─────┘ └─────┴─────┴─────┘
&bt BT_CLR &bt BT_NXT &bt BT_PRV &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans
>;
};
};
};

View file

@ -1,20 +0,0 @@
# Set sleep timeout to 30min (30*60*1000ms)
CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000
# Enable mouse
CONFIG_ZMK_POINTING=y
CONFIG_ZMK_POINTING_SMOOTH_SCROLLING=y
# Combo config, automated by build script
CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=6
CONFIG_ZMK_COMBO_MAX_KEYS_PER_COMBO=3
# Don't show layer status
#CONFIG_CUSTOM_WIDGET_BATTERY_STATUS=n
CONFIG_CUSTOM_WIDGET_LAYER_STATUS=n
# Bluetooth tweaks
CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y
CONFIG_BT_GATT_ENFORCE_SUBSCRIPTION=n
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y

View file

@ -1,15 +0,0 @@
/* source key position labels */
#include "zmk-helpers/key-labels/36.h"
/* map Zen's extra keys */
#define X_LH &kp LGUI // thumb row, left
#define X_RH &smart_mouse // thumb row, right
/* activate bluetooth */
#define CONFIG_WIRELESS
/* source the main keymap */
#include "base.keymap"
/* use 5-column layout for Zen */
/{ chosen { zmk,physical-layout = &foostan_corne_5col_layout; }; };

View file

@ -1,18 +0,0 @@
# Set sleep timeout to 30min (30*60*1000ms)
CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000
# Enable mouse
CONFIG_ZMK_POINTING=y
CONFIG_ZMK_POINTING_SMOOTH_SCROLLING=y
# Combo config, automated by build script
CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=6
CONFIG_ZMK_COMBO_MAX_KEYS_PER_COMBO=3
# Bluetooth tweaks
CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y
CONFIG_BT_GATT_ENFORCE_SUBSCRIPTION=n
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_BT_MAX_CONN=3
CONFIG_BT_MAX_PAIRED=3

View file

@ -1,27 +0,0 @@
/* source key position labels */
#include "zmk-helpers/key-labels/glove80.h"
/* map the Glove's extra keys */
#define X_LT \
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 \
&kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS \
&kp TAB
#define X_RT &kp BACKSLASH
#define X_LM &kp ESC
#define X_RM &none
#define X_LB &none
#define X_MB &none &none &none &none &none &none
#define X_RB &none
#define X_LH &none &none &none &kp LEFT &kp RIGHT
#define X_MH &none &none
#define X_RH &kp UP &kp DOWN &none &none &none
/* activate bluetooth */
#define CONFIG_WIRELESS
/* source the main keymap */
#include "base.keymap"

View file

@ -1,9 +0,0 @@
CONFIG_ZMK_KEYBOARD_NAME="Planck Rev6"
# Enable mouse
CONFIG_ZMK_POINTING=y
CONFIG_ZMK_POINTING_SMOOTH_SCROLLING=y
# Combo config, automated by build script
CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=6
CONFIG_ZMK_COMBO_MAX_KEYS_PER_COMBO=3

View file

@ -1,14 +0,0 @@
/* source key position labels */
#include "zmk-helpers/key-labels/4x12_wide.h"
/* map Planck's extra keys */
#define X_MT &none &none // top row, middle
#define X_MM &none &none // middle row, middle
#define X_MB &none &none // bottom row, middle
#define X_LH &none &none &kp LGUI // thumb row, left
#define X_MH &none &none // thumb row, middle
#define X_RH &smart_mouse U_WH_D U_WH_U // thumb row, right
/* source the main keymap */
#include "base.keymap"