Giter Club home page Giter Club logo

zmk-config's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zmk-config's Issues

Nav + L keeps sending Backspaces

Not sure why but when I hit L while holding Nav, it keeps sending back spaces and it won't turn off unless I activate the combo for backspace. Is this intentional?

Selecting window from alt+tab (swapper)

How are you selecting a window with the current swapper implementation? Once I go into alt+tab mode, it requires me to send another key input to select a window, but the keypress affects selected window.

For example if I'm switching between windows and press enter while selecting notepad, a new line will be inserted.

no stroke recognition / flashing problem?

I think I successfully flashed the firmware, or so I thought.
My keyboard is being recognised but upon typing I don't see any output, alas. I'm wondering what could have gone wrong here

Question: How do you type vertical combos?

Sorry this might sound stupid, as I have never tried a split keyboard yet, still waiting for mine to arrive.

I find the idea very interesting, but I can't quite get how can you type the vertical combos comfortably. For horizontal combo, it is obvious that you use 2 fingers. But do you also use 2 fingers for 2 keys on the same column, or do you, idk, swipe them, or just press on the edge to activate them both at once?

Home row layer instead of mod

Hi there, I am using home row mods on other alpha keys as well. But I was wondering whether it is possible to use the advancements in this feature(differenciating between tap and hold) for a layer switch. Example: holding j would switch layer instead of making e.g. hold CMD/GUI.
I really appreciate what you are doing. Thank you for these repos and the guide how to use git for zmk.

Support for nice_nano/kyria keyboard

Hi, im quite impressed by your work, wannted to give it a shot but i cannot force it to compile for nice nano v2, is it compatible?

