[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#894325: xinput fails to set-button-map, no matter whether device id or device name is being used



Package: xinput
Version: 1.6.2-1+b1
Severity: important

Dear Maintainer,

   * What led up to the situation?
When migrating from FreeBSD to Debian, I noticed that my script to turn off the
mouse wheel does no longer work.

This is the script:

#!/usr/bin/env perl
use strict;

# mouse name:
# on FreeBSD the default mouse is 'sysmouse'
# on Linux you need to find the mouse name using 'xinput list' and paste
#    the string into the $sysmouse variable
#my $sysmouse = 'sysmouse';
my $sysmouse = 'MLK SPEEDLINK RF Snappy';
# get output of "xinput list"
my $xinp = `xinput list`;
# get the sysmouse id
(my $smid) = $xinp =~ /^.*$sysmouse\s+id=(\d)\s+.*$/gm;
# now get info for sysmouse device
print "System mouse ID is: $smid\n";
$xinp = `xinput list $smid`;
# get the information in the "Button labels" line
(my $bl) = $xinp =~ /^\s+Button labels:\s(.*)$/gm;
print "Button labels are: $bl\n";
# separate the button descriptions
my @btnt = split(/\"\s\"/, $bl);
# now get the button map
my @bmap = split(' ', `xinput get-button-map $smid`);
# build the command string to be executed
my $cmd = "xinput set-button-map $smid";
for (my $bid = 0; $bid < scalar @bmap; $bid++) {
  $cmd .= ' ' . ($btnt[$bid] =~ /.*Wheel.*/ ? '0' : $bmap[$bid]);
}
# finally turn off the wheels :)
print "Executed to turn wheel off: $cmd\n";
`$cmd`;


   * What exactly did you do (or not do) that was effective (or
     ineffective)?
I investigated the behavior of the 'xinput' program on Debian.

   * What was the outcome of this action?
I found that Debian 'xinput' does not work as described in the man page:
-It does not set the button map when using the device id (without giving any
message hinting to a problem)
-It aborted with an error message when using the device name instead.

   * What outcome did you expect instead?
I expected that xinput works as advertised.


Further notice:
When looking at the xinput bug reports, these indicate that there might be a
regression in the libinput library used in Debian.
Maybe a temporary fix could be to revert to an older, still working libinput
library?



-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.15.0-1-amd64 (SMP w/12 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xinput depends on:
ii  libc6         2.27-2
ii  libx11-6      2:1.6.5-1
ii  libxext6      2:1.3.3-1+b2
ii  libxi6        2:1.7.9-1
ii  libxinerama1  2:1.1.3-1+b3
ii  libxrandr2    2:1.5.1-1

xinput recommends no packages.

xinput suggests no packages.


Reply to: