Releases: OpenTabletDriver/OpenTabletDriver
OpenTabletDriver v0.6.7
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
nullelements inSetExpectedCountby @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-containedover--self-contained falseby @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<T>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<T>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 Pe...
OpenTabletDriver v0.6.6.2
A wild bugfix release appeared! If the last version was working fine for you, you do not need to update.
Bug Fixes
- Default processes to empty array instead of leaving unassigned in driver detection by @Kuuuube in #4231
- Fixes a crash when exporting diagnostics with a vendor driver loaded on Linux (regression introduced with #4188)
- Fix modifier key binding with mouse events on macOS by @AkiSakurai in #4233
- Fixes modifier keys not passing through properly on macOS
- Fix pen button bindings not releasing on out-of-range by @AkiSakurai in #4234
- Fixes bindings being stuck if pen is removed from tablet while holding pen buttons
Full Changelog: v0.6.6.1...v0.6.6.2
OpenTabletDriver v0.6.6.1
Another minor release is upon us! OpenTabletDriver v0.6.6.1
This release targets some notable bug fixes:
- Underflowing pressure is fixed on some variants of XP-Pen tablets in #4197
- This was caused by an incorrect assumption in the parser
- Fixing inconsistent eraser handling in our own eraser binding handler in #4207
- Some tablets (mostly Wacom) send tool state as an initial report instead of sending eraser state continuously, this is now properly handled.
- MacOS: Fixing relative mode on multi-monitor displays in #4198
- This fixes a bug that seems to have been present since OpenTabletDriver v0.6.1
- Linux: Fixed bad tool handling in Linux Artist Mode in #4202
- Tool states are now properly unique per
SYN_REPORT- should fix tool handling in some applications
- Tool states are now properly unique per
- Tilt is now fixed on many large UC-Logic based tablets in #4213
- Artisul D16 Pro
- Gaomon GM116HD
- Gaomon GM156HD
- Gaomon PD156 Pro
- Gaomon PD1560
- Gaomon PD1561
- Gaomon PD2200
- Huion G930L
- Huion GT-156HD V2
- Huion GT-191 V2
- Huion GT-220 V2
- Huion GT-221 Pro
- Huion GT-221
- Huion Kamvas 12
- Huion Kamvas 16 (2021)
- Huion Kamvas 16
- Huion Kamvas 20
- Huion Kamvas 22 Plus
- Huion Kamvas 22
- Huion Kamvas 24 Plus
- Huion Kamvas Pro 12
- Huion Kamvas Pro 16 (2.5k)
- Huion Kamvas Pro 16 (4k)
- Huion Kamvas Pro 16 Plus (4k)
- Huion Kamvas Pro 16
- Huion Kamvas Pro 19 (4K)
- Huion Kamvas Pro 20
- Huion Kamvas Pro 22 (2019)
- Huion Kamvas Pro 24 (4K)
- Huion Kamvas Pro 24
- Huion Q630M
- Huion RDS-160
- Huion WH1409 V2
- Huion WH1409
- Huion Kamvas 16 (Gen 3)
- Huion Kamvas 24
- Huion Kamvas Pro 27
- Huion Q620M
Additionally, foreign driver detection has been improved in #4188. XP-Pen's Windows driver recently changed something that stopped our driver detection from seeing it, this change should allow users and helpers to identify whether the foreign driver is installed and may conflict with OpenTabletDriver.
Bug Fixes
- Invert giano parser tilt by @Kuuuube in #4213
- Replace bad subtraction with bitmask in XP-Pen offset parsers by @Kuuuube in #4197
- Report potential driver detection false positives and show process name and filename in log by @Kuuuube in #4188
- Save eraser state in binding handler by @Kuuuube in #4207
- Desktop/PresetManager: Fix '.json' overreplacement by @gonX in #4170
- Fix libinput eraser not setting sometimes due to not flushing and sending two conflicting tool reports by @Kuuuube in #4202
- Fix multi-monitor relative pointer bug when first display is positioned to the right by @AkiSakurai in #4198
Tablet Support
- Add support for XP-Pen Deco Pro MW by @Kuuuube in #4214
- Woodpad PF0730: Add variant by @gonX in #4205
- Add new variant for Monoprice 10594 by @Kuuuube in #4199
Console Improvements and Bug Fixes
- Rework
setfiltersandsettoolsby @gonX in #4171 - Add
disabletabletfiltersanddisabletoolsby @gonX in #4176 - Add
listpresetscommand by @gonX in #4169 - Inform when no types are found by @gonX in #4145
- Fix
detectconsole command bricking output by @dnfd1 in #4215 - Fix invalid call in
setoutputmodeby @gonX in #4148 savepreset: Restrict path traversal by @gonX in #4168
New Contributors
Code quality and GitHub project management PR's have been omitted from the list above.
Full Changelog: v0.6.6.0...v0.6.6.1
OpenTabletDriver v0.6.6.0
OpenTabletDriver v0.6.6 finally releases after over a half a year of development!
This version mostly focuses on added support for more tablets, but also has
some bug fixes and quality of life changes.
Notably, plugin API and bindings have been looked at closely to fix up some
small annoyances for end users.
Additionally, we have some sad news to bring:
During this release window, long time contributor @jamesbt365 passed away. We
have memorialized his impact on the OpenTabletDriver project in the driver user
interface.
James joined the OpenTabletDriver team more than 4 years ago, and has provided
outstanding support for users on our Discord, helped the team keep multiple
OpenTabletDriver projects updated (core, web and bot) with documentation and code.
Among his over 300 pull requests for the driver, dating all the way back to
#1503, James has helped add and improve support for scores of tablet models,
and fix cross-platform compatibility of dozens tablets, finishing off with his
last pull requests in #3931 and #3736.
With all that being said, we hope you enjoy the v0.6.6 release! Further details
about this release can be seen below:
Notable changes
Adaptive Bindings by @gonX in #4010
This version of OpenTabletDriver introduces a new default binding: Adaptive Bindings
Adaptive Bindings automatically adapt to your output mode - no more fiddling
with bindings just to use your other output mode properly.
Plugin developers making output mode plugins: Make sure your output mode
implementsIPenActionHandlerto properly support this.IMouseButtonHandleris also supported.
Migrate Tablet Configuration properties to match avalonia by @gonX in #4027
This changes the tablet configuration schema to match that of our other
branches. Any custom tablet configurations that worked with v0.6.5.1 should
still work with this version.
This improves the user experience for users with unsupported tablets, as they
now don't have to worry (quite as much) about their tablet missing features
because they used a configuration targeted for another driver version.
Add options to disable pressure & tilt by @AkiSakurai in #3564
You can now disable these settings per-tablet. It disables reporting of these
values to the OS, which implicitly disables pen tip in the Linux Artist Mode
output mode.
Integrate Preset Bindings by @Mrcubix in #3995
Adds support for loading presets directly from bindings.
Plugin developers: This also exposes the current
IDriverDaemonto the
pluginmanager service collection, should you need direct Daemon access in your plugin.
Invert tilt in UCLogicTiltReportParser by @gonX in #3701
This hopefully fixes the inverted tilt present on many UCLogic tablets (Artisul, Gaomon, Huion).
Please see the linked pull request for a full list of affected tablets.
Bug fixes
MacOS
-
macOS: Track modifier status in OTD, not system by @AkiSakurai in #4014
This should improve the reliability of multi-key bindings
-
Ensure user configuration is loaded correctly on macos by @AkiSakurai in #3994
Solves some instances of user-defined tablet configurations being unable to be loaded.
-
Fix occasional sticky modifier keys issue on macOS by @AkiSakurai in #3808
Solves an issue where looked up modifier state might not match actual modifier
state (e.g. changed between lookup and sync/flush)
Misc Bug Fixes
-
Fix an exception when unplugging a tablet then closing a binding editor by @Mrcubix in #3837
-
Fix UX Plugin Manager desync when updating plugins by @Mrcubix in #4022
-
Enhance handling of invalid settings by @gonX in #3999
This solves oddities when attempting to load
master/avaloniadriver
settings into the 0.6.x version of OpenTabletDriver. -
Cleanup Temp before plugin install by @Mrcubix in #4019
This ensures that only the intended files are installed with plugins, in case
of the temp dir going stale for some reason. -
DriverDaemon: Create settings file when none are detected by @gonX in #4000
This solves the setup wizard repeatedly popping up for users with no saved configuration.
-
PluginSettingStoreCollection: Check upper bounds by @gonX in #4012
Solves a minor issue where saved settings could save more bindings than the tablet supported.
This was noticeable only when the used tablet has had any of its button counts reduced. -
Fix Plugin manager Metadata Desynchronization by @Mrcubix in #4007
Displayed plugin metadata should now be properly refreshed when a plugin is reinstalled or updated.
-
Load Plugin assemblies using LoadFromStream instead of LoadFromAssemblyPath by @Mrcubix in #4009
This should hopefully make plugin file management (uninstalling/updating) a bit more consistent
-
Revert Huion 420 parser change by @Kuuuube in #3758
This reverts the used parser for Huion 420 to the one used in v0.6.5.0.
-
Handle type being null in the Advanced Binding Editor when getting controls by @Mrcubix in #3783
Resolves a bug with uninstalling plugins providing bindings, and the bindings remaining unchangable.
-
Only clamp width and height in
Lock to usable areaif rotation is 0 or 180 by @Kuuuube in #3815This solves weird tablet area mapping behavior on rotated areas in the user interface
Tablet Support
Added support
- Gaomon M5 by @gonX in #4087
- Huion Kamvas 16 (Gen 3) by @Kuuuube in #4129
- Huion Kamvas 24 (GS2401) by @nahkd123 in #3794
- Huion GT-191 V2 by @nahkd123 in #3825
- Huion HC16 16k variant by @jamesbt365 in #3865
- Huion L310 by @cueavyqwp in #4083
- Huion L610 by @Ceciliaaw in #3879
- Huion Kamvas Pro 27 by @Kuuuube in #3949
- UGEE UE16 by @Kuuuube in #4135
- Wacom Cintiq Pro 22 (DTH-227) by @Kuuuube in #4044
- Wacom DTH-2200 by @Kuuuube in #4121
- Wacom DTK-2100 by @Kuuuube in #4043
- Wacom PTK-470 by @nahkd123 in #3882
- Wacom PTK-670 by @nahkd123 in #3845
- Wacom PTK-870 by @Kuuuube in #3915
- XP-Pen Artist Pro 14 (Gen2) by @Kuuuube in #3948
- XP-Pen Artist Pro 19 (Gen2) by @Kuuuube in #4040
- XP-Pen Artist 15.6 Pro V2 by @Kuuuube in #4041
- XP-Pen Artist Pro 24 (Gen2) by @Kuuuube in #4039
- XP-Pen Deco 01 V3 (Variant 2) by @Kuuuube in #4038
- XP-Pen Deco 640 (IT640) by @gonX in #3801
- XP-Pen Deco Pro MW Gen2 by @Kuuuube in #3859
Improved detection
-
Add interface attribute to WinUSB tablets where applicable by @Kuuuube in #4020
Solves broken Linux/Mac detection of some tablets that requires WinUSB on Windows.
-
Fix incorrectly using Kamvas 20 by @jamesbt365 in #3931
Solves some Huion Kamvas Pro 20's being detected as a Huion Kamvas 20.
Improved support
-
Include IProximityReport for BambooTabletReport by @Kuuuube in #4100
-
Add mouse support for PTK-x40 aka Intuos4 by @Kuuuube in #1791
-
Huion H1161: Fix wheel reports emitting aux buttons by @gonX in #3896
-
XP-Pen Deco 01: Fix incorrect Auxiliary button count: 6 -> 8 by @gonX in #4002
-
XP-Pen Deco L: Remove OutputReportLength requirement by @gonX in #3884
-
Fix XP-Pen Artist 12 init for newer revision by @Kuuuube in #4025
Solves double cursor on Windows for some XP-Pen Artist 12 variants.
-
Reintroduce 10moon parser by @gonX in #4029
This only reintroduces the parser that was removed in 0.6.5.1. This should
allow users to continue using a local configuration. -
Candidate fix for Wacom Graphire AUX buttons. by @gonX in #4058
Fixes aux buttons for the following Wacom models: CTE-430, CTE-440, CTE-630, ET-0405-U, ET-0405A-U
-
Fix a few incorrect pressure maxes by @Kuuuube in #4122
Fixes pressure max being off by 1 for Genius G-Pen 560, Wacom DTK-1200, and Wacom DTK-2200.
Driver Core
-
Clean up Linux diagnostics env vars by @gonX in #3876
Introduces
XDG_CURRENT_DESKTOPandXDG_CURRENT_DIRenvironment variables to diagnostic output. -
Add proper getter for Settings by @Mrcubix in #3839
Simplifies the
OpenTabletDriver.Desktop.Presetclass
Driver GUI ("UX")
- UX/TabletDebugger: Use epoch timestamp for data recording file name by @gonX in #3988
- Show max recorded position in the Tablet Debugger by @silkneko in #3427
- Hide number of recorded reports until non-zero by @Mrcubix in #4048
- Reset NumberOfReportsRecorded when recording is enabled by @Mrcubix in #4060
- AreaConverter: Add Gaomon 2024 converter by @gonX in #4003
- Fix license button not showing license in about dialog by @Kuuuube in #4046
- Order Filters & Tools by Name by @Mrcubix in #4049
Meta/CI/Tests
-
Tests: Add check for Tablet Config names in tablets.md by @gonX in #4098
-
Tests: Add tests for GetFriendlyName() TypeInfo extension function by @gonX in #4054
-
PR Labeler: Fix constant
metatag application by @gonX in #4030 -
ConfigurationTest: Consider whitespace/indentation when diffing by @gonX in #3901
-
Build: Remove LangVersion by @gonX in #4011
This ensures that the compiler used is not newer than the targeted framework,
avoids developers with .NET 10 SDK installed from submitting .NET
8-incompatible code. -
Refactor tests by @gonX in #4091
This overhauls some of our unit tests to use more modern testing techniques
Miscellaneous Changes
- Add MacOS UI & Daemon Config and Update Build Instructions by @AkiSakurai in #4084
- PluginManager: Disa...
OpenTabletDriver v0.6.5.1
!! For any users that encounter any problems with OpenTabletDriver's built-in updater, please manually download the update below instead. !!
This release removes the updater from OpenTabletDriver as it has known to be inconsistent with Windows. It will instead link you to the website to download the release. Your v0.6.5.0 version will still update to v0.6.5.1.
The updater is not planned to return for 0.6.x.
You can now save and apply with the pen without making the daemon crash (#3631 and #3614)
Relative output mode will now warn you if you use a too low reset time (#3750)
Notable changes
- Link to release instead of updating (#3619 by @Mrcubix)
- Fix another case of Output Mode NullException when saving using the tablet (#3631 by @Mrcubix)
- UX: Rewrite FileDialog directory checks (#3670 by @gonX)
- This should make diagnostics work for users who don't have classic user folders defined such as Documents.
- Better logging on invalid parser (#3746 by @gonX)
- You should now receive a log error when trying to use a parser that doesn't exist instead of just a confusing null reference exception
Bug fixes
Linux
- Artist Mode: Release opposite tool when changing eraser state (#3700 by @gonX)
- This fixes stuck tool states for parsers that do not properly emit Out of range reports
- Remove proximity handling from linux artist mode (#3705 by @Kuuuube)
MacOS
- Fix swapped key code mappings for Command and Option keys on MacOS (#3666 by @AkiSakurai)
- Fix support for pressure sensitivity in Adobe software on macOS (#3761 by @AkiSakurai)
- Fix: Prevent proximity event on mouse up for macOS (#3764 by @AkiSakurai)
- Fix memory leaks on macOS (#3788 by @AkiSakurai)
- A change in a recent macOS version changed
CGEventPostto require usage of an Autorelease pool to avoid a memory leak
- A change in a recent macOS version changed
Miscellaneous Changes
- Ensure Store is properly set when opening advanced binding editor dialog (#3623 by @Mrcubix)
- This fixes advanced binding editor so that it's pre-filled with your current binding
- Fix AppInfo desync in UX (#3615 by @Mrcubix)
- UX would not be using the daemon-provided paths for plugin manager and preset manager. This fixes niche installations that have separate UX and daemon paths, but also helps with development.
- Fill Empty screen with a Label when a tablet isn't detected or selected (#3763 by @Mrcubix)
- Daemon: Properly output filters to log in development edge case (#3699 by @gonX)
- RelativeOutputMode warn on reset spam (#3750 by @gonX)
- You will now get a logged error when relative output mode was unable to position your cursor too many times in a row
- Tablet Debugger: Refactor missing digitizer specification warnings (don't warn for missing touch if report isn't touch) (#3628 by @gonX)
- 0.6.5.0 had a last-second patch (#3540) to fix tablet debugger crashes for tablets with parsed touch that had touch dimensions undefined in the configuration, this ended up spamming the logs of even non-touch tablets.
This change fixes it so that the warning should only be emitted for touch reports.
- 0.6.5.0 had a last-second patch (#3540) to fix tablet debugger crashes for tablets with parsed touch that had touch dimensions undefined in the configuration, this ended up spamming the logs of even non-touch tablets.
Tablet Support
Added support
- Huion H1061P (#3625 by @jamesbt365)
- Huion Kamvas 13 (Gen 3) (#3638 by @jamesbt365)
- Wacom DTH-135 (#3680 by @nahkd123)
- XP-Pen Artist 10S (#3311 by @Ponywka)
- XP-Pen Artist 24 (#3744 by Tenchrio)
- XP-Pen Deco mini7 V2 (#3740 by @jamesbt365)
- XP-Pen Deco 01 V3 (#3772 by @jamesbt365)
- XP-Pen Star 02 (#3754 by @jamesbt365)
Improved detection
- Add identifier and fix dimensions to Huion RTP-700 (#3636 by @jamesbt365)
- Add support for new firmware of RTS-300 (#3651 by @jamesbt365)
- Add support for 16k pressure variant of Gaomon M8 (#3640 by @jamesbt365)
- Fix tilt for Huion H1061P (#3660 by @gonX)
- add support of Huion 420 with null characters (#3676 by @jamesbt365)
- Add wireless support for Wacom CTC-6110WL (#3659 by @nahkd123)
- Add linux support to Huion H610 Pro V3 (#3682 by @jamesbt365)
- config/Huion Kamvas Pro 13: Add an additional device string (#3647 by @gonX)
- Add identifier for Gaomon PD2200 (#3752 by @Kuuuube)
- config/UGEE M708 V2: Fix dimensions and add new identifier (#3646 by @gonX)
- Add support for variant of Huion Q630M (#3721 by @jamesbt365)
- Add string for kamvas pro 13 (3756 by by @Kuuuube)
- Change H610 Pro V3 regex to support null character variants (#3760 by @jamesbt365)
- Add support for variant of XP-Pen Star G960S Plus (#3768 by @jamesbt365)
Improved support
- Add eraser support for CTC-4110WL/6110WL (#3578 by @nahkd123)
- Add Linux and MacOS support for the Genius i608x (#3630 by @jamesbt365)
- Add extra init to XP-Pen Innovator 16 (#3653 by @jamesbt365)
- CTH-x61: Add auxiliary key support (#3694 by @gonX)
- Parblo A610: Add interface (#3688 by @gonX)
Removed support
Unfortunately, we had to remove support for this because of our invalid parsing leading to pressure not working correctly. This configuration also matched tablets it was not supposed to, which makes it harder to support more tablets.
Support will be readded in the future when we iron out the problems.
- Yank support for 10moons 1060N (#3770 by @jamesbt365)
Driver
- Fix a case nullref when In-Range Apply occurs (#3614 by @Mrcubix)
- Fix NullReferenceException when settings with missing output mode area are loaded (#3672 by @Mrcubix)
- This fixes settings and profiles with invalid or missing outputmodes (like the ones from now-uninstalled plugins) throwing an exception.
- Dispose of plugins on InputDeviceTree Disconnected (#3622 by @Mrcubix)
- This fixes a memory leak with plugins that would happen whenever a tablet is unplugged
Meta/CI
- UX/About: Add developers and documenters (#3747 by @gonX)
- Bump to 0.6.5.1 (#3778 by @jamesbt365)
- Standardize release asset naming (#3762 by @gonX)
- This changes how assets are named in releases. Releases assets will now contain the version of OpenTabletDriver.
- workflows/release: Move NuGet deploy to its own step (#3782 by @gonX)
- This should make it easier for us to ensure a CI-based NuGet deploy in the future
- Add config json linting to 0.6.x (#3613 by @Kuuuube)
- This only affects .NET tests. You can still use an ugly configuration locally.
- Package Debian and Fedora in Net CI test (#3725 by @jamesbt365)
- workflows/dotnet: Run workflow on branch pushes too (#3777 by @gonX)
nixOS
- Switch deps.nix to deps.json (#3689 by @InfinityGhost)
- nix: Update version to 0.6.5.0 (#3656 by @gonX)
New Contributors
- @Tenchrio made their first contribution in #3744
- @Ponywka made their first contribution in #3311
- @nahkd123 made their first contribution in #3578
Full Changelog: v0.6.5.0...v0.6.5.1
OpenTabletDriver v0.6.5.0
!! For any users that encounter any problems with OpenTabletDriver's built-in updater, please manually download the update below instead. !!
Notable changes
- .NET Runtime has been updated to use 8.0 from previously used 6.0 (#3368 by @InfinityGhost and #3390 by @jamesbt365)
- Enhanced tablet detection which should help tablets with multiple interfaces (#3475, #3244 by @jamesbt365, #3570 by @X9VoiD)
- These are changes that help improve support in the future for tablets.
- Notably, "replug tablet until it works" is a workaround that can now be fixed with some tablet configuration changes
- These changes help reduce conflicts and further improve what tablets we can support by giving us more choices over what devices we select.
- Touch points are now visualized in the OTD Tablet Debugger (#3138 by @kloczewiak)
- NuGet packages are now deployed when a release is tagged (#3550 by @InfinityGhost)
- String reader now outputs special characters as character escape sequences (#3583 by @Kuuuube)
- This is mostly to help configuration maintainers notice when vendors change strings in subtle ways
Bug fixes
- Error dialogs/message boxes are now limited to a single box (#3490 by first time contributor @BunnyTub)
- This means that cascading errors no longer spams dialog boxes
- GUI no longer crashes when inputting blank or invalid values into the settings textboxes (width/height/etc) (#2248 by @AkiSakurai)
- Pressure and eraser threshold now defaults to 1 (#3601)
- This should avoid left click remaining stuck for new users with tablets that don't ever report 0 pressure
- Fixed a bug in Linux timer thread code where
ananicy-cppwould retrigger rules on every timer tick (up to 1000 times a second) (#3414 by @hwsmm) - Portable install is now possible on Linux and MacOS (#3536 by @Mrcubix)
Linux
- Now defaults output mode to Artist Mode instead of Absolute Mode (#3525 by @gonX)
- Absolute mode on Linux should be considered deprecated and only exists for backwards compatibility
- Official OpenTabletDriver packages now ship with libinput smoothing disabled for Artist Mode (#3566 by @gonX)
- Reworked .desktop file to follow Freedesktop standards (#3573 by @gonX)
- Updated manpage (#3594 by @gonX)
Mac OS:
At long last, we now have support for pen pressure on MacOS! This has been a long requested feature that is nice to finally have in our hands.
- Support for emitting pressure and tilt for use in artist programs (#2894 by @AkiSakurai, backported in #3544 by @gonX)
- Native MacOS timer support (#2342 by @AkiSakurai, backported in #3549 by @Mrcubix)
- This means that async plugins (like interpolators) should have significantly lower CPU usage
Miscellaneous Changes
Below follows the autogenerated changelog, with some of the above changes removed for clarity.
Tablet Support
Added support
- Acepen AP906 (#3134 by @jamesbt365)
- Artist 22 (2nd Generation) (#3156 by @jamesbt365)
- Artisul D16 Pro (#3386 by @jamesbt365)
- Gaomon M8 (#3363 by @jamesbt365)
- Huion 1060 Plus (#3469 by @jamesbt365)
- Huion Kamvas GT-156HD V2 (#3294 by @jamesbt365)
- Huion Kamvas Pro 16 (4k) (#3317 by @jamesbt365)
- Huion Kamvas Pro 16 Plus (4k) (#3411 by @jamesbt365)
- Huion Kamvas Pro 19 (4K) (#3417 by @jamesbt365)
- Huion Kamvas Pro 22 (2019) (#3154 by @jamesbt365)
- Huion RTP-700 (#3367 by @jamesbt365)
- Parblo A610 (#3469 by @jamesbt365)
- Parblo A640 (#3158 by @jamesbt365)
- Trust Flex Design Tablet (#3323 by @jamesbt365)
- Turcom TS-6580 (#3444 by @VoidJuiceConcentrate)
- UGEE M808 (#3200 by @jamesbt365)
- UGEE M908 (#3306 by @jamesbt365)
- Wacom CTH-300 (#3175 by @Kuuuube)
- Wacom Cintiq 22HD (DTK-2200) (#3285 by @cromachina)
- Wacom DTH-271 (#3535 by @Kuuuube)
- XP-Pen Artist 16 (#3469 by @Mat931)
- XP-Pen Artist 24 Pro (#3292 by @jamesbt365)
- XP-Pen Star 03 Pro (#3321 by @jn-sena)
- XP-Pen Gen2 tablets (#3229 by @Kuuuube)
- Artist Pro 16 Gen 2
- Deco Pro LW Gen 2
- Deco Pro XLW Gen 2
Improved detection
- Artisul M0610 Pro (#3143 by @jamesbt365)
- Gaomon GM116HD (#3343 by @jamesbt365)
- Gaomon M10K Pro (#3278 by @jamesbt365)
- Huion H580X (#3257 by @jamesbt365)
- Huion H580x (#3173 by @jamesbt365)
- Huion H950P (#3469 by @treyf711)
- Huion HS64 variant (#3337 by @jamesbt365)
- Huion HS64. (#3185 by @jamesbt365)
- Huion Kamvas Pro 12 (#3469 by @lucek8123)
- Huion WH1409 V2 (Variant 2) (#3422 by @Kuuuube)
- Kamvas 13 (#3178 by @jamesbt365)
- Kamvas Pro 12 (#3383 by @jamesbt365)
- VEIKK VK430 (#3147 by @jamesbt365)
- Wacom PTH-460 (#3131 by @jamesbt365)
- XP-Pen Deco mini4 (#3377 by @jamesbt365)
- XP-Pen Star G430S (#3514 by @gonX)
- XP-Pen Star G640 (#3554 by @jamesbt365)
- XP-Pen Star G960S (#3359 @jamesbt365)
- Xencelabs Pen Tablet Medium (#3137 by @jamesbt365)
Improved support
Tilt
- Gaomon PD1161 (#3264 by @gonX)
- Huion H1060P (#3329 by @jamesbt365)
Auxiliary buttons
- Veikk A15 (#3284 by @adhdandy)
- Wacom Cintiq 12WX (DTZ-1200W) 5th and 10th buttons (#3242 by @jamesbt365)
Other
- Wacom FT-0405-U: Define a mouse button count (#3542 by @gonX)
- Add pressure parsing workaround to XD-xxxx-U (#3202 by @jamesbt365)
- Use basic TabletReportParser on Huion 420 (#3227 by @jamesbt365)
- Remove auxiliary buttons field for tablets that do not have auxiliary keys (#3194 by @jamesbt365)
- Config naming fixes (#3421 by @Kuuuube)
- Correct Gaomon M8 internal Name (#3468 by @jamesbt365)
- Fix new firmware deco pro gen2 (#3454 by @Kuuuube)
- Fix byte order in mask (#3456 by @Kuuuube)
- Fix ET-0405-U parser (#3508 by @Kuuuube)
- Fix UC-Logic 1060N configuration (#3239 by @jamesbt365)
- Add toolreport for intuos3 (#3580 by @Kuuuube)
Driver
Timer
- Use libc timerfd instead in LinuxTimer (#3423 by @hwsmm)
- Fix LinuxTimer (#3425 by @hwsmm)
- Better time calculation for LinuxTimer (#3504 by @hwsmm)
- Add MacOS native timer (#3549 by @AkiSakurai)
MacOS pressure support
- Support modifier click, double click, tilt and pressure for macOS #3544 (by @AkiSakurai)
- (MacOS) Fix double click in relative mode #3559 (by @AkiSakurai)
Misc
OpenTabletDriver v0.6.4.0
!! For any users that encounter any problems with OpenTabletDriver's built-in updater, please manually download the update below instead. !!
Tablet Support
Added support
- Gaomon GM116HD (#2901 by @longnguyen2004)
- Huion Kamvas 22 (#2921 by @jamesbt365)
- VEIKK VK1060PRO (#2872 by @Kuuuube)
- Wacom CTC-4110WL (#2902 by @Kuuuube)
- Wacom CTC-6110WL (#2902 by @Kuuuube)
- Wacom DTH-1320 (#3063 by @Kuuuube)
- Wacom PTU-600U (#2907 by @Kuuuube)
- XP-Pen Deco M (#3000 by @hax0r31337)
Improved detection
- Artisul A1201 (#3062 by @jamesbt365)
- Gaomon 1060 Pro (#2899 by @jamesbt365)
- Huion H1060P (#3045 by @gonX)
- Huion H420x (#2938 by @jamesbt365)
- Huion H950P (#2990 by @jamesbt365)
- Huion Kamvas 20 (#2887 by @jamesbt365)
- Huion Kamvas Pro 24 (4K) (#3070 by @jamesbt365)
- Kamvas Pro 13 (2.5k) (#3072 by @J05HM0N5TER)
- UGEE S640 (#2897 by @jamesbt365)
Improved feature support
Pen tilt
- Huion HS611 (#2920 by @jamesbt365)
- VEIKK A15Pro (#2983 by @gonX)
- VEIKK VK1060 (#2983 by @gonX)
- VEIKK VK640 (#2982 by @gonX)
Mouse button
- Wacom CTE-430 (#3015 by @gonX)
- Wacom CTE-440 (#3015 by @gonX)
- Wacom CTE-450 (#3015 by @gonX)
- Wacom CTE-630 (#3015 by @gonX)
- Wacom CTE-640 (#3015 by @gonX)
Other
- Huion Deco L: Fix incorrect pressure (#3028 by @gonX)
- Huion Q11K: Fix digitizer specifications (#2891 by @laythean)
- Wacom DTC-133: Add second pen button (#2968 by @Kuuuube)
- XP-Pen Star 05 V3: Fix digitizer specifications (#2936 by @Dartandr)
Driver
Fix issues with relative mode still causing jumps (#3004 by @X9VoiD)
This hopefully fixes all reasons why cursor "jumps" (as if it's in absolute mode) in relative mode.
Fix some apps not behaving properly to cursor events in MacOS (#3051 by @chutneyio)
Some draggable elements are affected by this and is now actually draggable when using OpenTabletDriver.
Fix forward and backward mouse button bindings in Linux (#2306 by @gonX)
Improve driver detection logging (#2948 by @X9VoiD)
If a tablet driver is detected to be interfering with OpenTabletDriver, the user will now be notified of this issue.
Write logs to filesystem in real-time (#3100 by @X9VoiD)
Everything logged by OpenTabletDriver is now saved to <OTD_APPDATA>/Logs. OTD also doesn't consume infinite amounts of memory anymore just to keep logs in memory by making use of the log files.
Include device attributes to diagnostics (#3109 by @X9VoiD)
Diagnostics now include USB interface number, HID usage and report ID. This new information will be used in a future OpenTabletDriver release for even more reliable support to tablets!
User Experience
Window title no longer says 'No tablet detected' incorrectly (#3038 by @gonX)
Packaging
Remove dist macro in RPM release (#3115 by @hwsmm)
Our RPM releases support more than just Fedora. It works on most RPM-based distros like OpenSUSE,
Fix package install/uninstall getting stuck forever in some Linux machines (#3001 by @X9VoiD)
CI/Meta
Verify tablet configuration with JSON Schema (#3035 by @gonX)
Miscellaneous changes
- Improve average big O runtime of finding conflicts (#2880 by @X9VoiD)
- Fix misuse of INPUT_PROP_DIRECT (#2940 by @gonX)
- Use INPUT_PROP_POINTER for tablets as suggested by kernel docs (#2941 by @gonX)
- Parse /etc/os-release in diagnostics (#2944 by @gonX)
- Remove binding handler from filter log (#2947 by @X9VoiD)
- Check for presence of Daemon before attempting to connect (#2950 by @gonX)
- build.sh: Use ${BASH_SOURCE[0]} as root instead of cwd (#2951 by @gonX)
- Rewrite udev rule generation (#2971 by @InfinityGhost)
- linux/lib.sh: Test udev rules where possible (#2975 by @gonX)
- generic/postinst: Specify systemd user service (#3014 by @gonX)
- Update GitHub workflows (#3036 by @gonX)
- Sync TABLETS.md with
master(#3043 by @gonX) - Fix typo in MacOS permission helper (#3052 by @mintasso)
- Add help and options to generate-rules.sh (#3059 by @InfinityGhost)
- Revert workflow change (#3067 by @X9VoiD)
- merge matching identifiers with different strings (#3073 by @jamesbt365)
- Fix rebase errors from #3085 (#3087 by @X9VoiD)
- Aggregate configuration test data (#3095 by @X9VoiD)
- Fix some CI problems (#3117 by @X9VoiD)
- Set device attributes (#3119 by @X9VoiD)
- Fix enumeration of hid reports (#3120 by @X9VoiD)
- Bump version to 0.6.4.0 (#3122 by @X9VoiD)
Contributors
Thank you to everybody that contributed to this release!
- @chutneyio
- @Dartandr
- @gonX
- @haxor31337
- @hwsmm
- @InfinityGhost
- @jamesbt365
- @J05HM0N5TER
- @Kuuuube
- @laythean
- @longnguyen2004
- @mintasso
- @X9VoiD
Full Changelog: v0.6.3.0...v0.6.4.0
OpenTabletDriver v0.6.3.0
!! For any users that encounter any problems with OpenTabletDriver's built-in updater, please manually download the update below instead. !!
Tablet Support
These changes below were backported via #2776.
Added support
- Adesso Cybertablet K8 (#2705 by @X9VoiD)
- Gaomon PD156 Pro (#2704 by @jamesbt365)
- Huion GT-221 (#2674 by @X9VoiD)
- Huion H641P (#2730 by @Kuuuube)
- Huion Kamvas 24 Plus (#2605 by @jamesbt365)
- Huion Kamvas Pro 24 (4K) (#2864 by @TheOnlyPhoenix)
- Huion Q630M (#2731 by @michaelmera)
- Huion RDS-160 (#2786 by @jamesbt365)
- Huion RTE-100 (#2701 by @jamesbt365)
- Parblo Ninos N4 (#2679 by @cantgetin)
- Parblo Ninos N7 (#2734 by @Kuuuube)
- UGEE U1200 (#2839 by @ndkean)
- VEIKK VK430 V2 (#2711 by @Kuuuube)
- Waltop Slim Tablet 5.8" (#2862 by @X9VoiD)
- XP-Pen Artist 16 (2nd Gen) (#2580 by @SerialBoxes)
- XP-Pen Deco L (#2867 by @Kuuuube)
Improved support
- Gaomon 1060 Pro (#2624 by @mxi-box)
- Gaomon M106K Pro (#2631 by @jamesbt365)
- Gaomon M1230 (#2822 by @jamesbt365)
- Huion H430P (#2869 by @Kuuuube)
- Huion H610 Pro V3 (#2681 by @Kuuuube)
- Huion HS610 (#2724 by @Kuuuube)
- Huion HS611 (#2801 by @loco-choco)
- Huion Kamvas Pro 16 (2.5k) (#2723 by @Kuuuube, #2738 by @Kuuuube)
- Huion Kamvas Pro 16 (#2837 by @jamesbt365)
- Huion RTM-500 (#2613 by @jamesbt365)
- VEIKK VK430 (#2711 by @Kuuuube)
- Wacom CTE-650 (#2736 by @tovc)
- Wacom ET-0405A-U (#2857 by @Kuuuube)
- XP-Pen Star 06C (#2773 by @jamesbt365)
Other
Driver
Fix logging sending LogLevel.Error on non-fatal exceptions (#2820 by @X9VoiD)
This fixes issues related to osu! lazer's OTD implementation not working on some scenarios where standalone OTD does.
Fix try-catch not catching all JsonException (#2826 by @X9VoiD)
OpenTabletDriver will not crash anymore when loading invalid settings.
Handle binding before output (#2905 by @X9VoiD)
User Experience
Only allow a single instance of UX (#2828 by @X9VoiD)
Attempting to open another UX will bring up the existing one.
Remove Configuration Editor (#2883 by @X9VoiD)
This has been a pain point for a while now and adds significant code but almost nobody uses it and when they do it's just problems galore.
Not the fault of config editor, just that the only users of this feature are those that don't know how to actually make a tablet configuration. Those that do know just copies other configs as base and edits it as text. Doing it this way is actually faster and more convenient.
Use elevated daemon to update on some installations (#2877 by @X9VoiD)
Some users are, for some reason, putting OTD into a folder where the user itself has no write access to it. This change allows the daemon to request for elevated permissions to perform an update when needed. Applies to next update.
Actually prevent multiple invocations to Updater's Install button (#2825 by @X9VoiD)
Packaging
Source package for DEB/RPM (#2889 by @X9VoiD)
The packaging scripts were heavily improved and can now build source packages (tho not enabled by default).
Fix Release CI and Linux package issues (#2906 by @X9VoiD)
Fix parsing of linux-specific packaging options (#2821 by @X9VoiD)
Add generic packaging script and build support for musl (#2876 by @X9VoiD)
Miscellaneous changes
- Add default VSCode tasks and launch.json (#2870 by @X9VoiD)
- Bump version to 0.6.3.0 (#2890 by @X9VoiD)
New Contributors
- @loco-choco made their first contribution in #2801
Full Changelog: v0.6.2.0...v0.6.3.0
OpenTabletDriver v0.6.2.0
This new update includes many changes that should resolve issues that just recently occurred for users of Wacom tablets and also makes installing updates more reliable.
Though it should be noted that the update reliability fixes does not apply to 0.6.1.1 so the process updating from 0.6.1.1 to 0.6.2.0 might not be without trouble.
!! For any users that encounter any problems updating to 0.6.2.0, manually download the update below. !!
Driver
Fix device and touch report consuming timer polls (#2802 by @X9VoiD)
Users that experiences lower report rate when using an asynchronous filter (ex. hawku/devocub filters, any filter that has Frequency setting) should prioritize installing this update to recover full report rate.
Fix pipeline race condition (#2803 by @X9VoiD)
Weird issues where pen tip is stuck for example is fixed by this change.
Add fallback support when update install fails (#2804 by @X9VoiD)
Should fix most issues concerning updates failing to install, mostly on Windows machines.
Make daemon more resilient and less crash-y (#2808 and #2810 by @X9VoiD)
Fixes most crashes on startup resulting to "Fatal Error" messages showing up on UI. Daemon is hardened against errors occurring from loading invalid settings and plugins.
Packaging
Make rpm package compatible with openSUSE (#2813 by @X9VoiD)
openSUSE/SUSE users should now be able to run the following commands to install OpenTabletDriver without any error:
sudo zypper install OpenTabletDriver.rpm
assuming current working directory is set to where the rpm file is.
Smaller changes
- Add more information to recorded tablet data (#2807 by @X9VoiD)
- Use setup-dotnet to setup dotnet on fedora (#2814 by @X9VoiD)
- Bump to 0.6.2.0 (#2811 by @X9VoiD)
Full Changelog: v0.6.1.1...v0.6.2.0