Skip to content

chore(deps): update dependency opentabletdriver/opentabletdriver to v0.6.8 - #10

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/opentabletdriver-opentabletdriver-0.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/opentabletdriver-opentabletdriver-0.x

Conversation

@renovate

@renovate renovate Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
OpenTabletDriver/OpenTabletDriver patch 0.6.7 → 0.6.8

Release Notes

OpenTabletDriver/OpenTabletDriver

v0.6.8: OpenTabletDriver v0.6.8

Compare Source

The v0.6.8 version of OpenTabletDriver has released after a successful release candidate!

Area editor improvements, ARM CPU support, code simplification, and device safety is the theme of this release.

We hope this OpenTabletDriver release pleasantly assists in your aims and functions cleanly without reconstructing any nasty bugs.

Notable Changes

These changes are significant for this version, and may be a reason for you to upgrade.

  • Update to .NET 10.0 by @​gonX in #​4361
    • .NET 8.0 reaches EOL (end of life) in less than a month of support as of this release, necessitating an upgrade, as many platforms are also making .NET 8.0 exceedingly difficult to find.
  • Ignore init report, idle & wireless ON signal reports by @​Mrcubix in #​4989
    • XP-Pen only: This fixes these types of reports from reading as aux key presses. If you were experiencing one or more of your auxiliary bindings being held down as your tablet was plugged in, this fixes that.
  • UX/AreaDisplay: Compensate displays for rotation by @​gonX in #​5098
    • Area displays supporting rotation now have the background rotated instead rotating the tablet area. It should be visually clearer how the rotation is taking effect this way.
  • Skip known dangerous strings in string dump by default by @​Kuuuube in #​4841
    • This restricts known dangerous device strings from being probed by the string dumper unless explicitly requested to do so. Some devices could be put in DFU (device firmware upload) mode without this. Be careful, dangerous device strings can still be individually probed.
  • Fix aspect ratio lock being wonky on display area changes by @​Kuuuube in #​5101
    • This fixes the incorrect resizing of the tablet area when changing display area while the aspect ratio lock is enabled.
  • Add baseline macos arm64 building by @​Kuuuube in #​4943, Add arm64 builds by @​Kuuuube in #​5039, and Fix macOS Gatekeeper "app is damaged" error by @​juan-martinez-pf in #​4721
    • These changes combined add full support for arm64 (Apple Silicon) macOS builds. Users will no longer be required to use Rosetta emulation on Apple Silicon macOS.

Regressions Fixed

  • Fix windows tablet debugger additional statistics from failing due to STAThread error by @​Kuuuube in #​4793
    • This was causing the "Additional Statistics" introduced with v0.6.7 to not work on Windows.
  • ResolvedAttribute: Explicitly disable inheritance by @​gonX in #​4803
    • This was regressed in v0.6.7. Plugins that were extending OpenTabletDriver classes (such as output mode plugins) would unintentionally be inheriting the [Resolved] attribute without this, causing plugin construction to fail in some cases.
  • Add FilterState async plugin method by @​Kuuuube in #​4917
    • This async filter bug has been in since version v0.6.2.0 (for over 3 years). At the time, a workaround was implemented to make async filters (interpolators) ignore unparsed reports and touch reports. This removes wasted timer polls from those reports hitting the async filter's update thread and reduces the chance of an interpolator failing to report at the user's requested report rate. But this workaround broke edge cases.
    • This fixes some cases where aux bindings or touch did not function while an async filter (interpolator) was enabled.
    • Plugin developers: Async filters can now override bool FilterState(T? value) to define the exact reports they wish to receive on the update thread.
  • Parblo Ninos N4 add back identifier with set outputreportlength and set interfaces per identifier by @​Kuuuube in #​4782
    • Regressed in v0.6.7, this fixes an instance of the tablet being detected but not working.
  • Require Deco 01 V2 last identifier regex match to be from start by @​Kuuuube in #​4789
    • Regressed in v0.6.7, fixes some variants of the Deco 01 V2 (Variant 2) from being identified as a Deco 01 V2.
  • Fix display offsets causing incorrect positioning when using Set to display by @​Kuuuube in #​4940
    • Likely regressed in v0.6.7, this bug affected many mainstream Linux desktop environments.
  • CLI: Fix broken command aliases (otd log etc) by @​gonX in #​5033
    • Regressed with v0.6.3.0, this fixes the command line aliases (like otd load) not working.

Remaining Changes

