Terminal Input Escape Decoder. This library has the simple purpose of obtaining keypress (keysym + modmask) events by decoding *keyboard* input sent to a terminal.
  • C 96%
  • Meson 3.8%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-14 13:01:24 -04:00
include Case-insensitive modifier matching 2026-09-14 12:20:59 -04:00
src Fix case-insensitive mod parsing 2026-09-14 13:01:24 -04:00
subprojects Build libxkbcommon as subproj when not on host 2026-08-10 14:19:06 -04:00
test Fix case-insensitive mod parsing 2026-09-14 13:01:24 -04:00
.gitignore Build libxkbcommon as subproj when not on host 2026-08-10 14:19:06 -04:00
LICENSE Initial commit 2026-08-08 16:16:34 -04:00
meson.build Fix libtied_dep export 2026-08-26 15:18:06 -04:00
README.md Glyph parsing is good 2026-09-14 11:59:40 -04:00
run-clang-tidy.sh Good, consistent public symbol names 2026-08-21 14:47:36 -04:00

TIED

Terminal Input Escape Decoder. This library has the simple purpose of obtaining keypress (keysym + modmask) events by decoding keyboard input sent to a terminal.

TODO

  • DRY + generally improve test code. A lot of it is templatic.
  • Properly handle debouncing timeout
  • Store getc_fn in Decoder to simplify signatures for private (static) Decoder methods
  • Choose good, consistent names for everything public (and ideally for everything period)
  • Normalize Ctrl-key combos (handle C0 range)
  • Normalize Ctrl-Alt-key combos (fully handle C0 range)
  • Parse keysyms from both names and glyphs
  • Test everything on Windows 10

Once these are all taken care of and TIED has some real world use (in MPL), I'll call the API stable and mark it v1.0.0