Scaffolding: ZMK module structure, Kconfig, DTS, behavior driver

- zephyr/module.yml with dts_root for dt-bindings
- Kconfig: STENO_ENGINE, dict selection (Plover/Lapwing/test),
  MPHF toggle, Unicode modes, history size, multi-stroke timeout
- DTS behavior binding (one_param, steno key index)
- behavior_steno.c: chord accumulation, all-up detection,
  multi-stroke buffering with timeout, star undo, formatter pipeline,
  3-way dict dispatch (split/MPHF/simple trie)
- dict_embed.S: .incbin from generated header path
- steno_keys.h: 23-key layout, bit positions matching compiler
This commit is contained in:
afiqzudinhadi 2026-07-02 02:04:28 +08:00
parent 234bc8d731
commit 1ec204b845
33 changed files with 5443 additions and 0 deletions

View file

@ -0,0 +1,13 @@
/*
* Copyright (c) 2024 Afiq Zudin Hadi
* SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
*/
/ {
behaviors {
/omit-if-no-ref/ steno: steno_engine {
compatible = "zmk,behavior-steno-engine";
#binding-cells = <1>;
};
};
};

View file

@ -0,0 +1,14 @@
# Copyright (c) 2024 Afiq Zudin Hadi
# SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
description: |
Steno engine behavior. Maps physical keys to steno positions,
detects chords on all-keys-up, and emits translated text.
Usage in keymap:
&steno STENO_SL // left S key
&steno STENO_TL // left T key
compatible: "zmk,behavior-steno-engine"
include: one_param.yaml