You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.2 KiB

# Fynncomm - Wacom configuration for Fynn's tablet
This is a quick and dirty wacon configuration tool - basically a glorified
shellscript with a config in python.
Features:
* freely configure ALL the buttons
* quickly change between different button profiles
* change button mappings based on wheel led status
## Installation
```shell
# python3 based pip is required (check with pip --version)
$ pip install git+https://git.someserver.de/seba/fynncom/
```
## Configuration
An example configuration can be found in the git repository.
For Fynncom to find the correct device a name and a usb id has to be configured.
The name can be found in `xinput list` and is just the part of the device wihout
a Pen/Pad suffix, e.g. for `Wacom Intuos5 touch M Pen stylus` the name would be
`Wacom Intuos5 touch M`.
The usbid can be found with `lsusb | grep -i wacom` and looks something like
`056a:0027`.
Available buttons can be found with `xev`. In the mappings section of the config
multiple profiles can be defined. Inside a profile a device that matches any of
the existing wacom inputs has to be defined, e.g. `pen`, `pad` or `touch`. Inside
this "subinterface" a mapping from button codes to keycodes can be defined. Single
characters are automatically prefixed with "key".
To get the wheel to change functionality (effectively applying the wheel mappings
from the configuration file), button 1 should be mapped to a shortcut for your
windowmanager to launch `fynncom`.
## Autoconfig on login
The easiest way is to call `fynncom` from the commandline after the tablet has
been plugged in.
Another possibility would be to create a systemd oneshot service that is triggered
by a Udev rule.
Udev rule to trigger the service in `/etc/udev/rules.d/81-fynncom.rules`:
```
ACTION=="add", SUBSYSTEM=="hid", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0027", \
TAG+="systemd", ENV{SYSTEMD_WANTS}="fynncom.service"
```
Systemd service in `/etc/systemd/system/fynncom.service`:
```
[Service]
Type=oneshot
Environment="DISPLAY=:0"
ExecStartPre=/bin/sleep 2
User=YOUR_USER
Group=YOUR_USERS_GROUP
ExecStart=path/to/fynncom -c path/to/fynncomm/fynncom.yaml
```
Don't forget to reload systemd with `systemctl daemon-reload`.