maoschanz / maoschanz/drawing

Tilt for stylus

Open
#558 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
Python
Stars
869
Forks
106
PR merge metrics
No merged PRs in 30d

Description

## Requested feature

For several of the tip styles (as well as some potential new ones) it would be nice to have a tilt option for any stylus supporting this. I have a simple proof of concept for the calligraphy brush (where Gtk XTILT and YTILT fit nicely with the existing `feather_def` x and y values, although it could maybe use an offset/multiplier/min/max. Screenshot:

![Screenshot from 2022-10-19 18-30-12](https://user-images.githubusercontent.com/4408242/196750681-bf9fa4c8-2e51-4e33-b114-43318f6dd8c8.png)

I'll submit it as a pull request eventually, but I need to figure out the best way to implement this in the UI.

(There's also stylus "rotation", but mine doesn't support this channel.)

### Possible drawbacks

Additional data streams could create more latency or performance issues for all users (including those not using a stylus). (Haven't profiled this.) Weird stylus device drivers could create unexpected/undefined behavior. Extra settings could complicate the UI.

### Possible alternatives

N/A

## Use case

Tilt can be useful as a method of shading (by changing the dispersion pattern of airbrush or the shape of the pencil/brush strokes), slightly shifting the tip location for a more natural drawing feeling, or for more exact calligraphy. I believe this is already a feature of commercial Wacom-based drawing software.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test is named; begin by locating the existing stylus input handling and the calligraphy brush's feather_def values. Review how GTK XTILT and YTILT could be exposed in the UI, then define completion as usable tilt behavior for supported styluses without disrupting users or existing tip styles.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.