use xinput if available