Skip to content

Commit

Permalink
feat: add smart num layer
Browse files Browse the repository at this point in the history
  • Loading branch information
simeonoff committed Aug 20, 2024
1 parent f8a4e06 commit aa4dff6
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 23 deletions.
30 changes: 23 additions & 7 deletions config/behaviors.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
#define COMBO_IDLE_FAST 150
#define COMBO_IDLE_SLOW 50

&sk { // sticky-key config
release-after-ms = <900>; // release after 0.9s
quick-release; // no double capitalization when rolling keys
#define QUICK_TAP_MS 175

&num_word {
continue-list = <BSPC SPACE LCTL DEL DOT COMMA PLUS MINUS STAR CARET FSLH EQUAL>;
};

ZMK_MOD_MORPH(lshft,
Expand All @@ -29,14 +30,14 @@ ZMK_MOD_MORPH(rshft,
)

// tap: key 2 | quick tap: key 2 | hold: key 1
ZMK_HOLD_TAP(lkp,
ZMK_HOLD_TAP(qlt,
flavor = "tap-preferred";
tapping-term-ms = <200>;
quick-tap-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
bindings = <&mo>, <&kp>;
)

// Sticky mods are released after 3.5s
// Sticky mods with quick release
ZMK_STICKY_KEY(skm,
release-after-ms = <3500>;
bindings = <&kp>;
Expand All @@ -47,7 +48,7 @@ ZMK_STICKY_KEY(skm,
// implements alt+tab behavior
ZMK_TRI_STATE(alt_tab,
bindings = <&kt RGUI>, <&kp TAB>, <&kt RGUI>;
ignored-key-positions = <LT4 LH2 RM0 RM1 RM2 RM3>; // Ignore Q, ENTER and Arrows
ignored-key-positions = <RM0 RM1 RM2 RM3>; // Ignore Arrows
)

// tap: play/pause | double-tap: next song | tripple-tap: previous song
Expand All @@ -56,8 +57,23 @@ ZMK_TAP_DANCE(play_np,
bindings = <&kp C_PLAY_PAUSE>, <&kp C_NEXT>, <&kp C_PREVIOUS>;
)

// tap: num-word | double-tap: sticky num-layer | hold: num-layer
ZMK_HOLD_TAP(smart_num,
flavor = "balanced";
tapping-term-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
bindings = <&mo>, <&num_dance>;
)

ZMK_TAP_DANCE(num_dance,
tapping-term-ms = <200>;
bindings = <&num_word NUM>, <&sl NUM>; // reverse this for sticky-num on single tap
)

// Cyrillic alphabet combos
ZMK_COMBO(sh, &kp LBKT, LT2 LT1, COL QWR, COMBO_TERM_FAST, COMBO_IDLE_FAST)
ZMK_COMBO(sht, &kp RBKT, LM2 LM1, COL QWR, COMBO_TERM_FAST, COMBO_IDLE_FAST)
ZMK_COMBO(ch, &kp GRAVE, LB2 LB1, COL QWR, COMBO_TERM_FAST, COMBO_IDLE_FAST)
ZMK_COMBO(yu, &kp BSLH, RT2 RT1, COL QWR, COMBO_TERM_FAST, COMBO_IDLE_FAST)

/* vim: set ft=c tw=174: */
47 changes: 35 additions & 12 deletions config/splitkb_aurora_corne.keymap
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>
#include <behaviors/num_word.dtsi>

#define COL 0
#define QWR 1
#define NAV 2
#define SYM 3
#define NUM 4
#define SYS 5
#define FUN 5
#define SYS 6

#include "zmk-helpers/helper.h"
#include "zmk-helpers/key-labels/42.h"
Expand All @@ -26,9 +28,18 @@
#define ___ &trans

#define CTL_ESC &mt LCTL ESC
#define CTL_CAN &mt LCTL K_CANCEL
#define SMART_NUM &smart_num NUM 0
#define CANCEL &kp K_CANCEL // cancel caps-word and num-word
#define WS_PREV &kp LA(LS(LG(LEFT))) // previous workspace
#define WS_NEXT &kp LA(LS(LG(RIGHT))) // next workspace
#define WS_1 &kp LA(LS(LG(N1))) // workspace 1
#define WS_2 &kp LA(LS(LG(N2))) // workspace 2
#define WS_3 &kp LA(LS(LG(N3))) // workspace 3
#define WS_4 &kp LA(LS(LG(N4))) // workspace 4

/* Keymap */
ZMK_CONDITIONAL_LAYER(num, NAV SYM, NUM) // NAV + SYM --> NUM
ZMK_CONDITIONAL_LAYER(num, NAV SYM, SYS) // NAV + SYM --> NUM

ZMK_LAYER(base,
//╭───────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭───────────╮
Expand All @@ -38,7 +49,7 @@ ZMK_LAYER(base,
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
&lshft &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH &rshft
//╰───────────╯ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ╰───────────╯
XXX &kp RET &mo NAV &lkp SYM BSPC &kp SPACE &mo SYS
SMART_NUM &kp RET &mo NAV &qlt SYM BSPC &kp SPACE &mo FUN
// ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
)

Expand All @@ -56,13 +67,13 @@ ZMK_LAYER(qwerty,

ZMK_LAYER(nav,
//╭───────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭───────────╮
&alt_tab &prev_c &next_c &lang &cast &kp C_VOL_UP XXX &kp HOME &kp END &prev_d &next_d ___
&alt_tab &prev_c &next_c &lang &cast &kp C_VOL_UP XXX &kp HOME &kp END WS_PREV WS_NEXT ___
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
&kp LCTL XXX XXX &skm LALT &skm LGUI &kp C_VOL_DN &kp LEFT &kp DOWN &kp UP &kp RIGHT XXX XXX
&kp LCTL &prev_d &next_d &skm LALT &skm LGUI &kp C_VOL_DN &kp LEFT &kp DOWN &kp UP &kp RIGHT XXX XXX
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
XXX XXX XXX XXX XXX &play_np XXX &kp PG_UP &kp PG_DN XXX XXX XXX
XXX WS_1 WS_2 WS_3 WS_4 &play_np XXX &kp PG_UP &kp PG_DN XXX XXX XXX
//╰───────────╯ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ╰───────────╯
___ ___ ___ ___ ___ ___
___ ___ ___ ___ ___ CANCEL
// ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
)

Expand All @@ -80,13 +91,25 @@ ZMK_LAYER(sym,

ZMK_LAYER(num,
//╭───────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭───────────╮
XXX &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 ___
___ ___ ___ ___ ___ ___ &kp PLUS &kp N7 &kp N8 &kp N9 &kp STAR ___
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
&kp LCTL &to COL XXX &skm LALT &skm LGUI &kp F11 &kp F12 &skm RGUI &skm LALT XXX &to QWR XXX
CTL_CAN ___ ___ ___ ___ ___ &kp MINUS &kp N4 &kp N5 &kp N6 &kp FSLH XXX
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
___ &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 ___
___ ___ ___ ___ ___ ___ &kp DOT &kp N1 &kp N2 &kp N3 &kp EQUAL ___
//╰───────────╯ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ╰───────────╯
___ ___ ___ ___ ___ ___
___ ___ ___ ___ ___ &kp N0
// ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
)

ZMK_LAYER(fn,
//╭───────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭───────────╮
___ ___ &kp F7 &kp F8 &kp F9 &kp F12 ___ ___ ___ ___ ___ ___
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
___ ___ &kp F4 &kp F5 &kp F6 &kp F11 ___ ___ ___ ___ ___ XXX
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
___ ___ &kp F1 &kp F2 &kp F3 &kp F10 ___ ___ ___ ___ ___ ___
//╰───────────╯ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ╰───────────╯
___ ___ ___ ___ ___ ___
// ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
)

Expand All @@ -96,7 +119,7 @@ ZMK_LAYER(sys,
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
___ &out OUT_USB &out OUT_BLE ___ ___ &bootloader &bootloader ___ ___ ___ ___ XXX
//├───────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├───────────┤
___ ___ ___ ___ ___ &sys_reset &sys_reset ___ ___ ___ ___ ___
___ &to COL &to QWR ___ ___ &sys_reset &sys_reset ___ ___ ___ ___ ___
//╰───────────╯ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ╰───────────╯
___ ___ ___ ___ ___ ___
// ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
Expand Down
9 changes: 6 additions & 3 deletions config/west.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ manifest:
remotes:
- name: zmkfirmware
url-base: https://github.com/zmkfirmware
- name: dhruvinsh
url-base: https://github.com/dhruvinsh
- name: urob
url-base: https://github.com/urob
projects:
Expand All @@ -12,11 +10,16 @@ manifest:
revision: main
import: app/west.yml
- name: zmk-tri-state
remote: dhruvinsh
remote: urob
revision: main
path: modules/tri-state
- name: zmk-helpers
remote: urob
revision: main
path: modules/helpers
- name: zmk-auto-layer
remote: urob
revision: main
path: modules/auto-layer
self:
path: config
1 change: 0 additions & 1 deletion zmk-helpers
Submodule zmk-helpers deleted from d70db6

0 comments on commit aa4dff6

Please sign in to comment.