Code Monkey home page Code Monkey logo

opentabletdriver.installer's Introduction

Actions Status Total Download Count

OpenTabletDriver

English | Español | Français | Deutsch | Português-BR | Nederlands | 한국어 | Русский | 简体中文 | 繁體中文 | Ελληνικά | Magyar

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.

Supported Tablets

All statuses of tablets that are supported, untested, and planned to be supported can be found here. Common issue workarounds can be found in the wiki for your platform.

Installation

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 7 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.ps1 to produce binary builds to 'bin' folder. These builds will run in portable mode by default.

Linux

Required packages (some packages may be pre-installed for your distribution):

  • libx11
  • libxrandr
  • libevdev2
  • GTK+3

Run ./eng/linux/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/linux/package.sh --package BinaryTarBall
Debian package (.deb) ./eng/linux/package.sh --package Debian
Red Hat package (.rpm) ./eng/linux/package.sh --package RedHat

The generic binary tarball is designed to be extracted from the root directory.

MacOS [Experimental]

Run ./eng/macos/package.sh --package true.

Features

  • Fully platform-native GUI
    • Windows: Windows Presentation Foundation
    • Linux: GTK+3
    • MacOS: MonoMac
  • Fully fledged console tool
    • Quickly acquire, change, load, or save settings
    • Scripting support (json output)
  • Absolute cursor positioning
    • Screen area and tablet area
    • Center-anchored offsets
    • Precise area rotation
  • Relative cursor positioning
    • px/mm horizontal and vertical sensitivity
  • Pen bindings
    • Tip by pressure bindings
    • Express key bindings
    • Pen button bindings
    • Mouse button bindings
    • Keyboard bindings
    • External plugin bindings
  • Saving and loading settings
    • Auto-loads user settings via settings.json in the active user %localappdata% or .config settings root directory.
  • Plugins
    • Filters
    • Output modes
    • Tools

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.

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 packaging, please see the repository here.

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.

opentabletdriver.installer's People

Contributors

abstractqbit avatar c0d3-m4513r avatar dependabot-preview[bot] avatar extremeexploit avatar infinityghost avatar x9void avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

opentabletdriver.installer's Issues

Build Fails

Since the download of the installer failed, I tried to build the project on my own, however the project would fail to build.

         C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets(362,5): error NETSDK1136: The target platform must be set to Windows (usually by including '-windows' in the TargetFramework property) when using
        Windows Forms or WPF, or referencing projects or packages that do so. [Some\Path\To\OpenTabletDriver.Installer\OpenTabletDriver.Installer.Wpf\OpenTabletDriver.Installer.Wpf.csproj]

Only when manually editing that file to say net5-windows instead of net5 I was finally able to build this project.
I am trying to build with the commandline with VS2019 tools.
My commands for building the project is as follows:

msbuild OpenTabletDriver.Installer.sln -t:restore -p:Configuration=Release -m:12
msbuild OpenTabletDriver.Installer.sln -p:Configuration=Release -m:12

can't move in an admin window

Windows Version: windows 10

Tablet Driver version: 0.5.3.2

Tablet model: veikk s640

everything worked perfectly before, during that time i was using the official veikk drivers, but then i feel like the settings are lacking so i uninstalled the veikk drivers and installed the hawku drivers as it was the first one on a google search. it won't work as it tells me that the vmulti device wont work or something, so i went back to veikk drivers and it kinda messed up something that now whenever an administrator enabled window is on top the tablet won't move the mouse. Then i searched for helped on hawku issues and saw that it was already abandoned so i moved here and maybe opentabletdriver will help me fix this issue

No feedback on installer / driver startup issues

AS said in the title, if you push the install button, there is no feedback, but if i check netlimiter, i'll see that OTD is downloading something, also, if you push the install button multiple times, then it will also download multiple times.

Last, killing one of the download via that same app i'm using, result in the installer crashing, that mean that if amazon / github servers are down for some reason, the app will crash and new users will have no idea why it's doing so.

OTD installer won't start daemon (difficult to run daemon on the background without starting it)

also, you still need to manually start the daemon and use -c argument with config path to start it, or the installer just won't start the daemon and the UI will later crash

also every time i start this release of the daemon, i got this error:

