nuttx-apps/system
Jorge Guzman b8a7b2cc9b system/kbd: inject keys into a uinput keyboard
Somebody porting a board has to work on the application side before the
keyboard driver exists, and somebody reviewing that work often does not
have the board at hand at all.

With -i the tool goes the other way and writes into a uinput keyboard,
either what it reads from its own stdin or every key of another keyboard.
So an application reading /dev/ukeyboard is driven from the serial
console, or from whatever is on the far end of it, and a real keyboard
and an injected one can drive it at the same time, which neither can do
on its own since an application opens a single device.

Nothing in the application changes:  it is reading a keyboard like any
other, which is the point.

Validated on a Linum STM32H753BI, forwarding a USB HID keyboard and the
serial console into the same virtual keyboard, with the LVGL terminal
reading it.  24 press and release pairs survived the crossing with no
duplicate, no orphan and three keys held at once.

Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
2026-08-01 11:13:11 -03:00
..
adb !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
adcscope !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
argtable3 cmake: remove empty strings from FetchContent 2025-03-30 14:20:21 +08:00
batterydump system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
cdcacm include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
cfgdata mtd/nvs: modify config name to MTD_CONFIG_NVS part1 2026-02-02 11:01:19 +08:00
cle include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
composite include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
conntrack system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
coredump !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
cpuload system/cpuload: Fix application's Make.defs location 2025-02-20 08:34:52 +01:00
critmon system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
cu include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
curl system/curl: add a small curl-like HTTP client command 2026-07-20 10:21:57 +02:00
dd apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
debugpoint system/debugpoint: fix bug the length option parsing error 2025-02-25 13:07:58 -03:00
dhcp6c include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
dhcpc system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
dumpstack system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
fastboot system: fastboot: bound filedump path parsing 2026-07-16 15:59:21 +08:00
fdt apps: add missing module metadata for executable tools 2026-06-22 22:27:07 +08:00
flash_eraseall system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
flatbuffers system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
gcov gcov: Output mode judgment is implemented in the kernel layer 2025-06-26 23:48:01 +08:00
gdbstub system/gdbstub: Add depends of LIB_GDBSTUB 2025-07-18 22:42:03 +08:00
gprof system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hex2bin system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hexed system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hostname system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
i2c include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
iptables iptables: add file lock to prevent concurrent overwrite 2026-01-15 17:20:03 +08:00
irtest system/irtest: Set irtest command line size to CONFIG_LINE_MAX 2026-04-24 14:58:05 +02:00
kbd system/kbd: inject keys into a uinput keyboard 2026-08-01 11:13:11 -03:00
libffi system/libffi: Add libffi package integration 2026-05-22 21:51:31 +08:00
libuv apps: add missing module metadata for executable tools 2026-06-22 22:27:07 +08:00
lm75 system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
lsan testing: add missing header files 2026-01-26 19:32:27 +08:00
lzf system/lzf: Fix missing space in Kconfig help text. 2026-05-28 21:27:01 +02:00
mdio system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
microros system/microros: Add UDP and serial custom transport backends. 2026-06-02 00:15:25 +08:00
netdb system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
nsh system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
ntpc system/ntpc: update ntpc messages 2025-09-05 23:47:36 +02:00
nxcamera apps: Fix codespell warnings. 2026-05-22 13:39:04 +08:00
nxcodec system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
nxdiag system/nxdiag: add CMake support for NXDiag tool 2026-05-21 12:34:05 +08:00
nxinit system: nxinit: bound debug argv dump 2026-07-07 09:47:23 +08:00
nxlooper include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
nxmbclient modbus: add nxmodbus 2026-04-20 12:45:17 -03:00
nxpkg system/nxpkg: add local package lifecycle helper 2026-06-20 15:05:28 -03:00
nxplayer system: audio: parse command filenames with PATH_MAX 2026-07-11 12:40:07 -03:00
nxrecorder system: audio: parse command filenames with PATH_MAX 2026-07-11 12:40:07 -03:00
ofloader !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
ping system/ping: Fix a segmentation fault when using ping 2026-07-09 09:42:30 +08:00
ping6 system/ping: Fix a segmentation fault when using ping 2026-07-09 09:42:30 +08:00
popen apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
psmq system/psmq: add proper include path for embedlog 2025-02-20 08:39:13 +01:00
ptpd !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
readline system/readline: Fix small issues 2026-07-26 18:46:45 -03:00
resmonitor system: resmonitor: check CPU load reads 2026-07-06 16:31:38 +08:00
sched_note system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
sensorscope system/sensorscope: support for fixe16 data 2026-05-06 08:54:32 +02:00
sensortest signals: fix build and runtime issues when signals all isabled 2026-01-19 22:55:19 +08:00
setlogmask system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
settings system/settings: Bound storage string handling 2026-05-28 14:35:54 +02:00
smf system/smf: Port SMF .c/.h files to NuttX 2026-01-05 12:50:04 -05:00
spi include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
stackmonitor system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
syslogd system/syslogd: Initial implementation 2025-06-17 20:43:58 +08:00
system include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
taskset apps/system: replace CONFIG_NSH_LINELEN to LINE_MAX 2025-01-14 19:31:54 +08:00
tcpdump pkt: Set sll_protocol for raw socket to ETH_P_ALL 2026-01-04 21:41:21 +08:00
tee include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
telnet apps: Fix unchecked strdup()/asprintf() as requested in #1727 2026-05-23 16:30:52 -04:00
telnetd system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
termcurses include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
trace apps/system/trace: support binary dump of noteram 2026-01-26 19:32:42 +08:00
ubloxmodem include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
uniqueid system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
uorb system/uorb: introduce CONFIG_UORB_FORMAT for format string control 2026-06-09 17:02:03 +08:00
usbmsc apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
vi include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
vncviewer system/vncviewer: Drain truncated desktop names 2026-07-09 09:28:13 +08:00
xipfs system/xipfs: Add a command to compact a xipfs volume and report it. 2026-07-28 16:47:49 +08:00
ymodem apps/system/ymodem: Optimized ymodem for burn during bootloader 2026-02-02 11:00:19 +08:00
zlib apps: Fix minor issues for latest toolchains 2026-01-23 10:00:52 +08:00
zmodem !apps: replace sclock_t with clock_t and drop redundant time_t/off_t casts 2026-05-11 17:38:32 +08:00
.gitignore Remove extra whitespace from files (#43) 2020-01-31 08:29:24 -06:00
CMakeLists.txt system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
Make.defs system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
Makefile system: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00