{
    "mode": "man",
    "parameter": "inputtestdrv",
    "section": "4",
    "url": "https://www.chedong.com/phpMan.php/man/inputtestdrv/4/json",
    "generated": "2026-06-16T22:13:50Z",
    "synopsis": "",
    "sections": {
        "NAME": {
            "content": "inputtest - An X.Org input driver for testing\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "",
            "subsections": [
                {
                    "name": "Section \"InputDevice\"",
                    "content": "Identifier \"devname\"\nDriver \"inputtest\"\nOption \"SocketPath\"   \"path\"\n..."
                },
                {
                    "name": "EndSection",
                    "content": ""
                }
            ]
        },
        "DESCRIPTION": {
            "content": "inputtest  is an Xorg input driver that passes events received over a socket on to the server\nas input events. It supports the full set of the xf86 driver APIs exposed by Xorg.  The  pri‐\nmary use cases of this input driver are various integration tests that need to interface with\nthe input subsystem.\n\n",
            "subsections": []
        },
        "CONFIGURATION DETAILS": {
            "content": "Please refer to xorg.conf(5) for general configuration details and for options  that  can  be\nused with all input drivers.  This section only covers configuration details specific to this\ndriver.\n\nExternal process can communicate with the input driver via a named socket that is created af‐\nter the driver is initialized. The paths to the socket is passed via input driver options.\n\nThe following driver Options are supported:\n\nOption \"SocketPath\" \"string\"\nSets  the  path where the driver will create a named socket. Any existing file at that\nlocation will be removed.\n\nOption \"DeviceType\" \"string\"\nSets the type of the device to be emulated.\n\nKeyboard Initializes a keyboard device.\n\nPointer Initializes a relative-mode pointer device. It will have four  valuators  -  a\n\"Rel X\" valuator at axis 0 and a \"Rel Y\" valuator at axis 1.  A horizontal scroll val‐\nuator will be set up at axis 2.  A vertical scroll valuator will be set up at axis 3.\n\nPointerAbsolute Initializes an absolute-mode pointer device. It will have four  valua‐\ntors  - an \"Abs X\" valuator at axis 0 and an \"Abs Y\" valuator at axis 1.  A horizontal\nscroll valuator will be set up at axis 2.  A vertical scroll valuator will be  set  up\nat axis 3.\n\nPointerAbsoluteProximity  Initializes  an  absolute-mode pointer device with proximity\nsupport.  The valuators are initialized in the same way as for PointerAbsolute type.\n\nTouch Initializes a touch device.  It will have 5 valuators: an \"Abs MT Position X\" at\naxis  0,  an  \"Abs  MT Position Y\" valuator at axis 1, a horizontal scroll valuator on\naxis 2, a vertical scroll valuator on axis 3 and an \"Abs MT Pressure\" valuator at axis\n4.\n\nOption \"TouchCount\" \"int\"\nSets the maximum number of simultaneous touches for touch devices.\n\nOption \"PointerButtonCount\" \"int\"\nSets the maximum number of buttons in pointer devices.\n\nOption \"PointerHasPressure\" \"bool\"\nSelects whether \"Abs Pressure\" is available at the axis 4 in pointer devices.\n\n",
            "subsections": []
        },
        "INTERFACE WITH THE DRIVER": {
            "content": "The  communication  with  the  driver  is a binary protocol defined in include/xf86-input-in‐\nputtest-protocol.h\n\nAt the beginning, the client process that communicates with the driver must  connect  to  the\nsocket  that  is created by the driver at SocketPath.  Once the connection is established, it\nmust write a xf86ITEventClientVersion event and read a  xf86ITResponseServerVersion  response\nwhere  the  driver  specifies  the protocol version supported by it. If this version is lower\nthan requested by the client, then the driver will disconnect.\n\nAfter receiving xf86ITResponseServerVersion message the client may send events to the driver.\nEach  event  is  an instance of one of the xf86ITEvent* structs. The length field defines the\nfull length of the struct in bytes and the event field defines the type of the struct.\n\nThe responses from the server follow the same structure. Each response is an instance of  one\nof  the  xf86ITResponse*  structs.  The length field defines the full length of the struct in\nbytes and the event field defines the type of the struct.\n\nThe synchronization with Xorg is performed via xf86ITEventWaitForSync  event.  After  sending\nsuch  event,  the  client must read of a xf86ITResponseSyncFinishedeventfromthesocketwithout‐\nsendingadditional events. The completion of the read operation indicates that Xorg has  fully\nprocessed all input events sent to it so far.\n\n",
            "subsections": []
        },
        "AUTHORS": {
            "content": "Povilas Kanapickas <povilas@radix.lt>\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "Xorg(1), xorg.conf(5), Xserver(1), X(7)\n\n\n\nX Version 11                             xorg-server 21.1.4                             INPUTTEST(4)",
            "subsections": []
        }
    },
    "summary": "inputtest - An X.Org input driver for testing",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "Xorg",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/Xorg/1/json"
        },
        {
            "name": "xorg.conf",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/xorg.conf/5/json"
        },
        {
            "name": "Xserver",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/Xserver/1/json"
        },
        {
            "name": "X",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/X/7/json"
        }
    ]
}