Tablet Configurations
Bug Fixes
  • Do not reset bindings delta when wheels computed delta = 0 by @​Mrcubix in #​5006
    • Some tablets may send their wheel deltas as 0 even while the wheel is technically in use, which would cause accumulated deltas to reset early, and wheel bindings set to require more than 2 steps, to sometimes require more rotation than set, and other times not work at all.
  • Skip opening google devices stream by @​Mrcubix in #​4798
    • The Android fastboot bootloader is affected by the WinUSB handling portion of OpenTabletDriver so it is now automatically ignored.
  • Move pressure rewriting to early filter by @​gonX in #​4944
    • This fixes a major bug with some async filters where the pressure rewriting (the pressure threshold slider set for tip/eraser buttons) would be unintentionally be applied more times than intended. Another PR, #​5080, adds a new pipeline stage if a plugin really needs to see the original pressure value.
  • CLI: Remove unneeded stdio alias (and unbrick CLI) by @​gonX in #​5037
    • This was briefly regressed after #​5033 was merged, which fixed CLI's aliases, but did not remove a duplicate alias, causing things to break instead.
  • Daemon: Avoid crash when stdout is unavailable by @​gonX in #​5073
    • This should fix some edge cases where the daemon would just die for no apparent reason.
  • Fix PressureRewriteFilter using EraserPressureThreshold when not valid by @​Kuuuube in #​5079
    • A bugfix for #​4944 where the filter would overzealously use the eraser pressure threshold even when the eraser end wasn't active.
  • UX: Reset window title on daemon disconnect by @​gonX in #​5096
  • Clone into Result in binding editors to ensure reset to original on close by @​Kuuuube in #​5148
    • Changing values in the binding editor would in some case propagate out to the viewmodel unintentionally, causing discarded binding changes to unexpectedly still be applied.
  • macos: Correct "Equal" key to kVK_ANSI_Equal instead of keypad by @​AkiSakurai in #​4815
    • Fixes Equal and Slash keys on MacOS (Slash is now the same as ForwardSlash, ForwardSlash always worked).
  • Remove variation selector 16 from down arrow by @​Kuuuube in #​4791
    • Fixes the Tablet Debugger's additional statistics fields containing square glyphs where down-arrows were expected.
  • global.json: Fix invalid version by @​gonX in #​4924
    • Minor fix to the exact .NET version being used.
  • DeviceIdentifierTest: Also compare defined Interface by @​gonX in #​4787
    • This removes some false-positives on our device identifier conflict test.
Performance Enhancements
  • Cache device strings during detect by @​Kuuuube in #​4934
    • This should improve detection performance for tablets that return their device strings slowly. The cache is for the single detection only, and will be reset every time tablets are redetected.
Daemon Enhancements
  • Recheck configuration directory on detect button press by @​Kuuuube in #​4947
    • This allows override directories that are created after the daemon was launched to be detected more reliably.
  • Add init sender tool by @​Kuuuube in #​5043
    • This is a daemon-side addition that is also implemented in our GUI. It is intended for expert-level usage and should only be used if a tablet expert tells you to - you can cause permanent state changes in your device that may or may not be recoverable.
  • Add F13 to F24 in Keyboard Bindings support for Linux by @​Mrcubix in #​5197
  • Exclude Microsoft devices from WinUSB enumeration by @​Mrcubix in #​5178
