OpenTabletDriver 0.6.7

dotnet add package OpenTabletDriver --version 0.6.7
                    
NuGet\Install-Package OpenTabletDriver -Version 0.6.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenTabletDriver" Version="0.6.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OpenTabletDriver" Version="0.6.7" />
                    
Directory.Packages.props
<PackageReference Include="OpenTabletDriver" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OpenTabletDriver --version 0.6.7
                    
#r "nuget: OpenTabletDriver, 0.6.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OpenTabletDriver@0.6.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OpenTabletDriver&version=0.6.7
                    
Install as a Cake Addin
#tool nuget:?package=OpenTabletDriver&version=0.6.7
                    
Install as a Cake Tool

GitHub Actions Status Total Download Count

OpenTabletDriver

English | 한국어 | Español | Русский | 简体中文 | Français | Deutsch

OpenTabletDriver is an open source, cross platform, user mode tablet driver. The goal of OpenTabletDriver is to be as cross platform as possible with the highest compatibility in an easily configurable graphical user interface.

<p align="middle"> <img src="https://i.imgur.com/XDYf62e.png" width="410" align="middle"/> <img src="https://i.imgur.com/jBW8NpU.png" width="410" align="middle"/> <img src="https://i.imgur.com/ZLCy6wz.png" width="410" align="middle"/> </p>

Supported Tablets

The status of all supported tablets can be seen here.

Installation

Troubleshooting

Please see our website wiki for common issues and other quirks.

Running OpenTabletDriver binaries

OpenTabletDriver functions as two separate processes that interact with each other seamlessly. The active program that does all of the tablet data handling is OpenTabletDriver.Daemon, while the GUI frontend is OpenTabletDriver.UX.*, where * depends on your platform<sup>1</sup>. The daemon must be started in order for anything to work, however the GUI is unnecessary. If you have existing settings, they should apply when the daemon starts.

<sup>1</sup>Windows uses Wpf, Linux uses Gtk, and MacOS uses MacOS respectively. This for the most part can be ignored if you don't build it from source as only the correct version will be provided.

Building OpenTabletDriver from source

The requirements to build OpenTabletDriver are consistent across all platforms. Running OpenTabletDriver on each platform requires different dependencies.

All platforms

  • .NET 8 SDK (can be obtained from here - You want the SDK for your platform, Linux users should install via package manager where possible)
Windows

Run build.sh windows to produce binary builds to 'bin' folder. These builds will run in portable mode by default.

If you don't have WSL or some other way to access BASH with a working dotnet install, the deprecated Windows build script still exists in build.ps1.

Linux

Required packages (some packages may be pre-installed for your distribution):

  • libx11
  • libxrandr
  • libevdev2
  • GTK+3

Run ./eng/bash/package.sh. If a "package" build is desired, there are official support for the following packaging formats:

Package Format Command
Generic binary tarball (.tar.gz) ./eng/bash/package.sh --package BinaryTarBall
Simple binary package (.tar.gz) ./eng/bash/package.sh --package Simple
Debian package (.deb) ./eng/bash/package.sh --package Debian
Red Hat package (.rpm) ./eng/bash/package.sh --package RedHat
Generic package (for package maintainers) ./eng/bash/package.sh --package Generic

The generic binary tarball is designed to be extracted from the root directory.

The simple package should only be used for testing new features on existing installs, as it does not install necessary system files.

You can also run ./build.sh linux to generate files into bin/, but this does not include system files.

MacOS

A newer version of Bash and Coreutils is required to build OpenTabletDriver. You can install them using Homebrew. Run PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH" $(brew --prefix)/bin/bash ./eng/bash/package.sh -r osx-x64.

Package Format Command
Unsigned Package ./eng/bash/package.sh --runtime osx-x64 --package macos
Signed Package ./eng/bash/package.sh --signed true --runtime osx-x64 --package macos

Packaging signed MacOS builds on Linux or Windows requires rcodesign.

