Skip to content

Commit

Permalink
Updated README highlighting v2 release
Browse files Browse the repository at this point in the history
  • Loading branch information
jlam55555 committed Jan 17, 2020
1 parent 1283ffb commit 541e83a
Showing 1 changed file with 18 additions and 40 deletions.
58 changes: 18 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# VEIKK Linux Driver
A driver for [VEIKK][0]-brand digitizers/drawing tablets using the `usbhid` API.
Configuration options are exposed in sysfs. This draws heavily from the [Wacom
driver for Linux][1].
Configuration options are exposed in sysfs and configurable with an associated
[GUI][10]. Connects low-level hardware events to the input subsystem (e.g.,
libinput), with some processing/mapping logic in between. This draws heavily
from the [Wacom driver for Linux][1].

![image highlighting the v2 release][11]

---

### Features:
Currently, a small set of basic digitizer features are supported, such as:
Currently, a set of basic basic digitizer features are supported, such as:
- Full range and resolution for tablet pressure and spatial sensitivity
- Configurable screen mapping and orientation
- Configurable screen mapping, orientation, and (cubic) pressure mapping

More features are planned for the near future, such as:
- Button remapping
Expand Down Expand Up @@ -41,50 +45,23 @@ See [input-veikk-dkms<sup>AUR</sup>][8].
---

### Configuration
Currently, the configurable parameters are `screen_size`, `screen_map`, and
`orientation`, and are all available in sysfs under
Currently, the configurable parameters are `screen_size`, `screen_map`,
`orientation`, and `pressure_map`, and are all available in sysfs under
`/sys/module/veikk/parameters` with permissions `0644`. Documentation on the
parameters is available in [`veikk_modparms.c`][9]. You can update a parameter
by simply writing the new value to it as root.

##### Example
Assume that you have a dual-monitor setup, with two 1920x1080p monitors sitting
side-by-side, each in landscape format. Then the entire screen size is
3840x1080p, and thus `screen_size` should be set to:

screen_size=(3840<<16)|1080=251659320

Assume you wanted your tablet only to map to the right monitor, i.e., the
rectangle starting at (1920,0) with width 1920 and height 1080. Thus
`screen_map` should be set to:

screen_map=(1920<<48)|(0<<32)|(1920<<16)|1080=540431955410289720

Assume finally that you wish to use your tablet in an orientation rotated 90deg
CCW from the default orientation. Thus, `orientation` should be set to:

orientation=1

Altogether, the terminal commands to do this might look like:

cd /sys/module/veikk/parameters
su
echo 251659320 >screen_size
echo 540431955410289720 >screen_map
echo 1 >orientation

Note that due to the workings of the `struct input_dev` interface, only the
ratios between `screen_map` to `screen_size` matters. Thus, using
`screen_size=(2<<16)|1` and `screen_map=(1<<48)|(1<<16)|1` should produce the
same effect. This may be useful if you know the ratio of mapped screen area to
screen size is a clean fraction. Which method is used is up to the user's
discretion.
The **(new!)** visual configuration utility is available at
[@jlam55555/veikk-linux-driver-gui][10].

---

### Changelog:
- v2.0: Renamed from veikk-s640-driver, redesigned from the ground up to be more
extensible.
- v1.1: Basic command-line configuration utility is created! Includes ability to
change tablet orientation, mapping onto section of screen, and mapping raw
pressure input to pressure output.
- v1.0: Basic digitizer capabilities (e.g., pressure sensitivity) for S640 and
similar tablets.

Expand All @@ -101,7 +78,6 @@ at gmail dot com.
### Media
- [Original tweet][2]
- [Original blog post][3]
- (Future blog post with updates soon.)

[0]: https://www.veikk.com/
[1]: https://github.com/torvalds/linux/blob/master/drivers/hid/wacom_wac.c
Expand All @@ -112,4 +88,6 @@ at gmail dot com.
[6]: https://github.com/jlam55555/veikk-linux-driver/issues/3
[7]: https://github.com/artixnous
[8]: https://aur.archlinux.org/packages/input-veikk-dkms/
[9]: ./veikk_modparms.c
[9]: ./veikk_modparms.c
[10]: https://github.com/jlam55555/veikk-linux-driver-gui
[11]: https://i.imgur.com/Mug8gRn.jpg

0 comments on commit 541e83a

Please sign in to comment.