UI Enhancements
  • Show installed plugins with checkmark to differentiate by @​Kuuuube in #​4752
    • The Plugin Manager now clearly shows which plugins are already installed.
  • Use regular checkmark instead of heavy checkmark by @​Kuuuube in #​4794
  • Updates the "Copy Diagnostics to clipboard" function by @​139389 in #​4800
    • Minor fix to the logic used to retrieve the diagnostics. It now matches the normal diagnostics export exactly.
  • macOS: restore menu bar and bring window to foreground by @​AkiSakurai in #​4819
    • Fixes show window command on macOS sometimes not bringing window to front.
    • Hides macOS dock icon when not focused.
  • Add Creators field for plugin metadata by @​Kuuuube in #​4756
    • Allows plugin ownership transfers to occur without dismissing the original creator.
  • Cleanup debugger recording and additional data accessibility/discoverability by @​Kuuuube in #​4928
    • Improves the user experience when recording in the Tablet Debugger.
  • Add warning to device string reader window about arbitrary use by @​Kuuuube in #​4932
    • The device string reader has proven to be able to be able to temporarily brick some tablets. This warning should discourage users from randomly pressing buttons here.
  • Add menu item for opening presets directory by @​Kuuuube in #​4938
  • MainForm: Reduce self-repeating code in ResetSettings() by @​gonX in #​4958
  • Display a Notification when daemon & UX version mismatch by @​Mrcubix in #​4834
    • This prevents unknowingly mismatching the daemon and GUI versions, a fairly common situation for people running the daemon separately from the GUI.
  • Elide very long binding strings, make advanced binding editor scrollable, remove horizontal scroll from plugin manager metadata viewer by @​Kuuuube in #​5044
    • This improves user-interactable views in many areas of the GUI.
  • Fix error popup on dragging over file manager popup after clicking Install plugin... by @​Kuuuube in #​5097
    • This hardens the plugin manager from any GUI framework TOCTOU-style bugs that seem to occasionally occur when dragging files into the plugin manager.
  • PluginManager: Disable drag and drop for Linux by @​gonX in #​5105
    • The drag and drop feature only works sporadically and often causes more issues than not - for example, full GUI freezes have been observed, even on more recent versions of our GUI framework.
  • Minor fixes to math, some major naming cleanup after verification, and adding tests by @​Kuuuube in #​5102
    • This further enhances and stabilizes the area resizing calculations in the area displays.
  • Add property text placeholders by @​gonX in #​5132
    • This allows plugins with non-validated string properties to provide a placeholder field. The multi-key binding shows this placeholder in action.
  • MacOS: activate app when re-showing an already shown form by @​AkiSakurai in #​5124
    • Clicking "Show OpenTabletDriver" in the tray icon now correctly brings the window to the front, even when the form is already shown.
  • Fix GroupBox title clipping on macOS by @​AkiSakurai in #​5137
    • GroupBox titles were not correctly considered in for width calculations, causing some titles to be cut off in the new tablet debugger introduced with v0.6.7.
  • AdvancedBindingEditorDialog: Restore settings if scrolled back to initial type by @​gonX in #​5136
    • Should make for a more intuitive experience for users discovering bindings.
  • Set wrap mode to none on UnitLabel by @​AkiSakurai in #​5209
    • Fixes >=4 digit Hz (1000+) in tablet debugger being cut off
Console (CLI) Enhancements
  • Add wheel bindings to console GetBindings by @​Kuuuube in #​4781
    • Wheel bindings were not shown in CLI's getbindings after wheels were added in v0.6.7.
  • CLI: Add diag shorthand for getdiagnostics by @​gonX in #​5034
Documentation
  • docs: add Brazilian Portuguese (PT-BR) translation for 0.6.x by @​Tzavi727 in #​4926
  • Docs: Add Vietnamese (Tiếng Việt) README translation by @​dongsinhho in #​5029
  • Bump all mentions of .NET SDK in readmes to .NET 10 SDK by @​Kuuuube in #​4910
  • TABLETS: Note UGEE M808 16k pressure variant unsupported by @​gonX in #​5091
    • Current identifiers cause the 16k pressure variant to be detected as the 8k pressure variant, causing the pressure range to feel significantly restricted. Fixing this is tracked in #​4663
Build scripts
  • Fix debian release asset naming by @​Kuuuube in #​4768
    • The .deb package now properly follows Debian's package name convention, e.g. opentabletdriver_0.6.8-1_x64.deb
  • Use --always on git describe to fallback when no tags are present by @​Kuuuube in #​4742
    • While this doesn't completely fix the version when running in a git repository without tags, it will at least still continue to work, albeit with an incorrect version.
  • package.sh: Support linux-*arm64 too by @​JamiKettunen in #​4903
  • Fix duplicated binaries in MacOS builds by @​Mrcubix in #​5181
Code styling and cleanup

The most notable change here is #​4779 which fits the entire OpenTabletDriver codebase to use a new .NET feature named nullable reference types.

This allows coders to more clearly know what can be null and what can't, which should allow us to reduce the amount of null reference exceptions users get in the future. It also allows us to avoid superfluous code, cleaning up the readability of our codebase.

Our GUI is still catching up to these changes, so while we've already fixed a bunch of null reference cases with this, we're not entirely free of them yet.

The .NET 10.0 bump in #​4361, as usual with version bumps, also means that new code should be using new .NET features where it makes sense.

  • Enable Nullable Reference Types (NRT) by @​gonX in #​4779
  • Styling: Disallow unnecessary using directives (IDE0005) by @​gonX in #​4775
  • PluginSettingStore: Simplify constructor taking object by @​gonX in #​4900
    • Code-quality only change that makes it easier to read the code
  • Set AppInfo.Version property to backing AppInfo.assemblyVersion static field by @​Mrcubix in #​4993
    • This simplifies the AppInfo.Version initialization.
  • Create some AppInfo Directories when path is set by @​Mrcubix in #​5060
    • Cleans up initialization behavior and more clearly defines the code-side of the expected behavior.
  • CLI: Document and move EnsureDaemonReady() into partial relating to IPC instead by @​gonX in #​4902
Other non-code changes
  • Bump actions versions to node 24 supported versions by @​Kuuuube in #​4765
    • Chore PR: the older versions had their runners warned for deprecation.
  • github/actions: Update PR labeler version by @​gonX in #​4772
    • Chore PR: The final PR that removes the deprecated Node 20 warnings from the GitHub actions build system.
  • CONTRIBUTING: Restrict usage of null-suppressing operators by @​gonX in #​4901
    • After merging #​4779, it has become apparent that our C# code has a lot more null references than previously anticipated. This documentation-only change should help enforce future usage to describe the reasoning behind its use.
  • Issue Template/Bug: Discourage 'tablet not detected' users by @​gonX in #​4953
    • This attempts to stop a couple more users from reporting "tablet not detected" as a bug, since it is regularly just a local misconfiguration.
  • Mention AI use and requirements of disclosure in CONTRIBUTING.md and AGENTS.md by @​Kuuuube in #​5113
    • This is an attempt to make a clearer distinction between human-created code and AI-generated code. It is not a statement on the use of AI in the project, only a documentation change that helps AI usage visibility.
    • If you have any further questions regarding this, please ask the questions in the discussions section.
  • Refresh bug report issue template by @​gonX in #​5119
    • This changes the template to encourage users to include a diagnostics file, adds an "Additional Notes" field, and makes latest OpenTabletDriver a requirement for submitting bugs.
  • Add UseLocalHIDSharpCore.sh by @​gonX in #​5128
  • Add UseLocalEto script by @​gonX in #​5121
  • Add new 'Questionable' Label, Alter some entries as needed by @​Mrcubix in #​5205
  • eng/Windows: Adjust error message referencing macOS by @​gonX in #​5186
Other Changes
  • Bump StreamJsonRpc to 2.25.29 by @​Kuuuube in #​4898 and Bump streamjsonrpc to get rid of the warnings by @​Kuuuube in #​5194
    • This is a dependency version bump that avoids a potential security issue. It is recommended, but seemingly not critical, that you update.
  • WindowsInput: Log errors when SendInput fails to insert events by @​juan-martinez-pf in #​4698
    • This log entry has still not been seen in the wild, but this follows best practices for usage of this function, and should help us track down potential issues with cursor or keyboard events not properly being sent to Windows.
  • WindowsDisplay: Emit status of DPI Awareness on init by @​gonX in #​4776
    • This fixes instances of "DPI Awareness enabled" being posted to the console even if it wasn't correctly enabled, which should help us track down issues with HiDPI awareness not working.
  • Add support for detecting renamed Digimend tablet driver by @​gonX in #​4955
    • Some Linux distributions are now naming the Digimend uclogic driver hid_digimend_uclogic instead of overriding the hid_uclogic driver.
  • Logging: Avoid potential race condition while adding log outputs by @​gonX in #​4960
    • This removes the chance of log lines being lost into the backlog, as messages could be logged while the backlog was being cleared.
    • Instead, log lines may appear out of order, if a log line is inserted while the backlog is being cleared.
  • MouseScrollBinding: Add bool property for inverting direction by @​gonX in #​5032
    • Now you don't have to specify negative scrolling directions as negative. Existing bindings are not converted, but the checkbox simply multiplies your amount by x * -1.
  • SerializedDeviceEndpoint: Move non-matched fields to bottom by @​gonX in #​5035
    • This reorders the HID Devices list in OpenTabltDriver .json diagnostics to be easier to read with generic JSON previewers.
  • Core: Log bytes of throwing reports by @​gonX in #​5008
    • This should help us track pipeline stalls caused by broken parsers.
  • Make min frequency of async elements 1hz & add warnings by @​Mrcubix in #​5048
    • Previously, setting an async filter frequency of 0 would break the driver in surprising ways.
    • A warning is also logged to the console when the filter is set to an unexpectedly low value (currently triggered for 100hz and under)
  • Add pipeline position before pressure rewrite filter by @​Kuuuube in #​5080
    • Introduces a new pipeline position: PipelinePosition.Internal, which comes before the pressure rewrite filter mentioned elsewhere in this changelog.
  • DeviceReader: Recover reader when IndexOutOfRangeException occurs when parsing tablet data by @​gonX in #​5054
    • This should stop the daemon from stalling the pipeline when the parser throws that specific exception - often caused by tablets sending a shorter packet than expected.
  • UnixXdgPath: Silence path lookup on release builds by @​gonX in #​5107
    • This was proven to be a bit too spammy for diagnostics since it was introduced in v0.6.7
  • Change Unix time to yyyy-MM-dd_HH-mm-ss pattern for tablet data recordings by @​nahkd123 in #​5109
  • (minor) Remove superfluous nullable preprocessor directives by @​gonX in #​4959
    • Nullable reference types has already been added project-wide with #​4779, so we do not need to define these.
  • find-tablet-support.sh assorted bugfixes by @​gonX in #​4764
    • This is a tool that is used by helpers and maintainers to figure out when a tablets configuration has changed
    • It now properly tracks unreleased changes to tablet configurations, and now properly follows renamed files.
