OpenTabletDriver

OpenTabletDriver Developers · OpenTabletDriver.OpenTabletDriver

Open source, cross-platform, user-mode tablet driver

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.

winget install --id OpenTabletDriver.OpenTabletDriver --exact --source winget

Latest 0.6.7

Release Notes

OpenTabletDriver v0.6.7 releases after over a half of year of development! Over 300 issues and pull requests was targeted for this milestone, making it the biggest single milestone, surpassing even v0.6.0. While a lot of the changes for this version has been for code quality and maintainability, this version still contains some notable changes. We hope that you enjoy this feature release of OpenTabletDriver! Notable Features/Bugs Fixed Wheel Support (#3497) by @Mrcubix and @joha4270 (and multi-wheel support in #4483 by @gonX) You can now use the tablet pad wheel and roller for many tablets. Mrcubix backported and completed the effort by @joha4270 in #2669 to the 0.6.x branch Please see the TABLETS.md file for this release to determine if your tablet is fully supported yet. Mouse Scroll Bindings (#3840) by @Mrcubix Mouse-based output modes (ie. not Linux Artist Mode and not Windows Ink) can now use arbitrary bindings to scroll as if a scroll wheel was being scrolled. Reworked Tablet Debugger (#4434) by @gonX Note: The data recording feature has been moved away from the main window, into an option in the menu. New features:

  • Filtering by:
    • Tablet Model
    • Report Parser source type
  • Binary decoding option for raw data in addition to the existing hexadecimal decoding
  • All implemented report-related interfaces now add additional statistics
    • Full ranges for range-based values (position, pressure, tilt, etc)
    • Button state transition verification
  • Data recording now also annotates these additional statistics Tablet debugger recordings will likely be mandatory for future tablet configuration additions and changes to verify full feature compatibility. Silence update notifications (#4270) by @Kuuuube Simply add --skipupdate to the GUI's launch options to disable the updater. Meta Quest link conflict solved (#4476) by @fredemmott Implemented a workaround for a long-standing issue with newer Meta Quest firmware bugs that would cause the VR headset to not link properly as long as OpenTabletDriver was running. See issue #3696 for details. Better binding errors when bindings are unsupported (#4738) by @gonX The built-in bindings used to be able to be configured with any output mode and the user would not have a chance to know that their binding would not work (e.g. mouse scrolling on the output modes "Windows Ink" and "Linux Artist Mode") other than it just silently dropping its input. Now, the daemon will throw an error in the log if the binding is not able to be properly configured with the given output mode. Below remains the autogenerated release notes that have been annotated by @gonX and reviewed by @Kuuuube: What's Changed Regressions Fixed Most of these regression fixes only exist due to new changes in the codebase introduced after v0.6.6.2.
  • PluginSettingStoreCollection: Support null elements in SetExpectedCount by @gonX in #4466
    • This is the only regression that was actually introduced in v0.6.6.2.
    • Some daemon settings file could have been improperly configured via older OpenTabletDriver versions, and versions prior to v0.6.6.2 would happily accept these settings, but were then broken in v0.6.6.2. Now, this type of broken settings file should no longer cause the daemon to crash on startup.
  • Fix broken multiclient support by @gonX in #4420
    • Using CLI features was otherwise impossible while the GUI was running, or vice versa. This momentarily broke with #3992
  • Daemon: Set daemonRunning to false in catch block by @gonX in #4415
    • The daemon would otherwise not close properly when crashing - this was also introduced with #3992
  • Timers: Background timers to avoid blocking Daemon shutdown by @gonX in #4498
    • Again, introduced with #3992, but mostly wasn't a problem before because the daemon would forcefully get terminated when exited.
  • Switch to --no-self-contained over --self-contained false by @Kuuuube in #4623
    • Microsoft introduced a silent change in a minor version update to their SDK that changed the flags needed to specify non-self-contained builds. Until this was fixed, our builds were significantly inflated in size, though the change was caught before we did a release with this change.
  • Reintroduce IPointerProvider by @gonX in #4689
    • Removal of this interface in #4582 broke at least 1 plugin, and as such it was proactively reintroduced to avoid breaking other plugins. The interface still does nothing, but now it's marked as obsolete so that new plugins hopefully no longer include it.
  • UX: Bind "Lock To Usable Area" and offsets to forcefully recheck on every update by @gonX in #4755
    • This broke after #4435 was introduced, but should hopefully match GUI tablet/display area manipulation parity to v0.6.6.2. Major Features
  • Desktop/ViewModel: Don't raise unless value really changed by @gonX in #4435
    • This reduces the amount of callbacks happening in the GUI when viewmodel properties or fields aren't actually changing, which should greatly increase the performance in some scenarios.
  • Remove IPointerProvider by @gonX in #4582
    • This interface was added a long time ago and the changes surrounding it wasn't necessary. Plugin developers: While this interface was technically kept via #4689 for compatibility reasons, it does not do anything in the code and you should not inherit it.
  • IDriverDaemon: Add GetDiagnosticInfo() and implement in CLI/GUI by @gonX in #4527
    • This allows the diagnostics to better represent the state of the system as seen by the daemon. You can see in #4090 how the client application (GUI/CLI) was dictating diagnostics instead of the daemon. Tablet Configurations
  • Add Wheel Support by @Mrcubix in #3497
    • Also noted in "Notable Features" at the top of the release notes
  • Add support for Wacom Cintiq 21UX (DTZ-2100) by @Kuuuube in #4224
  • Add support for XP-Pen Artist Pro 22 (Gen2) by @Kuuuube in #4221
  • Add support for Genius G-Pen F509 by @Kuuuube in #4165
  • XP-Pen CT1060: Reduce identifier scope by @gonX in #4246
  • Add second variant of Parblo A610 Pro by @gonX in #4245
  • Add OutOfRangeReport for IntuosReportParser by @AkiSakurai in #4240
    • Tablets using this report parser (a lot of earlier Wacom CTE/CTH/CTL tablets) will now properly reset bindings and internal state when pen leaves the tablets active area.
  • Add wheel support to Wacom Intuos Pro 2025 (PTK-x70) by @Tom94 in #4278
  • Add support for XOPPOX D161 by @Kuuuube in #4271
  • Add new variant to Artisul M0610 Pro by @Kuuuube in #4284
  • Huion New 1060 Plus 2048: Fix invalid interface selection by @gonX in #4296
  • Add wheel support to PTH-x60 by @Kuuuube in #4275
  • Remove bad interface check from UC-Logic 1060N by @Kuuuube in #4251
  • Add support for Wacom Cintiq 18SX (PL-800) by @Kuuuube in #4253
  • Add support for XP-Pen Artist 22R Pro by @Kuuuube in #4252
  • Add support for new gaomon m10k variant by @Kuuuube in #4268
  • Add variant for huion h641p by @Kuuuube in #4299
  • PTH-x51: Add touch specifications by @gonX in #4324
    • This doesn't actually add touch output support, but should allow for plugins to use the touch data for something useful.
  • Add identifier to XP-Pen Deco 01 V2 and fix misdetect by @Kuuuube in #4293
  • Add support for huion note x10 by @Kuuuube in #4263
  • Add support for UGEE M708 V3 by @Kuuuube in #4266
  • Parblo Ninos N4: Remove OutputReportLength by @gonX in #4282
  • Remove OutputReportLength check and add interface for Parblo Ninos M by @Kuuuube in #4338
  • Add wheel support for Kamvas 13 3rd gen and Kamvas 16 3rd gen by @mrbass21 in #4310
  • Add new huion H951P variant by @Kuuuube in #4381
  • XP Pen Gen2 report Aux and Wheel support by @eaglesemanation in #4354
  • Huion Kamvas Pro 19: Add support for 3 pen buttons by @gonX in #4348
  • CTE-460: Use same parser as CTE-660 by @gonX in #4400
  • Add support for XP-Pen Deco LW by @leo-vaporwing in #4385
  • IntuosV1ToolReport: Fix incorrect shift in RawToolID by @gonX in #4396
    • Still not used for anything internally, but plugins may find a use for it.
  • UCLogicReportParser: Add Out of Range detection by @gonX in #4465
    • Tablets using this report parser will now properly reset bindings and internal state when pen leaves the tablets active area.
    • Affects 44 tablets: most older Huions, some Gaomons and some other brands using UC-Logic digitizers
  • Fix-Huion-H951P-Tilt-Y-axis-at-InspiroyReportParsers.cs by @Zoribelle in #4470
  • H1061P: Add variant HUION_T255_250521 by @gonX in #4472
  • Add support for Gaomon M7 by @cueavyqwp in #4370
  • Add support for VEIKK VK1200 by @Kuuuube in #4487
  • Add new version string to veikk vk430 v2 by @Kuuuube in #4497
  • Huion GT-191 V2: Add variant M18a by @gonX in #4522
  • Add support for Wacom DTC-121 by @Kuuuube in #4519
  • Add support for LetSketch WP9620C by @nahkd123 in #4550
  • Add support for Huion RDS-220 by @nahkd123 in #4551
  • Fix Huion Kamvas 24 incorrectly using winusb by @Kuuuube in #4559
  • Add support for Huion Kamvas Pro 16 V2 by @Kuuuube in #4589
  • Add support for UC-Logic TWMNA62 by @Kuuuube in #4547
  • Multi-wheel support by @gonX in #4483
  • Add support for xp pen star 03 v2 by @Kuuuube in #4538
  • Add support for Huion GT-220 V2 (2048) by @Kuuuube in #4542
  • Add support for veikk vk2200pro by @Kuuuube in #4539
  • Add support for Bosto BT-12HD by @Kuuuube in #4622
  • Simplify and fix XP-Pen Deco 01 V2 configs by @Kuuuube in #4544
  • Add support for deco pro mw variant by @Kuuuube in #4558
  • Add support for Huion Kamvas Pro 24 (Gen 3) by @Kuuuube in #4620
  • Add wheel support for the XP-Pen Artist 24 Pro by @Mervius in #4612
  • Add support for Parblo Intangbo SW by @nahkd123 in #4557
  • Add support for Artisul D22S by @Kuuuube in #4652
  • XP-Pen Artist 15.6 Pro V2: Add wheel support by @gonX in #4638
  • Wacom PTH-450: Was misconfigured as Intous4, is Intuos5 by @juan-martinez-pf in #4654
  • Default to 0 instead of throwing on unknown wheel byte in KamvasRelWheelReport by @Kuuuube in #4657
  • XP-Pen Artist 13.3 Pro: Add wheel support by @gonX in #4641

Installer type: zip

Architecture Scope Download SHA256
x64 Download 4EE9AE149404F0B39132624E488507639C8CE56D1EC77755C66EE7E58562110A

Details

Homepage
https://github.com/OpenTabletDriver/OpenTabletDriver
License
LGPL-3.0
Publisher
OpenTabletDriver Developers
Support
https://github.com/OpenTabletDriver/OpenTabletDriver/issues

Tags

cross-platformcsharpdotnet-coredriveruserspace-driver

Older versions (2)

0.6.6.2
Architecture Scope Download SHA256
x64 Download C21850EB1A2651B7DE49D5F73FC16DAF9D07B4DD72012951F0BEE98C20280FAE
0.6.5.1
Architecture Scope Download SHA256
x64 Download BC549E0CCFC6A7C12D131777F1592487FED9F6FC45C11AFA2763612D6DFC4316