i followed guide for scripts/readme.md and just migrated my config but it didnt work, so i decided to just use yours config but use nice_nano_v2 board(commit here, but it fails the same way...

log.txt

am i missing something ? ;0

Question: How to use the mouse layer?

First of all, thank you for the repository.

My question is as asked. I can't use the mouse layer on my MacBook with magic mouse. In other words, no keystrokes work.

I noticed that the official documentation of zmk says: only mouse clicks can be simulated now (although I can't even do that). Is there a step I'm overlooking, please?

Thanks!

Issue with / combo on glove80

Hi im trying to get this config working on the glove80 and am having an issues that the / combo (RM2 RB2) is not working. Every other combo is working though. It just prints e, . I dont think it is an issue with keypress timing because all other keycombos seem to work fine.

Have you seen anything like this?

Thanks.

Build script compat with shields

First off, if this isn't a goal of the project, please let me know and just close the issue :).

So, after some effort I got podman installed and figured out how the buildscript is intended to be used. I'm attempting to use the cradio layout (34k split) with nice_nano_v2. Since shields aren't supported in the local build script, I'm having to resort to using the gh actions script (not terrible, but quite annoying :) ). I tried to make a bash script with yq that used shields as well, but I'm no bash wizard, so I'll spare you the pain of the non-working code haha.

ZMK_UNICODE_PAIR prints the unicode value

Sorry for opening an issue for this matter, I really appreciate your work, have everything working but ñ.
I'm using your submodule in my configuration and merged with another fork you zmk fork in my repo.
I'm trying to print the Spanish special character ñ, but got the unicode printed instead.

ZMK_UNICODE_PAIR(n_tilde, N0, N0, F, N1, N0, N0, D, N1)

Using it like this:
&n_tilde

It's weird the fact that other special characters defined in your submodule are working fine.
Any ideas?

Mouse layer doesn't work over bluetooth

I'm using the Kinesis config as base but with urob/zmk adv360-led branch (using west.yaml).
I'm using Mac.

The mouse works but only over USB and not over bluetooth.
I saw in the zmk repo questions about that and everyone said that repairing fix this, but not in my case, so I wonder maybe something is special about the mouse support in this branch and/or due to me mixing Kinesis config with the adv-360 branch and that cause some issues?

Any ideas?

star and fslh combo is not working

The combo "star" and "flslh" does not work.

I am writing firmware for Ferris Sweep 34key based on your repository.

I copied and used the files like combos.dtsi, etc. and modified the base.keymap as follows.

I think it has something to do with the "RM2" key working up and down, but I can't find the exact reason.

Any help would be appreciated.
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#if CONFIG_WIRELESS
#include <dt-bindings/zmk/bt.h>
#define BT_SEL_KEYS &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_CLR
#else
#define BT_SEL_KEYS &trans &trans &trans &trans &trans
#endif

#include "helper.h"

#define DEF 0
#define NAV 1
#define FN 2
#define NUM 3
#define SYS 4
#define UC 5
#define MOUSE 6

#include "combos.dtsi" // requires layer aliases
#include "mouse.dtsi"
#include "extra_keys.h"

#define XXX &none
#define ___ &trans

/* Global settings */

#define QUICK_TAP_MS 175

&sk { // sticky-key config
release-after-ms = <600>; // release after 0.6s
quick-release; // no double capitalization when rolling keys
};

&sl { // sticky-layer config
ignore-modifiers; // allow chording sticky mods & layers
};

&lt { // layer-tap config
flavor = "balanced";
tapping-term-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
};

/* Homerow mods */

#define KEYS_L 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
#define THUMBS LH1 LH0 RH0 RH1 // thumbs

#define MAKE_HRM(NAME, HOLD, TAP, TRIGGER_POS)
ZMK_BEHAVIOR(NAME, hold_tap,
flavor = "balanced";
tapping-term-ms = <280>;
quick-tap-ms = <QUICK_TAP_MS>;
global-quick-tap-ms = <150>;
bindings = , ;
hold-trigger-key-positions = <TRIGGER_POS>;
hold-trigger-on-release;
)
MAKE_HRM(hml, &kp, &kp, KEYS_R THUMBS) // left-hand HRMs
MAKE_HRM(hmr, &kp, &kp, KEYS_L THUMBS) // right-hand HRMs

MAKE_HRM(hml_repeat, &kp, &key_repeat, KEYS_R THUMBS) // used for HRM-combo
MAKE_HRM(hmr_lpar_lt, &kp, &lpar_lt, KEYS_L THUMBS) // " " " "
MAKE_HRM(hmr_rpar_gt, &kp, &rpar_gt, KEYS_L THUMBS) // " " " "

/* Nav cluster */

// long-tap action on hold, short-tap action on all interrupts
#define MT_CORE
flavor = "tap-preferred";
tapping-term-ms = <220>;
quick-tap-ms = <220>;
hold-trigger-key-positions = <0>;

&mt { MT_CORE };
ZMK_BEHAVIOR(mt_home, hold_tap, bindings = <&masked_home>, <&kp>; MT_CORE)
ZMK_BEHAVIOR(mt_end, hold_tap, bindings = <&masked_end>, <&kp>; MT_CORE)

#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_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_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

// mask CTRL when holding left/right to avoid accidental jumps to beginning/end of document
#define MASK_MODS(NAME, MODS, BINDING)
ZMK_BEHAVIOR(NAME, mod_morph,
bindings = , ;
mods = ;
)
MASK_MODS(masked_home, (MOD_LCTL), &kp HOME)
MASK_MODS(masked_end, (MOD_LCTL), &kp END)

/* Caps-word, num-word and smart-mouse */

// tap: sticky-shift | shift + tap/ double-tap: caps-word | hold: shift
ZMK_BEHAVIOR(smart_shft, mod_morph,
bindings = <&sk LSHFT>, <&caps_word>;
mods = <(MOD_LSFT)>;
)
&caps_word { // mods deactivate caps-word, requires PR #1441
/delete-property/ ignore-modifiers;
};

// tap: num-word | double-tap: sticky num-layer | hold: num-layer
#define SMART_NUM &smart_num NUM 0
ZMK_BEHAVIOR(smart_num, hold_tap,
flavor = "balanced";
tapping-term-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
bindings = <&mo>, <&num_dance>;
)
ZMK_BEHAVIOR(num_dance, tap_dance,
tapping-term-ms = <200>;
bindings = <&num_word>, <&sl NUM>; // reverse this for sticky-num on single tap
)
&num_word { // num-word, requires PR #1441
layers = ;
};

// smart-mouse, requires PR #1366
ZMK_BEHAVIOR(smart_mouse, tri_state,
bindings = <&tog MOUSE>, <&none>, <&tog MOUSE>;
ignored-key-positions = ;
ignored-layers = ;
)

/* Custom behaviors */

// Alt+Tab swapper, requires PR #1366
ZMK_BEHAVIOR(swapper, tri_state,
bindings = <&kt LALT>, <&kp TAB>, <&kt LALT>;
ignored-key-positions = ;
)

// Sticky layer + sticky shift (workaround for issue #1421)
ZMK_BEHAVIOR(sls, sticky_key,
release-after-ms = <1000>;
bindings = <&uc_shift>;
ignore-modifiers;
)
ZMK_BEHAVIOR(uc_shift, macro,
wait-ms = <0>;
tap-ms = <1>;
bindings = <&macro_press &mo UC &kp LSHFT>
, <&macro_pause_for_release>
, <&macro_release &mo UC &kp LSHFT>;
)

// tap: comma | shift + tap: semicolon | ctrl + shift + tap: <
ZMK_BEHAVIOR(comma_morph, mod_morph,
mods = <(MOD_LSFT|MOD_RSFT)>;
bindings = <&kp COMMA>, <&comma_inner_morph>;
)
ZMK_BEHAVIOR(comma_inner_morph, mod_morph,
bindings = <&kp SEMICOLON>, <&kp LESS_THAN>;
mods = <(MOD_LCTL|MOD_RCTL)>;
)

// tap: dot | shift + tap: colon | ctrl + shift + tap: >
ZMK_BEHAVIOR(dot_morph, mod_morph,
bindings = <&kp DOT>, <&dot_inner_morph>;
mods = <(MOD_LSFT|MOD_RSFT)>;
)
ZMK_BEHAVIOR(dot_inner_morph, mod_morph,
bindings = <&kp COLON>, <&kp GREATER_THAN>;
mods = <(MOD_LCTL|MOD_RCTL)>;
)

// tap: qmark | shift + tap: excl
ZMK_BEHAVIOR(qexcl, mod_morph,
bindings = <&kp QMARK>, <&kp EXCL>;
mods = <(MOD_LSFT|MOD_RSFT)>;
)

// tap: space | shift + tap: dot -> space -> sticky shift | hold: activate layer
ZMK_BEHAVIOR(lt_spc, hold_tap,
flavor = "balanced";
tapping-term-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
bindings = <&mo>, <&spc_morph>;
)
ZMK_BEHAVIOR(spc_morph, mod_morph,
bindings = <&kp SPACE>, <&dot_spc>;
mods = <(MOD_LSFT|MOD_RSFT)>;
)
ZMK_BEHAVIOR(dot_spc, macro,
wait-ms = <0>;
tap-ms = <5>;
bindings = <&kp DOT &kp SPACE &sk LSHFT>;
)

// tap: backspace | lshft + tap: delete | rshft + tap: shift-delete
ZMK_BEHAVIOR(bs_del, mod_morph,
bindings = <&kp BSPC>, <&kp DEL>;
mods = <(MOD_LSFT|MOD_RSFT)>;
keep-mods = <MOD_RSFT>;
)

// tap: left-parenthesis | shft + tap: less-than
ZMK_BEHAVIOR(lpar_lt, mod_morph,
bindings = <&kp LPAR>, <&kp LT>;
mods = <(MOD_LSFT|MOD_RSFT)>;
)

// tap: right-parenthesis | shft + tap: greater-than
ZMK_BEHAVIOR(rpar_gt, mod_morph,
bindings = <&kp RPAR>, <&kp GT>;
mods = <(MOD_LSFT|MOD_RSFT)>;
)

// tap: copy | double-tap: cut
ZMK_BEHAVIOR(copy_cut, tap_dance,
tapping-term-ms = <200>;
bindings = <&kp LC(INS)>, <&kp LC(X)>;
)

// Windows sleep key
ZMK_BEHAVIOR(win_sleep, macro,
wait-ms = <100>;
tap-ms = <5>;
bindings = <&kp LG(X) &kp U &kp S>;
)

// misc aliases
#define CANCEL &kp K_CANCEL // cancel caps-word, num-word and smart-mouse
#define DSK_PREV &hmr RSHFT LG(LC(LEFT)) // previous desktop
#define DSK_NEXT &hmr LALT LG(LC(RIGHT)) // next desktop
#define VOL_DOWN &hmr LCTRL C_VOL_DN

/* Keymap */

ZMK_CONDITIONAL_LAYER(DEF NAV, MOUSE) // FN + NAV --> MOUSE
ZMK_CONDITIONAL_LAYER(FN NUM, SYS) // FN + NUM --> SYS

ZMK_LAYER(base,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮
X_LT &kp Q &kp W &kp E &kp R &kp T X_MT &kp Y &kp U &kp I &kp O &kp P X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LM &hml LGUI A &hml LALT S &hml LCTRL D &hml LSHFT F &kp G X_MM &kp H &hmr RSHFT J &hmr LCTRL K &hmr LALT L &hmr LGUI SQT X_RM
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LB &kp Z &kp X &kp C &kp V &kp B X_MB &kp N &kp M &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,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮
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 LCTRL &sk LSHFT ___ X_MM &kp PG_DN NAV_LEFT NAV_DOWN NAV_RIGHT &kp RET X_RM
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LB ___ ___ ___ ___ ___ X_MB &kp INS &kp TAB &kp LT &kp GT ___ X_RB
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤
X_LH ___ ___ X_MH ___ CANCEL X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
)

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 &win_sleep X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LM &kp F11 &kp F4 &kp F5 &kp F6 ___ X_MM ___ DSK_PREV VOL_DOWN DSK_NEXT ___ X_RM
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LB &kp F10 &kp F1 &kp F2 &kp F3 ___ X_MB ___ ___ ___ ___ ___ X_RB
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤
X_LH ___ ___ X_MH &kp C_MUTE &kp C_PP X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
)

ZMK_LAYER(num,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮
X_LT ___ &kp N7 &kp N8 &kp N9 ___ X_MT ___ ___ ___ ___ ___ X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LM &hml LGUI N0 &hml LALT N4 &hml LCTRL N5 &hml LSHFT N6 ___ X_MM ___ ___ ___ ___ ___ X_RM
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LB ___ &kp N1 &kp N2 &kp N3 ___ X_MB ___ ___ ___ ___ ___ X_RB
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤
X_LH ___ ___ X_MH ___ ___ X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
)

ZMK_LAYER(sys,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮
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_LH ___ ___ X_MH ___ ___ X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
)

ZMK_LAYER(mouse,
//╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭──────╮
X_LT ___ ___ ___ ___ ___ X_MT ___ U_WH_D U_MS_U U_WH_U ___ X_RT
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LM ___ ___ ___ ___ ___ X_MM ___ U_MS_L U_MS_D U_MS_R ___ X_RM
//├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├──────┤
X_LB ___ ___ ___ ___ ___ X_MB ___ ___ ___ ___ ___ X_RB
//├──────┤ ╰─────────────┼─────────────┴─────────────┼─────────────┼─────────────┤ ├──────┤ ├─────────────┼─────────────┼─────────────┴───────────────────────────╯ ├──────┤
X_LH ___ ___ X_MH U_BTN2 U_BTN1 X_RH
//╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯ ╰─────────────┴─────────────╯ ╰──────╯
)

/* vim: set ft=c tw=174: */

Suggestion for German Umlauts on Nav instead of the rudendant "<" and ">"

As per issue #13, having < and > on the combos works just fine. Therefore removing them from the Nav Layer allows all the German Umlauts to be placed there identically as they are currently only on the "Greek" layer. That's because ä and ö would replace < and > and the other 2 keys for ß and ü are coincidentally already free on the Nav layer as well.

This allows the German Umlauts to be typed much more easily, while keeping the same placement as they currently reside on the less efficient to activate Greekt layer and while only removing 2 redundant keys that cause issues with shortcuts anyways.

Ctrl + Shift + ; and Ctrl + ; are unavailable

This is more of a commentary than a necessity. I'm sure it's your personal build after all.

Google sheets, and I think excel, have the following shortcuts:

  1. To insert the current date: Ctrl + ;
  2. To insert the current time: Ctrl + Shift + ; (Ctrl + :)

Attempting these will produce < >.

If no longer in use, because < > are accessible with combos, I suggest they be removed.

My working snippet.

// tap: comma | shift + tap: semicolon | ctrl + shift + tap: <
ZMK_BEHAVIOR(comma_morph, mod_morph,
    mods = <(MOD_LSFT|MOD_RSFT)>;
    bindings = <&kp COMMA>, <&kp SEMICOLON>; // updated to semicolon on this line
)
// Not needed greater than is on a combo
// ZMK_BEHAVIOR(comma_inner_morph, mod_morph,
//     bindings = <&kp SEMICOLON>, <&kp LESS_THAN>;
//     mods = <(MOD_LCTL|MOD_RCTL)>;
// )

// tap: dot | shift + tap: colon | ctrl + shift + tap: >
ZMK_BEHAVIOR(dot_morph, mod_morph,
    bindings = <&kp DOT>, <&kp COLON>; // updated to colon on this line
    mods = <(MOD_LSFT|MOD_RSFT)>;
)
// Not needed greater than is on a combo
// ZMK_BEHAVIOR(dot_inner_morph, mod_morph,
//     bindings = <&kp COLON>, <&kp GREATER_THAN>;
//     mods = <(MOD_LCTL|MOD_RCTL)>;
// )

Problem with mouse (config undefined node label 'mmv')

Last month I could build my config with success but now even using the same commits that I used to build here with success I get this build error:

devicetree error: /keymap/layer_2: undefined node label 'mmv'

I have done no changes on the keymap includes nor west.yml

I see there is a recent commit that messes with mouse functionality. But I can't understand what is wrong. Is there missing a new config that I need to add but it is not on the README file or it can be other issue?

Thanks in advance.

Do you know of anyone who forked this for the glove 80?

Hello. Thank you for sharing your configs. It seems to be very good thought. I'm particularly attracted by the quick home row mods and the combos. I'm coming from qmk and I heavily rely on those.
I am in the process of moving to ZMK for my new globe80, but there is a lot to digest and configure. I was wondering if you know someone that is using your configs for the glove 80, so I can just steal their config 😁

Combos around <E>-key

At first - thank you for sharing these great ideas!

I was wondering why all the combos worked except the <FSLH> combo.
Typing <RM2+RB2> resulted in <e><,>.
I had to add a line

CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=6

to my board.conf file, now it works as expected.

Question

How do you create/generate this beautiful image of your layout?

image

[qwerty] fork not building

I'm sorry as this is the upteenth issue I'm posting.

I've created a repo and basically imported your files.
Then I made minor changes to the layout [qwerty].

When trying to build, the files I modified (360) cannot be built and I get an error message.
Screenshot 2023-06-26 at 14 18 15

Is this a syntax error or is there anything specific I'm doing wrong?

PS: The action also builds the stuff for the other keyboard although I've deleted the respective files from the repo ...

Thanks again

Attempting to use the local build script errors out

Running ./zmk_build.sh errors with the following output:

Building glove80_rh... 
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: /workspace/zmk/app
-- ZMK Config directory: /workspace/zmk-config/config
CMake Warning at cmake/ZephyrBuildConfig.cmake:199 (message):
  Failed to locate keymap file!
Call Stack (most recent call first):
  /workspace/zmk/zephyr/cmake/modules/zephyr_default.cmake:22 (find_package)
  /workspace/zmk/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  /workspace/zmk/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
  CMakeLists.txt:15 (find_package)


-- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter 
-- Cache files will be written to: /root/.cache/zephyr
-- Zephyr version: 3.2.0 (/workspace/zmk/zephyr)
-- Found west (found suitable version "0.14.0", minimum required is "0.7.1")
-- Board: glove80_rh
No board named 'glove80_rh' found.

2 things seem to be problematic here:

  • Zephyr not seeing the board's config? Although I am running the same code pushed to Github builds successfully
  • Board seems to be unsupported

Here is my west.yml file for context (maybe I'm messing up by not specifying the Zephyr version somehow? Note: I have tried adding -v main which errors differently):

manifest:
  remotes:
    - name: zmkfirmware
      url-base: https://github.com/zmkfirmware
    - name: urob
      url-base: https://github.com/urob
  projects:
    - name: zmk
      remote: urob
      revision: main-with-native-mouse
      import: app/west.yml
  self:
    path: config

Turning on LEDs

I came to know that LEDs are turned off. How can I enable that?

Thanks :)

COMBO_TERM_SLOW potentially causes false activations of mouse and Greek layers

Very often when typing the word "analysis" I seem to have activated some weird shortcuts. It happened so often that it got really annoying.

After "analysing" (sheesh) what's going on, I realized it's due to the "LY" bigram that is used to also activate the Greek layer as a combo. Now I don't think I noticed the same on the mouse layer, that is activated with the other hand on the W and P keys, but it's safe to say the "LY" bigram is not at all rare and thus causing false activations if pressed very quickly in succession.

When looking at the combos.dtsi, I noticed combos of horizontally adjacent keys use COMBO_TERM_FAST, while combos with vertically adjacent keys use COMBO_TERM_SLOW. That absolutely makes sense.

However, I noticed that COMBO_TERM_SLOW is also used for the combos for the mouse layer, the greek, the shifted greek layer and for cutting. These are combos that consist of keys that are on the same horizontal row as well but either not directly adjacent or require 3 keys.

Now, I would argue that it makes no difference in speed if I need to press a combo with the index finger + middle finger or if I have to press it with the index finger + ring finger. It can be done equally as fast and thus COMBO_TERM_SLOW is not necessarily needed here. Furthermore, since they are so qluick to press at the same time OR in succession when typing, it allows quickly typing bigrams such as "LY" to be mistakingly registered as a combo. Which is why I would highly suggest COMBO_TERM_FAST for these.

Now trigrams such as "LUY" in case of the Shifted Greek layer or even more so "XCD" in case of the cut combo are probably quite rare, so mistakingly activating those combos when typing should be less of an issue. But I feel like pressing 3 keys with the index, middle and ring finger at the same time is also quick and easy enough to do, that one could also comfortably use COMBO_TERM_FAST here as well.

360 build

I'm a total noob, I have no clue how to build the firmware.
Watched some tutorials so I have an idea,
but how do I build firmware actually?
I want to build for the 360 pro but there are also other files for other keyboards (planck etc.) and this is already too much to process for my brain ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.