Development window regressions fixes

These regression fixes fixes bugs introduced inside of the v0.6.8 development window. Most of these are related to nullable reference types being added in #​4779.

If you have only been using our releases, these fixes are not applicable for you

  • CI: Set signed=false for macOS x64 build by @​AkiSakurai in #​5106
    • Regressed in #​5039 due to surprise behavior with GitHub's Actions.
  • Allow PluginSettingStore Path to be null and handle it as such by @​Kuuuube in #​4897
    • Intentionally added in #​4779 but was proven incorrect when deployed.
  • Native/Windows: Remove nullability from IntPtrs by @​gonX in #​4828
    • Added in #​4779 due to a misunderstanding of the API.
  • Fix reversed App.Driver.IsConnected check in string reader by @​Kuuuube in #​4842
  • Remove intentional throw from unknown path on outputModeSelector.SelectedItemBinding.Convert by @​Kuuuube in #​4831
    • Intentionally added in #​4779 but was proven incorrect when deployed.
  • Fix output mode selector not working by @​Kuuuube in #​4899
    • Regression fix for accidental regression in #​4831 - incompatible expression trees seems to be discarded, resulting the binding not succeeding.
  • Cleanup AppInfo and related static classes by @​gonX in #​5108
    • Bug from #​4947 which changed how AppInfo properties were assigned. Static members of the class would get instantiated using properties from the AppInfo class during instantiation of the AppInfo class - so these fields weren't properly filled yet, and would instead return their defaults. The PR changes a lot of things in this regard but notably just decouples the AppInfo property lookup to on-use instead of on-init, avoiding dependency hell.
  • Fix plugin manager metadata description being left aligned instead of right by @​Kuuuube in #​5084
    • Unintentionally regressed in #​5044.
  • Fix macos advanced binding editor by @​Kuuuube in #​5122
    • Regressed in #​5044, the size calculated would be applied in a different order for macOS, causing the Apply/Clear buttons to be cut off and "invisible".
  • Fix advanced binding editor showing wrong binding and setting bindings of the same type on close instead of discarding by @​Kuuuube in #​5145
  • Fix warning on console format PluginSettingStore prefix by @​Kuuuube in #​5040
    • Type was specified as non-nullable when it should've been nullable. Caused by #​4779.
  • (fixup) Daemon: Log rotation by @​gonX in #​5074
    • Rotation parsing was added in #​4661, and a logging statement was included, but actually invoking the logging statement was forgotten.
  • Daemon: Handle SIGTERM again after the .NET 10 update by @​neostar in #​5158
    • This avoids some old bugs relating to multi-user setups (especially on Linux) reappearing.
  • Only confine aspect ratio lock values to within tablet bounds when LockToUsableArea is enabled by @​Kuuuube in #​5193
Summed up changes for plugin developers
  • #​4803 [Resolved] regression fixed: it will no longer inherit on to your properties when extending our abstract classes that have these attributes set.
  • #​4917 Async filters: New Update() behavior - Update() is only called when FilterState returns true. By default it filters out IDeviceReport and ITouchReport, which is what most plugin developers want.
  • #​5132 [PropertyUnvalidatedStringPlaceholder]: allows showing a placeholder text for plugin properties that are unvalidated strings.
  • #​5080 Plugins using PipelinePosition.PreTransform or PipelinePosition.Raw no longer receive the raw unmapped pressure values from the tablet. It is almost never required to see the unmapped pressure but for the few plugins that do, PipelinePosition.Internal is now available.

New Contributors

Changelog credits

Authors: @​gonX @​Kuuuube
Reviewers: @​gonX @​Kuuuube @​Mrcubix

Full Changelog: OpenTabletDriver/OpenTabletDriver@v0.6.7...v0.6.8


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants