OpenTabletDriver English | 한국어 | Español | Русский | 简体中文 | Français | Deutsch OpenTabletDriver is an open source, cross platform, user mode tablet driver. The goal of OpenTabletDriver is…
 
OpenTabletDriver
English | [한국어](docs/README_KO.md) | [Español](docs/README_ES.md) | [Русский](docs/README_RU.md) | [简体中文](docs/README_CN.md) | [Français](docs/README_FR.md) | [Deutsch](docs/README_DE.md)
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.
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 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 10 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
./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](./eng/bash/Simple/README-SimplePackage.md) (.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 x64 Package | ./eng/bash/package.sh --runtime osx-x64 --package macos |
| Signed x64 Package | ./eng/bash/package.sh --signed true --runtime osx-x64 --package macos |
| Signed arm64 Package | ./eng/bash/package.sh --signed true --runtime osx-arm64 --package macos |
Packaging signed MacOS builds on Linux or Windows requires rcodesign.
As of MacOS 11, you must sign arm64 packages.
Features
- Fully platform-native GUI
Windows Presentation Foundation
- Linux: GTK+3
- MacOS: MonoMac
- Multi-tablet support
- Validated tablet specifications, ensuring the smoothest transition if
- Fully fledged console tool
- Absolute cursor positioning
- Relative cursor positioning
- Advanced tablet feature compatibility
- Pen bindings
- Saving and loading settings
- Plugins
- Device debugging tools
- Automatic version update notification
--skipupdate command line flag
- Vendor driver area conversions
- 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](CONTRIBUTING.md).
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.
Members
-
OpenTabletDriver
Open source, cross-platform, user-mode tablet driver
C# ★ 4.0k 16h agoExplain → -
opentabletdriver.github.io
The next version of OpenTabletDriver.Web
HTML ★ 34 5d agoExplain → -
OpenTabletDriver.Installer ▣
Installer for OpenTabletDriver
C# ★ 19 5y agoExplain → -
HIDSharpCore
.NET Core fork of Zer7's HIDSharp
C# ★ 13 19d agoExplain → -
TabletDriverFilters
TabletDriver Filters ported to OpenTabletDriver
C# ★ 12 3y agoExplain → -
Plugin-Repository
Plugin repository source for OpenTabletDriver plugins
Shell ★ 7 1mo agoExplain → -
OpenTabletDriver.Web ▣
ASP.NET Core site for OpenTabletDriver
HTML ★ 5 2y agoExplain → -
TabletDriverCleanup ⑂
A CLI program that cleanly uninstalls tablet drivers
Rust ★ 2 2mo agoExplain → -
TabletBot
OpenTabletDriver's Discord bot
Rust ★ 1 3mo agoExplain → -
OpenTabletDriver-udev ▣
Tool to create udev rules used in OpenTabletDriver
C# ★ 1 5y agoExplain → -
OpenTabletDriver.Packaging ▣
OpenTabletDriver packaging scripts
Shell ★ 1 3y agoExplain → -
OpenTabletDriver.Workarounds
No description.
C# ★ 1 2y agoExplain → -
Eto ⑂
Cross platform GUI framework for desktop and mobile applications in .NET
C# ★ 0 4y agoExplain →
No repos match these filters.