NetBSD Problem Report #45594

From dholland@macaran.localdomain  Thu Nov 10 02:34:11 2011
Return-Path: <dholland@macaran.localdomain>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 8A2F163D461
	for <gnats-bugs@gnats.NetBSD.org>; Thu, 10 Nov 2011 02:34:11 +0000 (UTC)
Message-Id: <20111110023429.F0E616E1B0@macaran.localdomain>
Date: Wed,  9 Nov 2011 21:34:29 -0500 (EST)
From: dholland@eecs.harvard.edu
Reply-To: dholland@eecs.harvard.edu
To: gnats-bugs@gnats.NetBSD.org
Subject: xinput(1) is incomprehensible
X-Send-Pr-Version: 3.95

>Number:         45594
>Category:       xsrc
>Synopsis:       xinput(1) is incomprehensible
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    xsrc-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Nov 10 02:35:00 +0000 2011
>Last-Modified:  Sun Oct 27 07:10:00 +0000 2013
>Originator:     David A. Holland
>Release:        NetBSD 5.99.55 (20110806)
>Organization:
>Environment:
System: NetBSD valkyrie 5.99.55 NetBSD 5.99.55 (VALKYRIE) #3: Sat Oct 15 05:49:55 EDT 2011  dholland@valkyrie:/usr/src/sys/arch/amd64/compile/VALKYRIE amd64
Architecture: x86_64
Machine: amd64
>Description:

xinput(1) is incomprhensible, both the man page and the program itself.

The man page says

       xinput  is a utility to list available input devices, query information
       about a device and change input device settings.

and then proceeds to list a bunch of options for querying information
about devices, but says nothing at all about what (if anything) that
information means or how to do anything productive with it.

Experimenting with the program does not offer much enlightment. For
example:

	valkyrie% xinput --list
	"Virtual core pointer"  id=2    [XPointer]
	"Virtual core keyboard" id=3    [XKeyboard]
	"Virtual core XTEST pointer"    id=4    [XExtensionPointer]
	"Virtual core XTEST keyboard"   id=5    [XExtensionKeyboard]
	"<default pointer>"     id=6    [XExtensionPointer]
	"<default keyboard>"    id=7    [XExtensionKeyboard]
	valkyrie% xinput --list-props 6
	Device '<default pointer>':
		Device Enabled (128):   1
		Coordinate Transformation Matrix (130): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
		Device Accel Profile (238):     0
		Device Accel Constant Deceleration (239):       1.000000
		Device Accel Adaptive Deceleration (240):       1.000000
		Device Accel Velocity Scaling (241):    10.000000
	valkyrie% xinput --list-props 4
	Device 'Virtual core XTEST pointer':
		Device Enabled (128):   1
		Coordinate Transformation Matrix (130): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
		XTEST Device (237):     1
	valkyrie% xinput --list-props 2
	X Error of failed request:  XI_BadDevice (invalid Device parameter)
	  Major opcode of failed request:  141 (XInputExtension)
	  Minor opcode of failed request:  3 (X_OpenDevice)
	  Device id in failed request: 0x17
	  Serial number of failed request:  16
	  Current serial number in output stream:  16
	Exit 1
	valkyrie% 

...so there are three pointers and three keyboards (note: in hardware
I have exactly one of each) with slightly different available
"properties"... except that one of them doesn't really exist or
something.

And, while I can guess what "Coordinate Transformation Matrix" might
be for, and "Device Accel Adaptive Deceleration" obviously has
*something* to do with mouse speed (although I'm not sure I want to
know what "Accel Deceleration" is) and I can guess from the man page
how to set these things to different values... there's nothing to even
begin to indicate what will happen if I do. Or which of these "devices"
is the one to address.

Then, this is perhaps even better:

	valkyrie% xinput --query-state 6
	2 classes :
	ButtonClass
		button[1]=up
		button[2]=up
		button[3]=up
		button[4]=up
		button[5]=up
		button[6]=up
		button[7]=up
		button[8]=up
		button[9]=up
	ValuatorClass Mode=Relative Proximity=In
		valuator[0]=1344
		valuator[1]=639
	valkyrie% xinput --query-state 4
	2 classes :
	ButtonClass
		button[1]=up
		button[2]=up
		button[3]=up
		button[4]=up
		button[5]=up
		button[6]=up
		button[7]=up
		button[8]=up
		button[9]=up
		button[10]=up
	ValuatorClass Mode=Relative Proximity=In
		valuator[0]=960
		valuator[1]=600
	valkyrie% xinput --query-state 2
	unable to find device 2
	Exit 1
	valkyrie% 

Great. A "Valuator", whatever that is, and the two devices that work
are showing different values. Maybe it's the mouse pointer position.
(Judging from the buttons, it looks like device 6 might have some
correspondence to physical reality, and I guess device 4 is for event
injection with XTest? And who knows what device 2 is about...

There are other options to xinput(1) that retrieve other information,
or set other things, and little or none of it makes any more sense
than the above.

>How-To-Repeat:

Try to figure out how to adjust mouse speed.

>Fix:

I dunno. rm(1) is tempting.

>Audit-Trail:
From: Matthew Mondor <mm_lists@pulsar-zone.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: xsrc/45594: xinput(1) is incomprehensible
Date: Thu, 10 Nov 2011 07:12:22 -0500

 On Thu, 10 Nov 2011 02:35:00 +0000 (UTC)
 dholland@eecs.harvard.edu wrote:

 > xinput(1) is incomprhensible, both the man page and the program itself.

 > >How-To-Repeat:
 > 
 > Try to figure out how to adjust mouse speed.
 > 
 > >Fix:
 > 
 > I dunno. rm(1) is tempting.

 Can xset(1)'s mouse option meanwhile allow to tune the mouse
 acceleration?

 Perhaps that you only took this case as an exemple though; xset has
 limited controls...

 I have no opinion as to improve or remove it though; I personally never
 used xinput(1), I think.
 -- 
 Matt

From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: xsrc/45594: xinput(1) is incomprehensible
Date: Thu, 17 Nov 2011 01:59:12 +0000

 On Thu, Nov 10, 2011 at 12:15:04PM +0000, Matthew Mondor wrote:
  >  > Try to figure out how to adjust mouse speed.
  >  
  >  Can xset(1)'s mouse option meanwhile allow to tune the mouse
  >  acceleration?

 Probably. I was trying to figure out how to explain the vastly
 different mouse speeds on two machines I have, and why the speed
 changed when I switched from pkgsrc to native X. Everything seems to
 have the same xset mouse settings by default.

 -- 
 David A. Holland
 dholland@netbsd.org

From: "S.P.Zeidler" <spz@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: xsrc/45594: xinput(1) is incomprehensible
Date: Sun, 27 Oct 2013 07:05:49 +0000

 The purpose of xinput(1) is basically to change settings from xorg.conf
 regarding input devices in the running X server.

 Knowledge of the XInput API definitely helps to understand what it does.

 xinput is of lesser importance on NetBSD since we tend to use wsmouse
 and wskbd, which hide input device additions and removals etc from
 the X server.

 A few examples on how it does get used are at:
 https://wiki.ubuntu.com/X/Config/Input

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.