Giter VIP home page Giter VIP logo

iptsd's Introduction

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, and create standard input events from it using uinput devices.

The following kernel drivers are supported:

  • ipts
  • ithc
  • spi-hid

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 <your distro>-latest.

Building

To build IPTSD from source, you need to install the following dependencies:

  • A C and a C++ compiler
  • meson
  • ninja
  • CLI11
  • fmt
  • gsl
  • hidrd
  • inih
  • spdlog

To build the debugging tools you need to install a few more dependencies. The debugging tools will be enabled automatically when these are detected:

  • cairomm
  • SDL2

Most of the dependencies can be downloaded and included automatically by meson, should your distribution not include them.

$ 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:

$ sudo ./etc/iptsd-find-hidraw

You can then run iptsd with the device path as a launch argument:

$ sudo ./build/src/daemon/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:

$ sudo ninja -C build install

On Fedora (or any other SELinux enabled distribution) you also need to fix the SELinux contexts:

$ 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.

iptsd's People

Contributors

libanp avatar ls-r avatar m1nicrusher avatar martin-lueker avatar np-chaonay avatar quo avatar qzed avatar radams15 avatar stolld avatar surli812 avatar tmarkov avatar

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.