Thanks for your detailed explanations. I ran those commands and could confirm that the codes are as you explained.
I was hoping the problems could arise from wrong configuration files and not from GNOME control panel instead. I was not expecting so many low level differences between Wacom models either. Regards, Alicia. On 01/03/2018 12:21 AM, Jason Gerecke wrote: > Hi Alicia, > > I'll try to answer each question of yours in turn: > > On Wed, Dec 27, 2017 at 1:20 PM, Alicia Boya <ntr...@gmail.com> wrote: >> Hi. >> >> I'm a bit sad that my Wacom tablet (CTH-670) is so poorly supported in >> gnome. The Wacom control panel does not recognize the stylus ("No stylus >> found", even when holding it on top of the tablet), two out of four express >> keys are incorrectly mapped as each other in the GUI and one is not even >> detected there. >> >> I can get everything working using xsetwacom in the terminal though. Is >> there any way I can improve this? I looked at /usr/share/libwacom but there >> are many things that I don't understand: >> > The Wacom panel within the GNOME Control Center has a few known issues > with Bamboo/Intuos devices. Most of these issues stem from differences > in how those devices appear to the system, compared to their > higher-end Cintiq/Intuos Pro cousins. Since most issues are with the > control panel rather than the drivers, you'll probably want to check > out https://bugzilla.gnome.org/ > >> For instance, where do the hexadecimal codes for the styli come from? How do >> I get one for my stylus? Are they arbitrary and I can't choose whatever >> integer or do they need to match a code coming from the hardware? How would >> I retrieve that code for my stylus? >> > Those particular hex codes are transmitted by some styli to the tablet > so that drivers and software can differentiate different types of > pens. Most tablets that only support a single kind of stylus (like the > CTH-670) don't report a hex code. > > If a hex code is reported, the value for a particular type of pen can > be discovered either by examining the kernel event stream or the X11 > device properties: > > Kernel: > Run `sudo evemu-record | awk '/ABS_MISC/'` and select the pen device. > Bring the pen in and out of prox to see if any ABS_MISC events are > sent. The [decimal] number at the end of each line is this code. > > X11: > Bring the pen in and out of prox, and then run `xinput list-props <id> > | grep "Wacom Serial IDs"` for the pen device. The third list item is > a [decimal] number corresponding to the code. Very small values (15 or > less) are "fake" IDs that the X driver creates for devices which don't > actually report a value. The value "2" in particular is used to mean > an unknown generic pen. > >> Unlike some other .tablet files, bamboo-16fg-m-pt.tablet (the one for >> CTH-670) does not have a Styli property. May this be the cause the stylus is >> not recognized in gnome wacom settings? >> > The CTH-670 shouldn't report any stylus IDs (the "kernel" test above > shouldn't produce any output, and the "X11" test above should have "2" > for the third list item) so there shouldn't be a "Styli" line within > the tablet file. Its possible that the GNOME expects a styli line to > exist, but that would be a bug. Its also possible that some other bug > in GNOME is preventing the control panel from detecting the pen. > >> Also the express keys: what is the relation between the button letters used >> in the `.tablet` files (A, B, C, etc.) and the numeric button numbers used >> in xsetwacom? >> >> I have noticed that in the case of my tablet buttons don't use sequential >> codes: >> >> (extract from my set-up-wacom.sh script) >> # pad buttons from top to bottom, with the hardware button number they emit >> PAD_1=1 >> PAD_2=9 >> PAD_3=8 >> PAD_4=3 >> > This is kinda difficult to explain, but I'll do my best: > > libwacom uses letters (e.g. "A", "B", "C", "D", "E", etc.) to > represent physical buttons. A "layout" SVG defines where each of those > physical buttons exists on the tablet. > > When a particular button is pressed, the kernel can send either > semantic button events (BTN_LEFT, BTN_RIGHT, BTN_FORWARD, BTN_BACK) or > generic button events (BTN_0, BTN_1, BTN_2, BTN_3, BTN_4, etc.) > depending on the tablet. Generally speaking, consumer tablets like the > CTH-670 send semantic events, while professional tablets send generic > events. > > In response to a button event from the kernel, the X driver has to > translate it into a corresponding X button. X11 uses numbered button > events that have taken on semantic meaning over the years: 1 (left > click), 2 (middle click), 3 (right click), 4 (scroll up), 5 (scroll > down), 6 (scroll left), 7 (scroll right), 8 (navigate back), 9 > (navigate forward), 10 (undefined), 11 (undefined), etc. For historic > reasons, our driver does not translate any button to buttons 4-7. > > For your particular device, the libwacom layout file says that the > buttons A-D are arranged vertically from top to bottom. These buttons > send (BTN_LEFT, BTN_FORWARD, BTN_BACK, BTN_LEFT) from the kernel. The > X11 driver translates these to buttons 1, 9, 8, 3. > > The GNOME Control Center doesn't (yet) properly support devices which > use semantic events, however. It assumes that tablets always send > generic buttons. Since your tablet has four buttons, this means that > it expects our driver to send X11 buttons 1, 2, 3, and 8. This is the > reason that buttons seem to be in the wrong location and why one of > the buttons isn't recognized by the control panel at all. > > Press top button ("A") -> X11 button 1 sent -> GNOME thinks button "A" > Press next button ("B") -> X11 button 9 sent -> GNOME thinks no button > Press next button ("C") -> X11 button 8 sent -> GNOME thinks button "D" > Press bottom button ("D") -> X11 button 3 sent -> GNOME thinks button "C" > > The very latest release of libwacom added an "EvdevCodes" setting to > the tablet files which explicitly states what kernel event each button > letter will send. GNOME doesn't use this information yet, but it > *could* use it to determine exactly which X11 button event to expect. > Once GNOME starts using this information, it should result in the > control panel recognizing all of the buttons in the right place. > > BTW: I have a script at [1] which you can use to change the button > mappings of your tablet (either temporarily through xsetwacom, or > semi-permanently through xorg.conf.d) so that GNOME sees the buttons > it expects. Its helpful to work around this issue if you prefer to use > the GUI instead of xsetwacom all the time :) > > > [1]: https://gist.github.com/jigpu/fde784840ba5731726e7382952b0d5ed > > Jason > --- > Now instead of four in the eights place / > you’ve got three, ‘Cause you added one / > (That is to say, eight) to the two, / > But you can’t take seven from three, / > So you look at the sixty-fours.... > >> Regards. >> -- >> Alicia. >> ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel