Closed matteodelabre closed 4 years ago
I'm a bit concerned that this will break OSX support.
@bordaigorl Do you think you could test this?
As for dropping --orientation
, --monitor
and --threshold
, perhaps these xinput command could be subprocessed?
Well, unfortunately libevdev
is not compatible with MacOs since it wraps linux kernel functionality.
It would be really cool if there was something similar for OSX
I have added an --evdev
flag to enable the virtual device and still maintain OSX support on the combined
branch. Let me know what you think.
This looks good to me. I’ve left some comments on the branch. Here’s a short comparison of the two modes:
Thank you for your work on this!
I'd like to use this GIF on the README if that's OK.
Of course, no problem!
Instead of sending mouse move and click events to the system’s main device, create a separate virtual input device that registers itself as a Wacom tablet. Most importantly, this enables pressure and tilt sensitivity which is picked up by programs such as GIMP or Krita.
Proper system support requires the
xf86-input-wacom
driver to be installed. It is available on Ubuntu and Debian inside thexserver-xorg-input-wacom
package and on Arch Linux inside thexf86-input-wacom
package. Following installation of that driver, the X server needs to be restarted.Because this uses the
libevdev
library that is only supported on Linux, this commit breaks compatibility with Windows and (probably) macOS. Furthermore, because creating virtual input devices is restricted to root, the script must now be run withsudo
. Failing to do so will most likely trigger a permission error.CLI changes
--orientation
flag. Orientation of the device can now be configured just like any other Wacom device usingxinput
:where
<orientation>
is one of 0 (for “right” orientation), 1 (for “portrait” orientation), 2 (for “left” orientation) or 3 (for “reversed portrait” orientation).--monitor
flag. This can also be configured usingxinput
instead:where
<output>
is the name of an output currently connected to the device, as listed byxrandr
(e.g. LVDS1).Drop the
--offset
flag. This didn’t seem to be used anywhere in the code.Drop the
--threshold
flag. The pressure threshold required to trigger a click event can be configured usingxinput
:where
1000
can be replaced by an arbitrary pressure threshold. On my machine, the default seems to be 26. The pressure profile (mapping the actual pressure put on the stylus to the pressure actually received by the drawing programs) can also be adjusted using the following prop:Dependencies changes
Replaced dependency
pynput
withlibevdev
(which requires thatlibevdev
is present on the system). Dropped dependencyscreeninfo
because assigning the input to a monitor is no longer done through this program.