Browse Source
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. 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 with `sudo`. Failing to do so will most likely trigger a permission error. CLI changes ----------- * Drop the `--orientation` flag. Orientation of the device can now be configured just like any other Wacom device using `xinput`: ``` xinput --set-prop "reMarkable tablet stylus" "Wacom Rotation" <orientation> ``` where `<orientation>` is one of 0 (for “right” orientation), 1 (for “portrait” orientation), 2 (for “left” orientation) or 3 (for “reversed portrait” orientation). * Drop the `--monitor` flag. This can also be configured using `xinput` instead: ``` xinput --map-to-output "reMarkable tablet stylus" <output> ``` where `<output>` is the name of an output currently connected to the device, as listed by `xrandr` (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 using `xinput`: ``` xinput --set-prop "reMarkable tablet stylus" "Wacom Pressure Threshold" 1000 ``` 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: ``` xinput --set-prop "reMarkable tablet stylus" "Wacom Pressurecurve" 50 0 100 50 ``` Dependencies changes -------------------- Replaced dependency pynput with libevdev (which requires that libevdev is present on the system). Dropped dependency `screeninfo` because assigning the input to a monitor is no longer done through this program.master
Mattéo Delabre
5 years ago
2 changed files with 129 additions and 106 deletions
Loading…
Reference in new issue