# \[ANN\] libinput - OCaml bindings for Linux input devices

**URL:** <https://discuss.ocaml.org/t/ann-libinput-ocaml-bindings-for-linux-input-devices/17933>\
**Category:** Community\
**Tags:** announce\
**Created:** [March 28, 2026, 10:27am UTC](https://discuss.ocaml.org/t/ann-libinput-ocaml-bindings-for-linux-input-devices/17933 "2026-03-28T10:27:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![talex5](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/talex5/32/353_2.png) [@talex5](https://discuss.ocaml.org/u/talex5)\
**Post date:** [March 28, 2026, 10:27am UTC](https://discuss.ocaml.org/t/ann-libinput-ocaml-bindings-for-linux-input-devices/17933/1 "2026-03-28T10:27:11Z")

</div>

I’m pleased to announce the first release of [libinput-ocaml](https://github.com/talex5/libinput-ocaml) (OCaml bindings for the libinput C library).

libinput is used by applications such as Wayland compositors to access mice, keyboards, touch pads, etc.

[Linux input devices (with libinput-ocaml)](https://roscidus.com/blog/blog/2026/03/28/input-devices/) explains how input devices work on Linux, and shows how to use the library to create a little game:

 ![volcano](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/8/87988f00d0f601de559c15f736118a8928c54664.png)

---

<div class="post-metadata">

**Author:** ![hummy123](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/hummy123/32/4558_2.png) [@hummy123](https://discuss.ocaml.org/u/hummy123)\
**Post date:** [March 28, 2026, 10:49am UTC](https://discuss.ocaml.org/t/ann-libinput-ocaml-bindings-for-linux-input-devices/17933/2 "2026-03-28T10:49:06Z")

</div>

This is cool! I was thinking, not long ago, that it was nice for Python users that they had bindings like this (and to `evdev`), but didn’t want to code a small input-handling utility in Python. Thanks or your work!