Features

  • Fully platform-native GUI
    • Windows: Windows Presentation Foundation
    • Linux: GTK+3
    • MacOS: MonoMac
  • Multi-tablet support
    • Handles multiple tablets from a large selection of models and manufacturers, each with its own plugin pipeline and settings
  • Validated tablet specifications, ensuring the smoothest transition if switching tablets
  • Fully fledged console tool
    • Quickly acquire, change, load, or save settings
    • Scripting support (json output)
  • Absolute cursor positioning
    • Screen area and tablet area
    • Center-anchored offsets
    • Precise area rotation
  • Relative cursor positioning
    • px/mm horizontal and vertical sensitivity
  • Advanced tablet feature compatibility
    • Pressure output
      • Windows: Needs Windows Ink OpenTabletDriver plugin for Windows Ink output mode, and VMulti system driver
      • Linux: Natively supported with "Linux Artist Mode" output mode
      • MacOS: Natively supported in all output modes
    • Pen tilt
    • Tablet pad wheels/dials
    • Auxiliary/Express Keys
  • Pen bindings
    • Tip by pressure bindings
    • Express ("Aux") key bindings
    • Pen button bindings
    • Mouse button bindings
    • Wheel bindings
    • Keyboard bindings
    • Preset bindings
    • External plugin bindings
  • Saving and loading settings
    • Persistent settings
    • Presets for quick-access to prior saved settings
  • Plugins
    • Plugin Manager (via Plugin-Repository)
    • Filters, including asynchronous filters (interpolators)
    • Output modes
  • Device debugging tools
    • Tablet data analyzer ("Tablet Debugger")
    • USB Device String readings
  • Automatic version update notification
    • Can be disabled with --skipupdate command line flag
  • Vendor driver area conversions
    • Supports transforming your Wacom / XP-Pen / Huion / Gaomon / VEIKK area
  • Standalone daemon, for low-spec or headless systems.

Contributing to OpenTabletDriver

If you wish to contribute to OpenTabletDriver, check out the issue tracker. When creating pull requests, follow the guidelines outlined in our contribution guidelines.

If you have any issues or suggestions, open an issue ticket and fill out the template with relevant information. We welcome both bug reports, as well as new tablets to add support for. In many cases adding support for a new tablet is quite easy.

For issues and PRs related to OpenTabletDriver's web page, see the repository here.

Supporting a new tablet

If you'd like us to add support for a new tablet, open an issue or join our discord asking for support. We generally prefer that adding support for a tablet be done through discord, due to the back-and-forth involved.

We'll have you do a few things like making a recording of the data sent by your tablet using our built-in tablet debugging tool, testing features of the tablet (on-tablet buttons, pen buttons, pen pressure, etc) with different configs we'll send you to try.

You're also of course welcome to open a PR adding support for it yourself, if you have a good grasp on what's involved.

Generally this process is relatively easy, especially if it's for a tablet manufacturer we already have support for on other tablets.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on OpenTabletDriver:

Package Downloads
ppy.osu.Framework

A 2D application/game framework written with rhythm games in mind.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on OpenTabletDriver:

Repository Stars
ppy/osu-framework
A game framework written with osu! in mind.
Version Downloads Last Updated
0.6.7 11,682 4/26/2026
0.6.6.2 95,821 10/17/2025
0.6.6.1 135 10/11/2025
0.6.6 17,635 9/29/2025
0.6.5.1 117,967 2/2/2025
0.6.5 27,323 12/18/2024
0.6.4 184,147 12/23/2023
0.6.3 57,864 9/17/2023
0.6.1 47,467 6/21/2023
0.6.0.4 229,612 7/12/2022
0.6.0.2 163,184 1/17/2022
0.6.0 298 1/11/2022
0.5.3.1 414,297 4/13/2021
0.5.3 1,649 4/13/2021
0.5.2.3 16,450 3/17/2021
0.5.2.2 1,028 3/12/2021
0.5.2.1 6,284 3/10/2021
0.5.2 988 3/8/2021
0.5.1.2 961 2/19/2021
0.5.1.1 944 2/19/2021
Loading failed