Install runtime libraries, then run under a display (or Xvfb):
sudo apt-get install -y libx11-6 libxext6 libxfixes3 libxtst6 libcups2t64 xclip xvfb || \
sudo apt-get install -y libx11-6 libxext6 libxfixes3 libxtst6 libcups2 xclip xvfb
dotnet run --project examples/Event.Hook.ConsoleApp.Example -f net10.0
# or headless:
xvfb-run -a dotnet run --project examples/Event.Hook.ConsoleApp.Example -f net10.0
Requires DISPLAY. Keyboard and mouse use the XRecord extension (libxtst6); clipboard, windows, and hotkeys use X11 APIs.
No Win32 message pump and no HWND. EventHook runs its own XNextEvent thread for X11. Missing DISPLAY / WAYLAND_DISPLAY → DisplayUnavailable. Native Wayland-only sessions return NotSupportedOnPlatform for clipboard, windows, and hotkeys.
On Ubuntu 24.04 the CUPS library package is libcups2t64 (provides libcups.so.2). Older releases use libcups2.
/dev/input/event* (evdev). If open fails with permission denied:sudo usermod -aG input "$USER"
# then log out and back in
NotSupportedOnPlatform without X11 in EventHook v3.Uses CUPS (libcups). Missing library or scheduler → NativeFailure.