xinput(1)
๐ NAME ๐
xinput โ the utility that configures and tests X input devices ๐
(it's xinput(1), straight outta the General Commands Manual, and honestly it's a whole icon)
โจ SYNOPSIS โจ
xinput [COMMAND] [OPTIONS] [DEVICE]
๐ DESCRIPTION ๐
xinput is a utility to list available input devices, query information about a device and change input device settings.
that's the entire job description bestie โ list, look, tweak ๐ซถ
๐ธ COMMANDS ๐ธ
--versionโ tests whether the X Input extension is even available, and returns the version number of the program and the version supported by the server. no device name needed for this one, she's independent ๐โโ๏ธlist [--short || --long || --name-only || --id-only] [device]โ give it no argument and it lists all the input devices. give it an argument and it shows you all the features of that device. if--longis provided, the output includes detailed information about the capabilities of each device; otherwise, or if--shortis provided, only device names and some minimal information get listed. if--name-onlyis provided, the output is limited to the device names, one device name per line. if--id-onlyis provided, the output is limited to the device IDs, one device ID per line. and heads up, for both of those: the order the devices are listed in is undefined. don't you dare hardcode it ๐ญget-feedbacks deviceโ displays the feedbacks of device.set-pointer deviceโ switches device into the core pointer. lowkey does nothing on X servers 1.5 and later, so on anything modern it's giving vintage ๐set-mode device ABSOLUTE|RELATIVEโ changes the mode of device.set-ptr-feedback device threshold num denomโ changes the pointer acceleration (or feedback) parameters of device. thexset(1)man page has more details on this. for X.Org Server 1.7 and above there are additional device properties pertaining to pointer acceleration โ these do not replace, but complement the pointer feedback setting. both. not either. โจset-integer-feedback device index valueโ changes the value of an integer feedback of device.set-button-map device map_button_1 [map_button_2 [...]]โ changes the button mapping of device. the buttons are specified in physical order (starting with button1) and are mapped to the logical button you provide.0disables a button. the default button mapping for a device is1 2 3 4 5 6etc. ๐query-state deviceโ queries the device state. short, sweet, to the point, she ate.list-props device [device [...]]โ lists the properties that can be set for the given device(s). yes, plural devices. plural slay. ๐set-int-prop device property format valueโ sets an integer property for the device. appropriate values for format are8,16, or32, depending on the property. Deprecated โ useset-propinstead ๐set-float-prop device property valueโ sets a float property for the device. Deprecated โ useset-propinstead ๐set-prop [--type=atom|float|int] [--format=8|16|32] device property value [...]โ sets the property to the given value(s). if not specified, the format and type of the property are left as-is. the arguments are interpreted according to the property type. go read the CHANGING PROPERTIES section for the deets ๐งwatch-props deviceโ prints to standard out when property changes occur. it just. watches. ๐delete-prop device propertyโ deletes the property from the device. bye bestie ๐test [-proximity] deviceโ registers all extended events from device and enters an endless loop displaying the events received. if-proximityis given,ProximityInandProximityOutare registered. endless loop fr fr โ ctrl-c is your ride or die here.test-xi2 [--root] [device]โ registers for a number of XI2 events and displays them. if a device is given, only events on this device are displayed. if--rootis given, events are selected on the root window only. otherwise, a new client window is created (similar toxev).create-master prefix [sendCore] [enable]โ creates a new pair of master devices on an XI2-enabled server with the given prefix. the server will create one master pointer named"prefix pointer"and one master keyboard named"prefix keyboard". if sendCore is1, this pair of master devices is set to send core events (default). if enable is1, this master device pair will be enabled immediately (default). defaults stacked on defaults, we love to see it ๐remove-master master [Floating|AttachToMaster] [returnPointer] [returnKeyboard]โ removes master and its paired master device. attached slave devices are set floating ifFloatingis specified or if the argument is omitted. if the second argument isAttachToMaster, returnPointer specifies the master pointer to attach all slave pointers to, and returnKeyboard specifies the master keyboard to attach all slave keyboards to.reattach slave masterโ reattaches slave to master.float slaveโ removes slave from its current master device.set-cp window masterโ sets the ClientPointer for the client owning window to master. master must specify a master pointer. no substitutions allowed bestie.map-to-output device crtcโ restricts the movements of the absolute device to the RandR crtc. the output name must match a currently connected output (seexrandr(1)). if the NVIDIA binary driver is detected, or RandR 1.2 or later is not available, a Xinerama output may be specified as"HEAD-N", with N being the Xinerama screen number. this option has no effect on relative devices. if crtc is set to"all", the default behavior is applied.enable deviceโ enables the device. this call is equivalent toxinput --set-prop device "Device Enabled" 1disable deviceโ disables the device. this call is equivalent toxinput --set-prop device "Device Enabled" 0- device can be the device name as a string, or the XID of the device.
- slave can be the device name as a string, or the XID of a slave device.
- master can be the device name as a string, or the XID of a master device.
- property can be the property as a string, or the Atom value.
๐ CHANGING PROPERTIES ๐
when xinput should modify an existing driver property value, it is sufficient to provide the device name and property name as string, followed by the new value(s) of the property. for example:
xinput set-prop "my device" "my prop" 1 2 3
see? easy. no drama, no ceremony, just vibes โจ
๐ XWAYLAND ๐
Xwayland is an X server that uses a Wayland Compositor as backend. Xwayland acts as a translation layer between the X protocol and the Wayland protocol but does not have direct access to the hardware. the X Input Extension devices created by Xwayland ("xwayland-pointer", "xwayland-keyboard", etc.) map to the Wayland protocol devices, not to physical devices.
these X Input Extension devices are only visible to other X clients connected to the same Xwayland process. changing properties on Xwayland devices only affects the behavior of those clients. for example, disabling an Xwayland device with xinput does not disable the device in Wayland-native applications. other changes may not have any effect at all. ๐ญ
in most instances, usingxinputwith an Xwayland device is indicative of a bug in a shell script, andxinputwill print a warning. use the Wayland Compositor's native device configuration methods instead. bestie, this is not the move. ๐
โญ SEE ALSO โญ
๐ COPYRIGHT ๐
Copyright 1996,1997, Frederic Lepied.
Copyright 2007, Peter Hutterer.
Copyright 2008, Philip Langdale.
Copyright 2009-2011, Red Hat, Inc.
๐ AUTHORS ๐
- Peter Hutterer <peter.hutterer@who-t.net>
- Philip Langdale, <philipl@alumni.utexas.net>
- Frederic Lepied, France <Frederic.Lepied@sugix.frmug.org>
- Julien Cristau <jcristau@debian.org>
- Thomas Jaeger <ThJaeger@gmail.com>
- and more.
okay that's the whole page bestie ๐ this is X Version 11, xinput 1.6.4 โ go forth and configure your devices, you absolute legend ๐ฆโจ
๐ฆ where this page comes from
- alpine 3.24: xinput-doc 1.6.4-r2 ยท MIT
- arch rolling: xorg-xinput 1.6.4-2 ยท custom
- debian trixie: xinput 1.6.4-1
- fedora 43: xinput 1.6.4-5.fc43 ยท MIT AND HPND-sell-variant
- fedora 44: xinput 1.6.4-6.fc44 ยท MIT AND HPND-sell-variant
- nixos 26.05: xinput 1.6.4
- nixpkgs unstable: xinput 1.6.4
- opensuse-leap 16.0: xinput 1.6.4-bp160.1.1 ยท HPND AND MIT
- opensuse-leap 16.0: xinput 1.6.4-bp160.1.1 ยท HPND AND MIT
- opensuse-leap 16.0: xinput 1.6.4-bp160.1.1 ยท HPND AND MIT
- opensuse-leap 16.0: xinput 1.6.4-bp160.1.1 ยท HPND AND MIT
- ubuntu noble: xinput 1.6.4-1build1
- ubuntu questing: xinput 1.6.4-1build1
- ubuntu resolute: xinput 1.6.4-1build2
- ubuntu stonking: xinput 1.6.4-1build2
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms