libinput-debug-events(1)
โจ NAME โจ
okay so bestie, welcome to libinput-debug-events(1) โ the debug helper for libinput, brought to you by the libinput Manual ๐ซถ
๐ฆ SYNOPSIS ๐ฆ
libinput debug-events [options]
libinput debug-events [options] --udev <seat>
libinput debug-events [options] [--device] /dev/input/event0
[/dev/input/event1...]
๐ DESCRIPTION ๐
So what does this actually do? libinput debug-events spins up a libinput context and prints all the events coming from your devices. literally all of them. it's giving main character energy for your input devices โจ
real talk though: this is a debugging tool only, and its output may change at any time. Do not rely on the output. it's not a stable API, it's a vibe check on your hardware ๐ญ
also, heads up: this tool usually needs to be run as root so it can actually get access to the /dev/input/eventX nodes. no root, no peek at the nodes, sorry bestie ๐
๐ฅ OPTIONS ๐ฅ
--compress-motion-eventsโ squishes those repeated motion, axis, scroll, and gesture update events down into a single line. iconic for readability, but heads up: this only kicks in if stdout is a TTY.--device /dev/input/event0โ use the given device(s) with the path backend. and yes, the--deviceargument may be omitted (slay, flexible).--grabโ exclusively grabs every opened device. this one's serious: it will prevent events from being delivered to the host system. like, the host just doesn't get them anymore. ๐ซฃ--helpโ prints help. that's it, that's the whole vibe ๐--quietโ only print libinput messages, don't print anything from this tool. super useful in combination with--verbosefor internal state debugging. iykyk ๐--show-keycodesโ okay so key events shown by this tool are partially obfuscated to keep passwords and other sensitive info from showing up in the output. use--show-keycodesto make all the keycodes visible. only do this if you're okay with what's getting printed, mwah ๐--udev <seat>โ use the udev backend to listen for device notifications on the given seat. the default behavior is equivalent to--udev "seat0". default seat, no notes ๐--verboseโ use verbose output. more words, more details, more everything โจ
๐ธ libinput configuration options ๐ธ
--apply-to="pattern"โ configuration options are only applied where the device name matches the pattern. important li'l caveat: this pattern has no effect on the--disable-sendeventsoption. none. zero. ๐ซ--disable-sendevents="pattern"โ set the send-events option to disabled for the devices matching patterns. and btw, this option is not affected by the--apply-to="pattern"option. they're doing their own thing ๐--enable-drag|--disable-dragโ enable or disable tap-and-drag.--enable-drag-lock|--disable-drag-lockโ enable (in timeout mode) or disable drag-lock.--enable-drag-lock=[sticky|timeout]โ enable drag-lock in sticky or timeout mode. pick your flavor ๐--enable-dwt|--disable-dwtโ enable or disable disable-while-typing.--enable-dwtp|--disable-dwtpโ enable or disable disable-while-trackpointing.--enable-left-handed|--disable-left-handedโ enable or disable left handed button configuration.--enable-middlebutton|--disable-middlebuttonโ enable or disable middle button emulation.--enable-natural-scrolling|--disable-natural-scrollingโ enable or disable natural scrolling.--enable-scroll-button-lock|--disable-scroll-button-lockโ enable or disable the scroll button lock.--enable-tap|--disable-tapโ enable or disable tap-to-click.--set-area="x1/y1 x2/y2"โ set the tablet area to the rectangle described by the two points x1/y1 and x2/y2. all coordinates must be in the range[0.0, 1.0]. keep it in bounds bestie ๐--set-calibration="1.0 0.0 0.0 0.0 1.0 0.0"โ set the first 6 elements of a 3x3 matrix to use for calibration. the third row of the matrix is always"0.0 0.0 0.1". always. no cap. ๐งฎ--set-click-method=[none|clickfinger|buttonareas]โ set the desired click method.--set-clickfinger-map=[lrm|lmr]โ set button mapping for clickfinger.--set-custom-points="<value>;...;<value>"โ sets the n points defining a custom acceleration function. the points are defined in a semicolon-separated list of floating point non-negative numbers. defaults to"0.0;1.0". this only applies to the custom profile ๐ง--set-custom-step=<value>โ sets the distance along the x-axis between each point, starting from 0. defaults to1.0. this only applies to the custom profile.--set-custom-type=[fallback|motion|scroll]โ sets the type of the custom acceleration function. defaults tofallback. this only applies to the custom profile.--set-eraser-button-button=[BTN_STYLUS|BTN_STYLUS2|BTN_STYLUS3]โ sets the eraser button button to the given tablet tool button. only takes effect if combined with--set-eraser-button-mode=on-button-down. combo move, periodt ๐--set-eraser-button-mode=[default|on-button-down]โ sets the eraser button mode to the given mode.--set-pressure-range=<min>:<max>โ set the tablet tool pressure range to min:max. min and max must be in range[0.0, 1.0]. ๐--set-profile=[adaptive|flat|custom]โ set pointer acceleration profile.--set-rotation-angle=<degrees>โ set the rotation angle in degrees (0 to 360). spin it, king ๐ช๏ธ--set-scroll-button=BTN_MIDDLEโ set the button to the given button code.--set-scroll-method=[none|twofinger|edge|button|circular]โ set the desired scroll method.--set-sendevents=[disabled|enabled|disabled-on-external-mouse]โ set the given sendevents mode. btw this option overrides--disable-sendevents="pattern"for any devices it matches via the--apply-to="pattern"option. precedence, bestie ๐--set-speed=<value>โ set pointer acceleration speed. the allowed range is[-1, 1]. this only applies to the flat or adaptive profile. ๐๏ธ--set-tap-map=[lrm|lmr]โ set button mapping for tapping.
โญ NOTES โญ
ngl, this one's important: events shown by this tool may not correspond to the events seen by a different user of libinput. why? because this tool initializes a separate context. so don't go comparing its output to someone else's and thinking something's broken ๐
๐ง LIBINPUT ๐ง
part of the libinput(1) suite ๐
and that's the whole page bestie!! ๐ this was libinput 1.32.0's libinput-debug-events(1) from the libinput Manual โ go debug those events, you absolute icon ๐
โจ๐ฆ๐ธ
๐ฆ where this page comes from
- arch rolling: libinput-tools 1.32.0-1 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms