{"id":15038698,"url":"https://github.com/opentabletdriver/opentabletdriver","last_synced_at":"2025-05-13T22:00:20.485Z","repository":{"id":37040395,"uuid":"211763756","full_name":"OpenTabletDriver/OpenTabletDriver","owner":"OpenTabletDriver","description":"Open source, cross-platform, user-mode tablet driver","archived":false,"fork":false,"pushed_at":"2025-04-26T13:34:06.000Z","size":11676,"stargazers_count":2998,"open_issues_count":357,"forks_count":376,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-29T13:16:37.700Z","etag":null,"topics":["cross-platform","csharp","dotnet-core","driver","userspace-driver"],"latest_commit_sha":null,"homepage":"https://opentabletdriver.net/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenTabletDriver.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"patreon":"infinityghost","ko_fi":"infinityghost","custom":["https://ko-fi.com/x9void"]}},"created_at":"2019-09-30T02:58:36.000Z","updated_at":"2025-04-27T18:30:07.000Z","dependencies_parsed_at":"2023-02-14T09:20:52.902Z","dependency_job_id":"44a37f84-a61c-4140-a3b0-caec4843d907","html_url":"https://github.com/OpenTabletDriver/OpenTabletDriver","commit_stats":{"total_commits":3026,"total_committers":140,"mean_commits":"21.614285714285714","dds":0.7144745538664904,"last_synced_commit":"7ec0f7ff69379b625eeed4a8527d3983b796e228"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTabletDriver%2FOpenTabletDriver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTabletDriver%2FOpenTabletDriver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTabletDriver%2FOpenTabletDriver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTabletDriver%2FOpenTabletDriver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTabletDriver","download_url":"https://codeload.github.com/OpenTabletDriver/OpenTabletDriver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036806,"owners_count":22003651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","csharp","dotnet-core","driver","userspace-driver"],"created_at":"2024-09-24T20:39:44.230Z","updated_at":"2025-05-13T22:00:20.459Z","avatar_url":"https://github.com/OpenTabletDriver.png","language":"C#","funding_links":["https://patreon.com/infinityghost","https://ko-fi.com/infinityghost","https://ko-fi.com/x9void"],"categories":[],"sub_categories":[],"readme":"[![Actions Status](https://github.com/OpenTabletDriver/OpenTabletDriver/workflows/.NET%20CI/badge.svg)](https://github.com/OpenTabletDriver/OpenTabletDriver/actions) [![Total Download Count](https://img.shields.io/github/downloads/OpenTabletDriver/OpenTabletDriver/total.svg)](https://github.com/OpenTabletDriver/OpenTabletDriver/releases/latest)\n\n# OpenTabletDriver\n\nEnglish | [Español](docs/README_ES.md) | [Français](docs/README_FR.md) | [Deutsch](docs/README_DE.md) | [Português-BR](docs/README_PTBR.md) | [Nederlands](docs/README_NL.md) | [한국어](docs/README_KO.md) | [Русский](docs/README_RU.md) | [简体中文](docs/README_CN.md) | [繁體中文](docs/README_TW.md) | [Ελληνικά](docs/README_EL.md) | [Magyar](docs/README_HU.md)\n\nOpenTabletDriver 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.\n\n\u003cp align=\"middle\"\u003e\n  \u003cimg src=\"https://i.imgur.com/XDYf62e.png\" width=\"410\" align=\"middle\"/\u003e\n  \u003cimg src=\"https://i.imgur.com/jBW8NpU.png\" width=\"410\" align=\"middle\"/\u003e\n  \u003cimg src=\"https://i.imgur.com/ZLCy6wz.png\" width=\"410\" align=\"middle\"/\u003e\n\u003c/p\u003e\n\n# Supported Tablets\n\nAll 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.\n\n- [Supported Tablets](https://opentabletdriver.net/Tablets)\n\n# Installation\n\n- [Windows](https://opentabletdriver.net/Wiki/Install/Windows)\n- [Linux](https://opentabletdriver.net/Wiki/Install/Linux)\n- [MacOS](https://opentabletdriver.net/Wiki/Install/MacOS)\n\n# Running OpenTabletDriver binaries\n\nOpenTabletDriver 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 platform\u003csup\u003e1\u003c/sup\u003e. 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.\n\n\u003e \u003csup\u003e1\u003c/sup\u003eWindows 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.\n\n## Building OpenTabletDriver from source\n\nThe requirements to build OpenTabletDriver are consistent across all platforms. Running OpenTabletDriver on each platform requires different dependencies.\n\n### All platforms\n\n- .NET 8 SDK (can be obtained from [here](https://dotnet.microsoft.com/download/dotnet/8.0) - You want the SDK for your platform, Linux users should install via package manager where possible)\n\n#### Windows\n\nRun `build.ps1` to produce binary builds to 'bin' folder. These builds will run in portable mode by default.\n\n#### Linux\n\nRequired packages (some packages may be pre-installed for your distribution):\n\n- libx11\n- libxrandr\n- libevdev2\n- GTK+3\n\nRun `./eng/linux/package.sh`. If a \"package\" build is desired,\nthere is official support for the following packaging formats:\n\n| Package Format | Command |\n| --- | --- |\n| Generic binary tarball (`.tar.gz`) | `./eng/linux/package.sh --package BinaryTarBall` |\n| Debian package (`.deb`) | `./eng/linux/package.sh --package Debian` |\n| Red Hat package (`.rpm`) | `./eng/linux/package.sh --package RedHat` |\n\nThe generic binary tarball is designed to be extracted from the root directory.\n\n#### MacOS [Experimental]\n\nRun `./eng/macos/package.sh --package true`.\n\n# Features\n\n- Fully platform-native GUI\n  - Windows: `Windows Presentation Foundation`\n  - Linux: `GTK+3`\n  - MacOS: `MonoMac`\n- Fully fledged console tool\n  - Quickly acquire, change, load, or save settings\n  - Scripting support (json output)\n- Absolute cursor positioning\n  - Screen area and tablet area\n  - Center-anchored offsets\n  - Precise area rotation\n- Relative cursor positioning\n  - px/mm horizontal and vertical sensitivity\n- Pen bindings\n  - Tip by pressure bindings\n  - Express key bindings\n  - Pen button bindings\n  - Mouse button bindings\n  - Keyboard bindings\n  - External plugin bindings\n- Saving and loading settings\n  - Auto-loads user settings via `settings.json` in the active user `%localappdata%` or `.config` settings root directory.\n- Plugins\n  - Filters\n  - Output modes\n  - Tools\n\n# Contributing to OpenTabletDriver\n\nIf you wish to contribute to OpenTabletDriver, check out the [issue\ntracker](https://github.com/OpenTabletDriver/OpenTabletDriver/issues). When\ncreating pull requests, follow the guidelines outlined in our [contribution\nguidelines](https://github.com/OpenTabletDriver/OpenTabletDriver/blob/master/CONTRIBUTING.md).\n\nIf you have any issues or suggestions, [open an issue\nticket](https://github.com/OpenTabletDriver/OpenTabletDriver/issues/new/choose)\nand fill out the template with relevant information. We welcome both bug\nreports, as well as new tablets to add support for. In many cases adding support\nfor a new tablet is quite easy.\n\nFor issues and PRs related to OpenTabletDriver's [web page](https://opentabletdriver.net), see the repository [here](https://github.com/OpenTabletDriver/opentabletdriver.github.io).\n\n### Supporting a new tablet\n\nIf you'd like us to add support for a new tablet, open an issue or join our\n[discord](https://discord.gg/9bcMaPkVAR) asking for support. *We generally\nprefer that adding support for a tablet be done through discord, due to the\nback-and-forth involved*.\n\nWe'll have you do a few things like making a recording of the data sent by your\ntablet using our built-in tablet debugging tool, testing features of the tablet\n(on-tablet buttons, pen buttons, pen pressure, etc) with different configs we'll\nsend you to try.\n\nYou're also of course welcome to open a PR adding support for it yourself, if\nyou have a good grasp on what's involved.\n\nGenerally this process is relatively easy, especially if it's for a tablet\nmanufacturer we already have support for on other tablets.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentabletdriver%2Fopentabletdriver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopentabletdriver%2Fopentabletdriver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentabletdriver%2Fopentabletdriver/lists"}