OpenTabletDriver OpenTabletDriver development organization
winget install --id=OpenTabletDriver.OpenTabletDriver -e
OpenTabletDriver is an open source, cross platform, user mode tablet driver. The goal of OpenTabletDriver is to be cross platform as possible with the highest compatibility in an easily configurable graphical user interface.
OpenTabletDriver is an open-source, cross-platform tablet driver designed to maximize compatibility across different operating systems while providing a user-friendly graphical interface for easy configuration. This software enables seamless interaction with various graphic tablets, ensuring artists and designers can work efficiently on their preferred platforms.
Key Features:
- Platform-Native GUI: Offers intuitive interfaces tailored to each OS—Windows (WPF), Linux (GTK+3), and MacOS (MonoMac).
- Console Tool: Facilitates quick adjustments of settings, ideal for advanced users seeking immediate changes.
- Scripting Support: Enables automation through JSON output, allowing scripts to interact with tablet configurations.
- Precision Control: Features absolute cursor positioning, screen area mapping, and precise rotation settings for optimal accuracy.
- Comprehensive Input Management: Supports pen bindings (including pressure sensitivity), express keys, mouse buttons, and keyboard shortcuts for versatile control options.
- Configurable Settings: Users can save and load configurations via JSON files in platform-specific directories, ensuring personalized setups are easily retrievable.
Audience & Benefits: Ideal for digital artists, designers, developers, and tech enthusiasts who utilize graphic tablets across Windows, Linux, or MacOS. OpenTabletDriver provides a seamless experience by integrating with existing workflows, offering precise control, extensive compatibility, and customizable settings through an accessible interface. Whether you're creating art, developing applications, or managing tablet configurations, this driver enhances productivity and creativity.
Available for installation via winget, OpenTabletDriver is a reliable tool for anyone looking to optimize their tablet experience across multiple platforms.
README
OpenTabletDriver
English | Español | Français | Deutsch | Português-BR | Nederlands | 한국어 | Русский | 简体中文 | 繁體中文 | Ελληνικά | Magyar
OpenTabletDriver is an open source, cross platform, user mode tablet driver. The goal of OpenTabletDriver is to be cross platform as possible with the highest compatibility in an easily configurable graphical user interface.
Supported Tablets
All statuses of tablets that are supported, untested, and planned to be supported can be found here. Common issue workarounds can be found in the wiki for your platform.
Installation
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 platform1. 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.
> 1Windows 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.ps1
to produce binary builds to 'bin' folder. These builds will run in portable mode by default.
Linux
Required packages (some packages may be pre-installed for your distribution):
- libx11
- libxrandr
- libevdev2
- GTK+3
Run ./eng/linux/package.sh
. If a "package" build is desired,
there is official support for the following packaging formats:
Package Format | Command |
---|---|
Generic binary tarball (.tar.gz ) | ./eng/linux/package.sh --package BinaryTarBall |
Debian package (.deb ) | ./eng/linux/package.sh --package Debian |
Red Hat package (.rpm ) | ./eng/linux/package.sh --package RedHat |
The generic binary tarball is designed to be extracted from the root directory.
MacOS [Experimental]
Run ./eng/macos/package.sh --package true
.
Features
- Fully platform-native GUI
- Windows:
Windows Presentation Foundation
- Linux:
GTK+3
- MacOS:
MonoMac
- Windows:
- 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
- Pen bindings
- Tip by pressure bindings
- Express key bindings
- Pen button bindings
- Mouse button bindings
- Keyboard bindings
- External plugin bindings
- Saving and loading settings
- Auto-loads user settings via
settings.json
in the active user%localappdata%
or.config
settings root directory.
- Auto-loads user settings via
- Plugins
- Filters
- Output modes
- Tools
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.