[Normal:Detect] Found device 'Gaomon Tablet'.
[Normal:Detect] Using report parser type 'TabletDriverLib.Vendors.Gaomon.GaomonReportParser'.
[Normal:Debug]  Device path: \\?\hid#vid_256c&pid_006d&mi_00#7&1c6fd11a&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
[Error:Detect]  Warning: More than 1 matching auxiliary device has been found.
[Normal:Debug]  Found aux device with report length 10.
[Normal:Debug]  Device path: \\?\hid#vid_256c&pid_006d&mi_01#7&4ac44d5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
[Error:Detect]  HidSharp.Exceptions.DeviceIOException: Unable to open HID classdevice (\\?\hid#vid_256c&pid_006d&mi_01#7&4ac44d5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}).
   at HidSharp.Platform.Windows.WinHidStream.Init(String path)
   at HidSharp.Platform.Windows.WinHidDevice.OpenDeviceDirectly(OpenConfiguration openConfig)
   at HidSharp.Device.OpenDeviceAndRestrictAccess(OpenConfiguration openConfig)
   at HidSharp.Device.Open(OpenConfiguration openConfig)
   at HidSharp.Device.TryOpen(OpenConfiguration openConfig, DeviceStream& stream, Exception& exception); Retrying 3 more times
[Error:Detect]  HidSharp.Exceptions.DeviceIOException: Unable to open HID classdevice (\\?\hid#vid_256c&pid_006d&mi_01#7&4ac44d5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}).
   at HidSharp.Platform.Windows.WinHidStream.Init(String path)
   at HidSharp.Platform.Windows.WinHidDevice.OpenDeviceDirectly(OpenConfiguration openConfig)
   at HidSharp.Device.OpenDeviceAndRestrictAccess(OpenConfiguration openConfig)
   at HidSharp.Device.Open(OpenConfiguration openConfig)
   at HidSharp.Device.TryOpen(OpenConfiguration openConfig, DeviceStream& stream, Exception& exception); Retrying 2 more times
[Error:Detect]  HidSharp.Exceptions.DeviceIOException: Unable to open HID classdevice (\\?\hid#vid_256c&pid_006d&mi_01#7&4ac44d5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}).
   at HidSharp.Platform.Windows.WinHidStream.Init(String path)
   at HidSharp.Platform.Windows.WinHidDevice.OpenDeviceDirectly(OpenConfiguration openConfig)
   at HidSharp.Device.OpenDeviceAndRestrictAccess(OpenConfiguration openConfig)
   at HidSharp.Device.Open(OpenConfiguration openConfig)
   at HidSharp.Device.TryOpen(OpenConfiguration openConfig, DeviceStream& stream, Exception& exception); Retrying 1 more times
[Error:Detect]  Failed to open tablet. Make sure you have required permissions to open device streams.
[Error:System.NullReferenceException]   Object reference not set to an instance of an object.
   at TabletDriverLib.DeviceReader`1.Main() in C:\Users\Infinity\OpenTabletDriver\TabletDriverLib\DeviceReader.cs:line 79

however, it doesn't seem to affect how the driver work

sike it wasn't the last issue: avast need to scan every bit or your driver before running it, or it just won't run
Another one: the installer now doesn't work anymore at all, it crash a couple seconds after starting it.

https://youtu.be/WqC-uu4BOmU

Updater closes when internet is broken

When my internet is broken or not paid, i cant open the driver from the installer. my friend do not know how to run a driver without an installer, and have been using the hawku driver for a whole month. with no internet the installer just closes without messages.

I can not download the driver.

Hey. I am from Russia and when I try to download a driver the download speed is very slow. And then it completely stops downloading. The problem is not on my side, everything else downloads well. Perhaps because the Amazon s3 is far away.

Create shortcuts to updater

Description

  • Create shortcuts to updater, instead of relying on the user to remember where it is installed.

Installer doesn't like being installed in directories with spaces + Rate limit

I seem to have found two issues with the Installer.

  • Rate limit after trying to install which lead to installer to close abruptly.
  • Trying to put the installer in a directory with spaces will lead the TabletOpenDriver cannot be able to detect its directory or configuration. You can confirm this when trying to do File > Show Install Folder or in the Console. (ex: C:/Example Folder/)

EventViewer Logs for Rate Limit

Application: OpenTabletDriver.Installer.exe
CoreCLR Version: 4.700.20.6602
.NET Core Version: 3.1.2
Description: The process was terminated due to an unhandled exception.
Exception Info: Octokit.RateLimitExceededException: API rate limit exceeded for XX.XX.XX.XXX. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
   at Octokit.Connection.HandleErrors(IResponse response) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/Connection.cs:line 689
   at Octokit.Connection.RunRequest(IRequest request, CancellationToken cancellationToken) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/Connection.cs:line 668
   at Octokit.Connection.Run[T](IRequest request, CancellationToken cancellationToken) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/Connection.cs:line 652
   at Octokit.ApiConnection.Get[T](Uri uri, IDictionary`2 parameters) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/ApiConnection.cs:line 72
   at InstallerLib.Downloader.GetRepository()
   at InstallerLib.Downloader.GetLatestRelease()
   at InstallerLib.AppInstaller.InstallBinaries()
   at OpenTabletDriver.Installer.MainForm.<>c__DisplayClass0_0.<<-ctor>g__toggleInstallState|3>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at Eto.Wpf.Forms.ApplicationHandler.Run()
   at Eto.Forms.Application.Run(Form mainForm)
   at OpenTabletDriver.Installer.Wpf.MainClass.Main(String[] args)
{"message":"API rate limit exceeded for XX.XX.XX.XXX. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://developer.github.com/v3/#rate-limiting"}

Setting to close the installer after quitting

So i recently upgraded from the portable Driver to the Updater/Installer.
I got two problems after using it for three days now:

  1. When i close the OTD window the updater/installer opens up again and i have to close it, so you have to close to windows if you want to quit
  2. Start-up takes noticeable longer then the portable version

For the first problem you could include a setting to not open the installer, if i am quitting the main window or make it default

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.