A modern, low-latency tablet driver for osu!, digital art, and everyday pen input. Built in Rust with a native egui interface, cross-platform device support, and precise mapping controls.
Attribution notice: The tablet configuration files under
tablets/OpenTabletDriverare a git submodule pinned to the OpenTabletDriver project, licensed under the GNU Lesser General Public License v3.0 (LGPLv3). This submodule keeps OpenTabletDriver's LGPLv3-licensed content separate from NextTabletDriver's own MIT license, it is not copied into the MIT-licensed source tree. See the License section for details.
NextTabletDriver gives players and artists a focused tablet driver with fast input handling, flexible active area mapping, and a clean desktop UI. It is designed to replace vendor-specific drivers when you need consistent behavior across devices and operating systems.
| Low latency | Optimized polling, high-priority input threads, and a compact Rust pipeline. |
| Precise mapping | Active area, target display area, rotation, aspect ratio locking, and display edge snapping. |
| Cross-platform | Windows support through native input APIs and Linux support through uinput. |
| Custom UI themes | JSON themes with colors, spacing, semantic colors, and osu! playfield opacity controls. |
| Developer SDK | Native .dll/.so for embedding the tablet engine directly in third-party apps, with C/C++ and C#/Unity bindings. See docs/SDK.md. |
| Telemetry and filters | Built-in console, performance panels, Devocub Antichatter, Kalman smoothing, and HandSpeed WebSocket output. |
The driver ships with community-maintained JSON configurations for many tablet families:
- Wacom, including Intuos, Bamboo, Cintiq, and One devices
- Huion and Kamvas devices
- XP-Pen and UGEE devices
- Gaomon, VEIKK, Artisul, Parblo, XenceLabs, UC-Logic, and more
Tablet definitions are sourced from the tablets/OpenTabletDriver submodule. To add support for a new device, contribute its configuration JSON to OpenTabletDriver upstream, it will be picked up here on the next submodule update. A parser implementation in this repository may still be needed for devices using a new report protocol.
- Download the latest Windows release from the releases page.
- Run the installer or extract the portable build.
- Launch
next_tablet_driver.exe.
An AUR package recipe is provided as nexttabletdriver-git.
git clone https://aur.archlinux.org/nexttabletdriver-git.git
cd nexttabletdriver-git
makepkg -siThe package installs the binary, desktop entry, icon, license, and udev rules.
NextTabletDriver requires access to HID tablet devices and /dev/uinput.
sudo cp scripts/99-nexttabletdriver.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm triggerThis grants access to the current desktop user instantly, no group membership or
logout required. If you run the driver from a headless/non-logind session, add
your user to the input group instead and log out and back in:
sudo usermod -aG input "$USER".
More details are available in scripts/README-linux.md.
- Rust 1.97.1 or newer
pkgconfhidapi- Linux only:
gtk3,libxkbcommon,libglvnd,wayland, anduinputsupport
cargo build --release --lockedThe release binary is created at:
target/release/next_tablet_driver
On Linux cross-compilation targets, the binary may be under a target-specific directory such as:
target/x86_64-unknown-linux-gnu/release/next_tablet_driver
src/
app/ Application lifecycle, layout, services, update flow
core/ Configuration models, math, geometry, transforms
drivers/ Tablet detection, parsers, and device configuration loading
engine/ Input polling, projection pipeline, OS injection
filters/ Optional processing filters and statistics output
settings/ Profile and theme persistence
ui/ egui panels, widgets, and theme helpers
tablets/ Device JSON definitions (OpenTabletDriver submodule)
scripts/ Linux udev helpers and packaging utilities
resources/ Icons and bundled fonts
sdk/ Native SDK (ntd_sdk.dll / libntd_sdk.so) for third-party integration
Settings are stored as JSON profiles. The UI supports importing and exporting profiles from the File menu.
Custom themes are documented in docs/THEMES.md. Themes can control the main palette, widget styling, spacing, semantic colors, and the opacity of the osu! playfield overlay.
Third-party applications (games, Blender/Unity plugins) can embed NextTabletDriver's engine directly, without requiring the desktop app to be installed or running. See docs/SDK.md for the C and C# APIs, build instructions, and the HID ownership arbitration mechanism.
Generate local Rust documentation with:
cargo doc --no-deps --openRun the main validation pass with:
cargo testFor packaging changes on Arch Linux, validate with:
cd packaging/linux
makepkg --printsrcinfo > .SRCINFO
makepkg -siContributions are welcome. Good first contributions include tablet configuration updates, parser fixes, Linux packaging improvements, theme examples, and UI polish.
When adding hardware support, include the device VID/PID, physical dimensions, report parser name, and any initialization reports required by the tablet.
NextTabletDriver is distributed under the MIT License. See LICENSE for details.
The tablet configuration files under tablets/OpenTabletDriver are a git submodule pinned to OpenTabletDriver, which is licensed under the GNU Lesser General Public License v3.0 (LGPLv3). This submodule is a separate, distinct component under the terms of the LGPLv3 and is not relicensed under NextTabletDriver's MIT license. The full text of the LGPLv3 can be found at gnu.org/licenses/lgpl-3.0.
Copyright © OpenTabletDriver contributors.