Update readme

This commit is contained in:
urob 2022-07-15 01:36:01 -04:00
parent 403b463b93
commit 233d5b781d
2 changed files with 12 additions and 34 deletions

View file

@ -63,28 +63,28 @@ ISSUES, WORKAROUNDS and a "ZMK-WISHLIST"
/* homerow mods */ /* homerow mods */
#define LHM LM4 LM3 LM2 LM1 // left-hand HRMs #define HRM_LT LM1 LM2 LM3 LM4 // left-hand HRMs
#define RHM RM1 RM2 RM3 RM4 // right-hand HRMs #define HRM_RT RM1 RM2 RM3 RM4 // right-hand HRMs
#define LHK LT4 LT3 LT2 LT1 LT0 LHM LM0 LB4 LB3 LB2 LB1 LB0 // left-hand keys #define KEYS_LT LT0 LT1 LT2 LT3 LT4 LM0 HRM_LT LB0 LB1 LB2 LB3 LB4 // left-hand keys
#define RHK RT0 RT1 RT2 RT3 RT4 RM0 RHM RB0 RB1 RB2 RB3 RB4 // right-hand keys #define KEYS_RT RT0 RT1 RT2 RT3 RT4 RM0 HRM_RT RB0 RB1 RB2 RB3 RB4 // right-hand keys
#define THK LH2 LH1 LH0 RH0 RH1 RH2 // thumb keys #define THUMBS LH2 LH1 LH0 RH0 RH1 RH2 // thumb keys
ZMK_BEHAVIOR(hml, hold_tap, ZMK_BEHAVIOR(hml, hold_tap, // left-hand HRMs
flavor = "balanced"; flavor = "balanced";
tapping-term-ms = <280>; tapping-term-ms = <280>;
quick-tap-ms = <125>; quick-tap-ms = <125>;
global-quick-tap; global-quick-tap;
bindings = <&kp>, <&kp>; bindings = <&kp>, <&kp>;
hold-trigger-key-positions = <LHM RHK THK>; // include left-hand HRMs for mod-chording hold-trigger-key-positions = <KEYS_RT THUMBS HRM_LT>; // include left-hand HRMs for chording
) )
ZMK_BEHAVIOR(hmr, hold_tap, ZMK_BEHAVIOR(hmr, hold_tap, // right-hand HRMs
flavor = "balanced"; flavor = "balanced";
tapping-term-ms = <280>; tapping-term-ms = <280>;
quick-tap-ms = <125>; quick-tap-ms = <125>;
global-quick-tap; global-quick-tap;
bindings = <&kp>, <&kp>; bindings = <&kp>, <&kp>;
hold-trigger-key-positions = <RHM LHK THK>; // include right-hand HRMs for mod-chording hold-trigger-key-positions = <KEYS_LT THUMBS HRM_RT>; // include right-hand HRMs for chording
) )
/* custom keys and macros */ /* custom keys and macros */

View file

@ -6,10 +6,8 @@ It is ported from my QMK configuration, which in turn is heavily inspired by Man
## Key features ## Key features
- clean keymap config using - clean keymap config + unicode support using
[zmk-nodefree-config](https://github.com/urob/zmk-nodefree-config)[^1] [zmk-nodefree-config](https://github.com/urob/zmk-nodefree-config)
- simple macro-implementation of combos and keymap to fit different physical
keyboards[^2]
- home-row mods on base layer, sticky mods on `Nav` and `Num` layers - home-row mods on base layer, sticky mods on `Nav` and `Num` layers
- most symbols can be accessed from the base layer via combos - most symbols can be accessed from the base layer via combos
- sticky shift on right thumb, double-tap activates caps-word - sticky shift on right thumb, double-tap activates caps-word
@ -17,7 +15,7 @@ It is ported from my QMK configuration, which in turn is heavily inspired by Man
- full numpad-layer with arithmetic operators (`=` via combo) and `Esc`, `Enter`, `Tab` - full numpad-layer with arithmetic operators (`=` via combo) and `Esc`, `Enter`, `Tab`
on left hand (can be numlocked via `W + P` combo, ideal for data entry and on left hand (can be numlocked via `W + P` combo, ideal for data entry and
right-handed mouse) right-handed mouse)
- unicode-layer with Greek letters for mathematical typesetting (implemented via preprocessor macros[^3]) - "Greek" layer for mathematical typesetting
![](img/keymap.png) ![](img/keymap.png)
@ -38,23 +36,3 @@ and (2) make them easy to remember. Specifically:
- shortcuts for cut (on `X + D`), copy, and paste on the left-hand side for right-handed - shortcuts for cut (on `X + D`), copy, and paste on the left-hand side for right-handed
mouse usage mouse usage
[^1]: I am using git-subtree for the dependency management here as Github actions don't
recognize git-submodules.
[^2]: I use a 36-key layout per default. Additional thumb keys can be configured with
the `EXTRA_BOT_L` and `EXTRA_BOT_R` macros. Additional "middle-keys" can be
configured with the `EXTRA_MID` macro (see `planck_rev6.keymap` for an example).
In order to consitently configure combos and [positional
hold-taps](https://zmk.dev/docs/behaviors/hold-tap#positional-hold-tap-and-hold-trigger-key-positions)
across keyboards with different physical key specifications, I use a set of "virtual
location" macros which map key-positions in the layout to physical locations on the
shield. These macros follow a common naming convention, starting with `LT0` for the
first key on the **L**eft **T**op-row and ranging to `RB4` for the last key on the
**R**ight **B**ottom-row. They need to be defined in the shield-specific keymap-file
*before* sourcing the common `base.keymap`.
[^3]: This is my attempt at a simple user-space solution until unicode is natively
supported. Check out `unicode.dtsi` for details and read
[my write up here](https://github.com/zmkfirmware/zmk/issues/232#issuecomment-1163833880)
for a few more pointers and some caveats.