On Thu, Nov 9, 2023 at 12:56 PM Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> wrote: > > Hi David, > > On Thu, Nov 9, 2023 at 1:32 AM David Revoy <davidrevoy@xxxxxxxxxxxxxx> wrote: > > > > Hi Benjamin, > > > > > Alright, I made quite some progress so far: > > > - regressions tests have been written (branch wip/xp-pen of my fork on > > > freedesktop[0]) > > > that branch can not go in directly as it just adds the tests, and > > > thus is failing > > > - I made the fixes through HID-BPF[1] > > > > > > Anyone using those 2 tablets and using Fedora should be able to just > > > grab the artifact at [2], uncompress it and run `sudo ./install.sh --verbose`. > > > This will install the bpf programs in /lib/firmware/hid/bpf/ and will > > > automatically load them when the device is connected. > > > > > > For those not using Fedora, the binary might work (or not, not sure), > > > but you can always decompress it, and check if running > > > `udev-hid-bpf_0.1.0/bin/udev-hid-bpf --version` returns the correct > > > version or just fails. If you get "udev-hid-bpf 0.1.0", then running > > > `sudo ./install.sh --verbose` should work, as long as the kernel has > > > CONFIG_HID_BPF set to 'Y'. > > > [...] > > > [0] https://gitlab.freedesktop.org/bentiss/hid/-/tree/wip/xp-pen?ref_type=heads > > > [1] https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/27 > > > [2] https://gitlab.freedesktop.org/bentiss/udev-hid-bpf/-/jobs/51350589/artifacts/raw/udev-hid-bpf_0.1.0.tar.xz > > > > Thank you for this package. > > > > I was able to test it even though the link in (2) at the bottom of your email returned a blank page. I was able to find my way after manually visiting gitlab.freedesktop.org [1] and then manually downloading the article from 51350589. I unzipped it and ran `sudo ./install.sh --verbose`. Everything looks like it was successful [2]. I then rebooted my Fedora 38 'Linux workstation 6.5.8-200.fc38.x86_64' kernel (the one I blamed in my post) and tested both tablets. > > Weird that you had to manually retrieve it. It works here, but maybe > because I am logged in on gitlab.fd.o. > > Also, just FYI, you shouldn't have to reboot. Just unplug/replug and > you are good. In the same way, if you uninstall the package, you can > just unplug/replug to not have the programs loaded. I've pushed an update of the file[0], turns out I made several mistakes. As a general rule of thumb, you can follow the MR I've opened at [1], click on the pipeline, open the last job ("make release"), then browse the artifacts and pull the file from there. > > > > > Here are my observation: > > > > XPPEN Artist Pro 24 > > =================== > > Nothing changed for this device (it's the one with two buttons and no 'eraser tip'). Nor my hwdb/udev rules or `xsetwacom set "UGTABLET 24 inch PenDisplay eraser" button 1 3` affects the upper button of the stylus: if I hold it hover the canvas, Krita switch the tool and cursor for an eraser. If I click on the canvas with the pen tip while holding the upper button pressed, I get the right-click Pop-up Palette (but not all the time, probably Krita has hard time to triage Eraser or Right-click). > > As I mentioned in another reply, the more I think of it, the more I > think I should get rid of the "eraser mode". In that Artist Pro 24 I > can detect it through the same mechanics as the HID_QUIRK_NOINVERT > from Illia's patch. But instead of trying to force the device into the > eraser mode, we should just say "this is actually BUTTON_STYLUS_2". > > So I'm going to amend the bpf program to do this and hopefully you > won't need the hwdb/udev rule at all. I've fixed that one normally. There were a couple of issues: - the PID in use was the one from the pro 16 gen2, which explained why no change was appearing - I've now decided to not export the second button as an eraser, as mentioned above. > > > > > XPPEN Artist Pro 16 (Gen2) > > ========================== > > Something changed. `xsetwacom set "UGTABLET Artist Pro 16 (Gen2) eraser" button 1 3` successfully affected the upper button of the stylus. Now if I click it while hovering the canvas, Krita shows the right click Pop-up Palette. > > I'm surprised you need to teach the wacom driver that BTN_STYLUS_2 is > the right click. > > > On the downside; the real eraser tip when I flip the stylus bugs. When I flip the stylus on eraser hovering the canvas, Krita shows the Eraser icon and switch tool. As soon as I draw with the eraser tip, Krita will also show a right-click color palette and with also not a 100% consistency, as if the event were mixed. > > I'll investigate. Maybe I messed up with my event flow patch. Definitely my mistake: both the bpf programs I wrote were attached to the same device. Thus, the 2 fixes were stacking on each other, leading to some interesting side effects. You can check that the bpf are properly loaded by having a look at the report descriptor when you replug the device: if you see "Secondary Barrel Switch" at offset 16 instead of "Eraser" on both of your tablets (with hid-recorder), you should have successfully patched your devices. Cheers, Benjamin > > But just to be sure, you don't have a custom configuration in place > for that tablet device? > [0] https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/jobs/51399392/artifacts/file/udev-hid-bpf_0.1.0.tar.xz [1] https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/27