---
name: "DMXGetInputAttributes"
section: "3x"
platform: "linux"
package: "libdmx-dev"
version: "1:1.0.2-2"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/DMXGetInputAttributes/3x"
---

# DMXGetInputAttributes(3x)

determine input device attributes

## NAME

DMXGetInputAttributes - determine input device attributes

## SYNOPSIS

**#include \<X11/extensions/dmxext.h\>**

```
Bool DMXGetInputAttributes(Display *dpy,
                           int id,
                           DMXInputAttributes *attr);
```

## DESCRIPTION

**DMXGetInputAttributes()** returns information about the input device specified with *id*. This information cannot be obtained from the **XListInputDeivices**(3X) call. *id* is the same as that used by the **XListInputDevices**(3X) call, and must be in the range 0 to one less than the value returned by **DMXGetInputCount(3X)**, inclusive.

The **DMXInputAttributes** structure is:

```
typedef struct {
    DMXInputEnum inputType;
    int          physicalScreen;
    int          physicalId;
    Bool         isCore;
    Bool         sendsCore;
    const char   *name;
    Bool         detached;
} DMXInputAttributes;
```

The value of *inputType* will always be valid, and will have one of the following values, depending on the type of input: **DMXLocalInputType ,  DMXConsoleInputType , or DMXBackendInputType .**

For local devices, all other fields returned, except *isCore  and  sendsCore ,* are invalid.

For console devices,  *physicalScreen  and  physicalID* will be invalid, and *name* will return the name of the X server on which the console window is displayed.

For back-end devices, *physicalScreen* will identify the back-end display and can be used as an argument to **DMXGetScreenAttributes**(3X) to obtain more information; *physicalId* will be the XInput device id on the back-end X server; and *name* will be invalid (since it does not provide any additional information that cannot be obtained with **DMXGetScreenAttributes**(3X)).

If *isCore* is **True**, then this device is active as a true core input device and will send core events.  If **sendsCore** is True, then this device is an XInput extension device, but sends core events *instead* of extension events.  This behavior is different from that of XFree86 or Xorg, where XInput extension devices may send *both* extension events and core events.

If *detached* is True, then this device has been detached and is no longer producing input events.  The device may be reattached using **DMXAddInput**(3X).

## RETURN VALUE

**DMXGetInputAttributes()** returns **True** unless there is a protocol error.

**DMXGetInputAttributes()** can generate **BadValue** (if the value of *id* is out of range).

## SEE ALSO

**DMXGetInputCount**(3X),  **XListInputDevices**(3X),  **DMXGetScreenAttributes**(3X),  **DMXAddInput**(3X),  **DMX**(3X), [**Xdmx**(1)](/Xdmx/1.md)
