Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hmtheboy154/iptsd
Userspace daemon for Intel Precise Touch & Stylus, ported to Android-x86
https://github.com/hmtheboy154/iptsd
Last synced: 7 days ago
JSON representation
Userspace daemon for Intel Precise Touch & Stylus, ported to Android-x86
- Host: GitHub
- URL: https://github.com/hmtheboy154/iptsd
- Owner: hmtheboy154
- License: gpl-2.0
- Fork: true (linux-surface/iptsd)
- Created: 2021-01-02T14:35:06.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-18T01:02:34.000Z (over 1 year ago)
- Last Synced: 2024-08-02T15:05:12.756Z (3 months ago)
- Language: C++
- Homepage:
- Size: 1.57 MB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - hmtheboy154/iptsd - Userspace daemon for Intel Precise Touch & Stylus, ported to Android-x86 (C++)
README
# IPTSD
This is the userspace touch processing daemon for Microsoft Surface devices using Intel Precise Touch technology.
The daemon will read incoming HID reports containing raw capacitive touch data, stylus coordinates and DFT pen measurements, and create standard input events from it using uinput devices.
At the moment, only systemd based distributions are properly supported. The daemon itself does not depend on the service manager in any ways, but it needs to know which hidraw device corresponds to the touchscreen. The easiest way to do this is with udev and a parameterized service file, which only systemd seems to support.
### Installing
IPTSD is included in the linux-surface repository. This is the recommended way of installing it.
**Important:** Support on Debian based distributions only goes back to the latest LTS release (Debian 11 and Ubuntu 22.04).
If you want to try out changes that are not yet released, GitHub Actions builds Arch Linux, Debian and Fedora packages for every commit. You'll need to be signed-in to Github, then go to https://github.com/linux-surface/iptsd/actions, select the latest successful workflow and download the artifact named `-latest`.
### Building
To build IPTSD from source, you need to install the following dependencies:
* A C and a C++ compiler
* meson
* ninja
* CLI11
* Eigen3
* fmt
* inih / INIReader
* gsl
* hidrd
* spdlogTo build the plotting tools for visualizing data, you need to install a few more dependencies.
* cairomm
* SDL2Most of the dependencies can be downloaded and included automatically by meson, should your distribution not include them.
```bash
$ git clone https://github.com/linux-surface/iptsd
$ cd iptsd
$ meson build
$ ninja -C build
```To run iptsd, you need to determine the ID of the hidraw device of your touchscreen:
```bash
$ sudo ./etc/iptsd-find-hidraw
```You can then run iptsd with the device path as a launch argument:
```bash
$ sudo ./build/src/iptsd /dev/hidrawN
```Alternatively, you can install the files you just built to the system. After a reboot, iptsd will be automatically started by udev:
```bash
$ sudo ninja -C build install
```On Fedora (or any other SELinux enabled distribution) you also need to fix the SELinux contexts:
```bash
$ sudo semanage fcontext -a -t systemd_unit_file_t -s system_u /usr/lib/systemd/system/[email protected]
$ sudo semanage fcontext -a -t usr_t -s system_u '/usr/local/bin/ipts.*'$ sudo restorecon -vF /usr/lib/systemd/system/[email protected]
$ sudo restorecon -vF /usr/local/bin/ipts*
```This is only neccessary when using `ninja install`. When you install one of the packages from GitHub Actions, or build your own package, everything will just work.