An OpenTabletDriver plugin for macOS that turns a pen button into a hold-to-scroll modifier. While the modifier is active, pen movement is converted into high-resolution mouse wheel scrolling instead of normal cursor movement.
- Hold pen button → drag to scroll – natural, expressive scrolling
- Anchor cursor – optionally lock the cursor in place while scrolling (or let it move freely)
- Axis lock – snap to horizontal/vertical scrolling when movement is predominantly along one axis
- High-resolution scrolling – smooth per-pixel scroll events (macOS-native)
- Configurable sensitivity – vertical/horizontal units per pixel, invert, threshold
- Copy
PenDragScroll.dllandmetadata.jsoninto:~/Library/Application Support/OpenTabletDriver/Plugins/PenDragScroll/ - Restart OpenTabletDriver
- In ODT settings, add the Pen Drag Scroll filter and assign Pen Drag Scroll Toggle binding to a pen button
{
"Path": "PenDragScroll.Bindings.PenDragScrollToggleBinding",
"Settings": [],
"Enable": true
}| Property | Default | Description |
|---|---|---|
AnchorCursor |
true |
Lock cursor position while scrolling |
VerticalUnitsPerPixel |
30 |
Vertical scroll units per pixel of pen movement |
HorizontalUnitsPerPixel |
0 |
Horizontal scroll units per pixel (0 = disabled) |
InvertVertical |
false |
Invert vertical scroll direction |
InvertHorizontal |
false |
Invert horizontal scroll direction |
AxisLockEnabled |
true |
Snap to dominant axis |
AxisLockThreshold |
10 |
Pixels before axis lock engages |
AxisLockRatio |
2.0 |
Dominant axis must be this many times stronger |
dotnet build -c ReleaseRequires .NET 8 SDK and OpenTabletDriver installed.
Inspired by soestin/PenDragScrollPlugin — macOS port with native high-resolution scrolling via Core Graphics.