From b12e7400e82b67224c9ff0bba6e6e3c866e2ea54 Mon Sep 17 00:00:00 2001 From: KemoNine Date: Mon, 9 Aug 2021 23:31:40 +0000 Subject: [PATCH] Adjust the combo/hold timings for zmk and allow them to be tuned more generally ; also cleanup the combo definitions so it's more obvious what's where --- config/artsey.dtsi | 123 +++++++++++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 50 deletions(-) diff --git a/config/artsey.dtsi b/config/artsey.dtsi index 4096011..52366f7 100644 --- a/config/artsey.dtsi +++ b/config/artsey.dtsi @@ -113,21 +113,28 @@ /***************************************** * Define how long it takes for the combos/holds to 'time out' * See documentation on "combos" for more detail - * Advanced users / fast typers on ARTSEY may want to use the following values - * Hold timeout: 200 - * Combo timeout: 180 + *****************************************/ -#if !defined TIMEOUT_COMBO -#define TIMEOUT_COMBO 250 +#if !defined TIMEOUT_COMBO_2 +#define TIMEOUT_COMBO_2 125 +#endif +#if !defined TIMEOUT_COMBO_3 +#define TIMEOUT_COMBO_3 150 +#endif +#if !defined TIMEOUT_COMBO_4 +#define TIMEOUT_COMBO_4 175 #endif #if !defined TIMEOUT_LAYER_HOLD -#define TIMEOUT_LAYER_HOLD 500 +#define TIMEOUT_LAYER_HOLD 200 +#endif +#if !defined TIMEOUT_STICKY_LEADER_KEY +#define TIMEOUT_STICKY_LEADER_KEY 5000 #endif &sk { - release-after-ms = <1000>; + release-after-ms = ; }; &sl { - release-after-ms = <2000>; + release-after-ms = ; }; /***************************************** @@ -194,6 +201,7 @@ * Layer IDs used by the ARTSEY keymap * Do NOT change these and do NOT change the order of the layers as shown below *****************************************/ +#define LAYER_ID_GLOBAL -1 #define LAYER_ID_BASE 0 #define LAYER_ID_NUMBERS 1 #define LAYER_ID_SYMBOLS 2 @@ -211,52 +219,67 @@ / { combos { compatible = "zmk,combos"; - combo_b { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp B>; }; - combo_m { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp M>; }; - combo_c { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp C>; }; - combo_n { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp ARTSEY_COMBO_N>; }; - combo_d { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp D>; }; - combo_p { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp P>; }; - combo_f { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp F>; }; - combo_q { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp Q>; }; - combo_g { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp G>; }; - combo_u { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp U>; }; - combo_h { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp H>; }; - combo_v { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp V>; }; - combo_j { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp J>; }; - combo_w { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp W>; }; - combo_k { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp K>; }; - combo_x { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp X>; }; - combo_l { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp L>; }; - combo_z { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp Z>; }; - combo_enter { timeout-ms = ; key-positions = ; bindings = <&kp ENTER>; }; - combo_esc { timeout-ms = ; key-positions = ; bindings = <&kp ESC>; }; - combo_single_quote { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp SQT>; }; - combo_tab { timeout-ms = ; key-positions = ; bindings = <&kp TAB>; }; - combo_comma { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp COMMA>; }; - combo_control { timeout-ms = ; key-positions = ; bindings = <&sk LCTRL>; }; - combo_period { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp PERIOD>; }; - combo_gui { timeout-ms = ; key-positions = ; bindings = <&sk LGUI>; }; - combo_slash { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp SLASH>; }; - combo_alt { timeout-ms = ; key-positions = ; bindings = <&sk LALT>; }; - combo_exclamation { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp EXCL>; }; - combo_backspace { timeout-ms = ; key-positions = ; bindings = <&kp BACKSPACE>; }; - combo_delete { timeout-ms = ; key-positions = ; bindings = <&kp DELETE>; }; - combo_shift { timeout-ms = ; key-positions = ; bindings = <&sk LSHFT>; }; - combo_space { timeout-ms = ; key-positions = ; bindings = <&kp SPACE>; }; - combo_shift_lock { timeout-ms = ; key-positions = ; bindings = <&kt LSHFT>; }; - combo_caps_lock { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp CAPS>; }; - combo_seven { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N7>; }; - combo_eight { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N8>; }; - combo_nine { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N9>; }; - combo_zero { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N0>; }; - combo_layer_bt_select { key-positions = ; bindings = <&tog LAYER_ID_BT_SEL>; }; - combo_bt_clr { key-positions = ; bindings = <&bt BT_CLR>; }; - combo_layer_navigation { key-positions = ; bindings = <&tog LAYER_ID_NAVIGATION>; }; + /***************************************** + * 2 key combos + *****************************************/ // Function layer doesn't apply to non-big artsey presently #if defined ARTSEY_BIG combo_layer_functions { key-positions = ; bindings = <&sl LAYER_ID_BIG_FUNCTION>; }; #endif + combo_enter { timeout-ms = ; key-positions = ; bindings = <&kp ENTER>; }; + combo_control { timeout-ms = ; key-positions = ; bindings = <&sk LCTRL>; }; + combo_gui { timeout-ms = ; key-positions = ; bindings = <&sk LGUI>; }; + combo_alt { timeout-ms = ; key-positions = ; bindings = <&sk LALT>; }; + combo_backspace { timeout-ms = ; key-positions = ; bindings = <&kp BACKSPACE>; }; + combo_delete { timeout-ms = ; key-positions = ; bindings = <&kp DELETE>; }; + combo_shift_lock { timeout-ms = ; key-positions = ; bindings = <&kt LSHFT>; }; + + combo_b { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp B>; }; + combo_c { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp C>; }; + combo_n { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp ARTSEY_COMBO_N>; }; + combo_f { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp F>; }; + combo_g { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp G>; }; + combo_u { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp U>; }; + combo_h { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp H>; }; + combo_v { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp V>; }; + combo_j { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp J>; }; + combo_w { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp W>; }; + combo_k { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp K>; }; + combo_comma { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp COMMA>; }; + combo_period { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp PERIOD>; }; + combo_slash { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp SLASH>; }; + combo_exclamation { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp EXCL>; }; + + combo_seven { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N7>; }; + combo_eight { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N8>; }; + combo_nine { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N9>; }; + combo_zero { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp N0>; }; + + /***************************************** + * 3 key combos + *****************************************/ + combo_esc { timeout-ms = ; key-positions = ; bindings = <&kp ESC>; }; + combo_layer_navigation { timeout-ms = ; key-positions = ; bindings = <&tog LAYER_ID_NAVIGATION>; }; + + combo_m { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp M>; }; + combo_d { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp D>; }; + combo_p { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp P>; }; + combo_q { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp Q>; }; + combo_x { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp X>; }; + combo_l { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp L>; }; + combo_single_quote { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp SQT>; }; + + /***************************************** + * 4 key combos + *****************************************/ + combo_tab { timeout-ms = ; key-positions = ; bindings = <&kp TAB>; }; + combo_space { timeout-ms = ; key-positions = ; bindings = <&kp SPACE>; }; + combo_shift { timeout-ms = ; key-positions = ; bindings = <&sk LSHFT>; }; + combo_layer_bt_select { timeout-ms = ; key-positions = ; bindings = <&tog LAYER_ID_BT_SEL>; }; + combo_bt_clr { timeout-ms = ; key-positions = ; bindings = <&bt BT_CLR>; }; + + combo_z { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp Z>; }; + combo_caps_lock { layers = ; timeout-ms = ; key-positions = ; bindings = <&kp CAPS>; }; }; };