{"id":13771332,"url":"https://github.com/funkey/recept","last_synced_at":"2025-05-11T03:33:11.969Z","repository":{"id":140751743,"uuid":"310991434","full_name":"funkey/recept","owner":"funkey","description":"Pen event interception for line smoothing on the reMarkable 2 tablet","archived":false,"fork":false,"pushed_at":"2023-05-04T20:25:49.000Z","size":1998,"stargazers_count":162,"open_issues_count":13,"forks_count":13,"subscribers_count":20,"default_branch":"main","last_synced_at":"2024-05-18T19:37:02.307Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funkey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2020-11-08T05:19:05.000Z","updated_at":"2024-04-24T16:32:43.000Z","dependencies_parsed_at":"2024-01-06T21:58:25.878Z","dependency_job_id":null,"html_url":"https://github.com/funkey/recept","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkey%2Frecept","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkey%2Frecept/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkey%2Frecept/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funkey%2Frecept/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funkey","download_url":"https://codeload.github.com/funkey/recept/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514352,"owners_count":21920327,"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":[],"created_at":"2024-08-03T17:00:50.312Z","updated_at":"2025-05-11T03:33:11.685Z","avatar_url":"https://github.com/funkey.png","language":"C++","readme":"ReCept: Remarkable Intercept\n============================\n\nA small library to intercept and smooth pen events on the [reMarkable\n2](https://remarkable.com/) tablet. This fixes the infamous \"jagged lines\"\nissue some users of the reMarkable 2 experience.\n\n![before vs after](images/before_after.png)\n\nDisclaimer\n----------\n\nThis is not an official reMarkable product, and I am in no way affiliated with\nreMarkable. I release this library in the hope that it is helpful to others. I\ncan make no guarantee that it works as intended. There might be bugs leading to\ndevice crashes.\n\nInstallation\n------------\n\nYou need access to a Linux machine to install the fix. On that machine:\n\n1. Connect your reMarkable 2 with the USB-C cable.\n2. Clone this repository, i.e., run `git clone https://github.com/funkey/recept` in a terminal.\n3. Change into the repository with `cd recept`.\n4. Run `./install.sh`.\n\nThe install script will make several `ssh` connections to your device. For\nthat, it needs to know the IP address or hostname of your device. If you\nhaven't set up public key authentication before, it will also ask for a\npassword. You can find both the IP address and password in \"Settings\" -\u003e \"Help\"\n-\u003e \"Copyrights and licenses\", at the bottom.\n\nIf you want to uninstall the fix, simply enter `0` when asked for the smoothing\nvalue in the install script.\n\nWill it increase the latency?\n-----------------------------\n\nIn short, yes. The pen events themselves are not delayed (the filter itself\nconsists only of a handful of integer operations, which are likely negligible).\nHowever, since we forward the average position of the past `N` events instead\nof the actual event, the reported position is somewhere close to the `N/2`-last\nevent received. How much that actually increases latency depends on how fast\nevents come in. As an example, if the pen sends 1000 events per second and the\nfilter size `N` is 8, the mean will trail the actual pen position by around 4\nmilliseconds. This calculation assumes isochronous events, which might not be\nthe case.\n\nHow does it work?\n-----------------\n\n`ReCept` uses the `LD_PRELOAD` trick, which in this case intercepts calls to\n`open` and `read`. Whenever `/dev/input/event1` is opened by `xochitl` (the GUI\nrunning on the tablet), `librecept` remembers the file handle. Subsequent\n`read`s from this handle are transparently filtered with a moving average of\nsize 16 by default.\n","funding_links":[],"categories":["Device Tools"],"sub_categories":["Launchers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunkey%2Frecept","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunkey%2Frecept","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunkey%2Frecept/lists"}