{"id":14563674,"url":"https://github.com/danielebruneo/remarkable2-hacks","last_synced_at":"2025-09-04T06:32:58.175Z","repository":{"id":37433815,"uuid":"332876513","full_name":"danielebruneo/remarkable2-hacks","owner":"danielebruneo","description":"A collection of hacks, mods, tools, tips \u0026 tricks, specifically focused on the reMarkable 2","archived":false,"fork":false,"pushed_at":"2021-02-04T22:24:29.000Z","size":85,"stargazers_count":230,"open_issues_count":2,"forks_count":5,"subscribers_count":25,"default_branch":"main","last_synced_at":"2023-11-07T14:06:04.003Z","etag":null,"topics":["remarkable-2","remarkable-tablet","remarkable-tablets"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielebruneo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-25T20:37:11.000Z","updated_at":"2023-11-06T11:14:35.000Z","dependencies_parsed_at":"2022-07-12T14:02:58.283Z","dependency_job_id":null,"html_url":"https://github.com/danielebruneo/remarkable2-hacks","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielebruneo%2Fremarkable2-hacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielebruneo%2Fremarkable2-hacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielebruneo%2Fremarkable2-hacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielebruneo%2Fremarkable2-hacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielebruneo","download_url":"https://codeload.github.com/danielebruneo/remarkable2-hacks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217902477,"owners_count":16248435,"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":["remarkable-2","remarkable-tablet","remarkable-tablets"],"created_at":"2024-09-07T02:04:19.938Z","updated_at":"2024-12-31T03:31:18.366Z","avatar_url":"https://github.com/danielebruneo.png","language":null,"funding_links":[],"categories":["remarkable-tablet"],"sub_categories":[],"readme":"# remarkable2-hacks\nA collection of hacks, mods, tools, tips \u0026amp; tricks, specifically focused on the reMarkable 2\n\n# TOC\n- [remarkable2-hacks](#remarkable2-hacks)\n    + [Disclaimer](#disclaimer)\n  * [Introduction](#introduction)\n  * [Preliminary Steps](#preliminary-steps)\n- [Hacks](#hacks)\n  * [remarkable-hacks](#remarkable-hacks)\n  * [Toltec](#toltec)\n  * [rm2fb](#rm2fb)\n  * [Oxide](#oxide)\n  * [Genie](#genie)\n- [Credits](#credits)\n- [References](#references)\n\n### Disclaimer\nWhile one of the goal of this repo is trying to give you things (and simple procedures) that has been proved to work on a RM2, all you will do is at your own risk and no warranty is given by anyone to anyone.  \nBe aware, you could brick your device if you don't know what you are doing!\n\nAlso, for the moment, all of this is very experimental and still requires some more test to be confirmed as working on every device!\nEveryone who is willing to test this and confirm is welcome :)\n\n## Introduction\n### Why this?\nSo you got your awsome reMarkable 2 because you heard that it could be \"hacked\", improved and customized... now what?  \nWell, you can start here!\n\nMost of the documentation, hacks and tools you can find online are still referred to the reMarkable 1 device and, unfortunately, not directly appliable to your reMarkable 2.  \nSo this repo has the goal to collect all the \"hacks\" and tools that can be used on a reMarkable 2, how to apply them and what to expect.  \nThings are evolving rapidly on the subject, while the userbase grows. Many project are starting to support RM2 and many more will come.  \nSo this is an on-going project. I'll try to keep track of everything is going on for the RM2, but any collaboration is welcome!  \n\n### Hacks?\nFirst let me spend a few words on the term \"hack\" as it's being used here.  \nAmong the reMarkable community the term \"hack\" has been used to point to almost everything that is not writing on the device :)  \nFor many users opening an SSH terminal to the device and editing a file falls under this term. For a seasoned linux user, clearly, that's all but hacking.  \n\nIn one hand, the term \"hack\" in its wider (and original) sense of \"using something in a different way than originally intended\" is appropriate here, for a device that is being marketed as \"just like a paper notebook\".   \nBut we know that under that Eink screen sits a dual core 1.2GHz ARM CPU, with 1GB of RAM, running Linux... and... you can SSH into it by default!!! That's every hacker's dream!  \n\nSo, for the one of you that links the term \"hack\" to \"illegaly gain access\" or the like... no, none of these tools or techniques are actually \"hacking\" anything! Also, none of this illegal! But, be carefull, warranty could be invalidated modding the device.\n\nThe most adequate term for many of these customizations should be \"mod\", while often is simply \"installing custom software on an open device\"... but, it's somehow significant that the way this kind of device are normally \"jailed\" by manufacturers make us think that installing a software is actually hacking it :)\n\n### Contribute / Support / Requests\nPlease use Discussions for any feedback: https://github.com/danielebruneo/remarkable2-hacks/discussions\n\n## Preliminary Steps\nFirst of all let me say that, while I try to make things simple for everyone, a general computer knowledge and some specific Linux shell confidence are required to go forward.  \nA part from that, you will need the following steps:\n\n### USB network interface\nTo enter something, you need a door. And the best one to do this sort of things is the virtual network interface that is provided over USB.  \nIf you plug the USB-C cable into your PC, indeed, a part from recharging your device, a new virtual ethernet interface will be created, ready to estabilish a connection to the device.\n\nThe RM2 will be available at `10.11.99.1`\n\n### SSH into device\nThe first thing you should do then, is SSH into the device.  \nTo do this, first you need to know how to SSH. Have a look here if you don't: https://github.com/danielebruneo/remarkable2-hacks/wiki/How-to-SSH-into-the-RM2\n\nSecond, you'll need the IP address of your RM2.  \nWhile you can SSH into the RM2 through the WiFi connection (and the IP address it gets from there), this is not adviced because the connection could go down during some of the steps that are required to apply those changes.  \nUse the USB interface instead: the RM2 will be at 10.11.99.1 as per above.\n\nThird, you'll need the SSH password.  \nThis is found on your RM2, going into Menu-\u003eSettings-\u003eHelp-\u003eCopyright and licences.  \nAt the end of this page you will find all the IP addresses of your device and the SSH password you'll need.  \nStore it in a safe location (not your RM2)! If you should be in the situation in which the standard UI won't lunch, that could save you from fully bricking your device.\n\n### Back it up\nPlease make sure you have fully synced your device and possibly done a backup of your work by other means before doing any changes to the software.\n\n# Hacks\n## remarkable-hacks\nhttps://github.com/ddvk/remarkable-hacks\n\n\n\u003e [!WARNING]\n\u003e Not all versions are supported. If you have updated your remarkable, you probably have a newer version which is not compatible.\n\u003e Latest version supported:\n\u003e rm2: 2.15.1.1189 (current version is 3.9)\n\n\nThe first and most valuable improvement you should give a try is the remarkable-hacks by ddvk.\n\nThe term hack is quite fitting here. This is, indeed, a binary patch that is being applied upon the original UI (xochitl) binary file.  \n\n### What is it for?\nThis patch adds a lot of improvements to the RM2, things that, once you've tried, you'll think they should have been there since the beginning.\nThe list includes:\n- ability to select many different sizes for every writing/drawing tool\n- two additional customized tool (pen/pencil)\n- pinch to zoom\n- a focus mode, called \"zen mode\"\n- bookmarks\n- clock and battery indicator in the notebook sidebar\n- other useful gestures (for eraser, most recent document, undo, etc.)\n\n### Setup\nThe installation is pretty simple:\n- SSH into device (see above)\n- copy-paste this command  \n`sh -c \"$(wget https://raw.githubusercontent.com/ddvk/remarkable-hacks/master/patch.sh -O-)\" `  \nend press ENTER\n- the modded UI will be launched\n- once you've tried that, you press CTRL+C to stop it and go back to normal\n- if you want to make it permanent, you will be instructed to type Y at the end of the process and the patch will be made persistent\n\nThe patch is pretty safe and it makes copies of the file it changes.  \nSo... you can roll it back if anything goes wrong or if you stop liking it https://github.com/ddvk/remarkable-hacks#revert-in-case-things-go-terribly-wrong\n\nFollow the instructions on the original repo for more info: https://github.com/ddvk/remarkable-hacks.\n\n### Compatibility\nAlso if it was born for the RM1, the hack has been ported succesfull to RM2 since a while, it runs smoothly and automatically detects which kind of device you have during the setup.\n\n## Toltec\nhttps://github.com/toltec-dev/toltec\n\nToltec is a community-maintained repository of free software for the reMarkable tablet. \n\nThis project too was intended for the reMarkable 1 and still does not have a specific channel targeted to RM2, but many packages inthere are starting to run on RM2 as well. Many of them accomplish this thanks to the *rm2fb* tool, a \"compatibility layer\" that allows the RM2 framebuffer (that is slightly different from its predecessor) to be threated like the RM1 one.\n\n### What is it for?\nOnce you setup Toltec, you'll basically have a package manager (opkg) at your hand and a bunch of software (https://toltec-dev.org/stable/) available for being installed with `opkg install \u003cpackagename\u003e`.\n\n### Setup\nSetup is pretty easy here too.\nYou run the following commands (please refer to https://github.com/toltec-dev/toltec#install-it for up-to-date instructions) :\n```\nwget http://toltec-dev.org/bootstrap\necho \"46f556b06f5624b48e974ae040b6213828eff6aa2cc78618a4d8961a27cdc8b3  bootstrap\" | sha256sum -c\nbash bootstrap\n```\nand the setup will start.\n\nPlease notice that:\n- you may need (depending on your firmware) to replace the first line with `wget -k http://toltec-dev.org/bootstrap` bypassing wget SSL checks.\n- the second line performs a check against the actual installer content, so it will vary when a new version is released, so refer to the toltec repo for the latest version\n\n### Compatibility\nWhile not every package there has been tested for RM2 compatibility, many should work, once you setup rm2fb.\n\n### Additional notes\nIf you want to use the *testing* branch, with the latest beta features, follow this instructions:\n- `nano /opt/etc/opkg.conf`\n- edit the last line to read `src/gz toltec https://toltec-dev.org/testing` rather than `src/gz toltec https://toltec-dev.org/stable`\n- run `opkg update`\n\nNow you are using the testing branch. Be aware, things sitting there are not confirmed to be stable yet!\n\n## rm2fb\nhttps://github.com/ddvk/remarkable2-framebuffer\n\nAs previously said, this is a sort of compatibility interface to allow application intended to run on RM1 to be run smoothly on a RM2.  \nThe major software difference between the two is, indeed, the framebuffer to interact with the screen, that has changed significantly with the new screen.\n\n### What is it for?\nThis software sits in the middle and lets older app interact with it like it was an RM1 framebuffer.\n\n### Setup\nIf you have installed Toltec (if you don't, go above and do it), installing rm2fb is as simple as `opkg install rm2fb`.\n\n### Compatibility\nThis is specifically for RM2 and does what it promises. Majority of the RM1 apps will be able to work with this installed.  \nThis does not mean that all of them will work well, though.  \nHere's a list of tested apps: https://github.com/ddvk/remarkable2-framebuffer/issues/14.\n\n## Oxide\nOnce you have the ability to install new software, you will need a way to launch those (and go back to main screen), a part from manually launch it from an ssh session.  \nThat's what a Launcher does. And Oxide is one of those (among with draft, remux, etc).\n\n### Setup\nThrough Toltec you can simply do `opkg install oxide`.  \nOnce the setup is complete you will be instructed to do the following if you want oxide to be your default launcher:\n- `systemctl disable --now xochitl`\n- `systemctl enable --now tarnish`\n\nIf you want to revert it back, just do:\n- `systemctl disable --now tarnish`\n- `systemctl enable --now xochitl`\n\n### Compatibility\nBETA!!!\n\nThe RM2 support on Oxide is still being properly implemented and it's still on a \"beta\" phase. But it kinda works.  \nSome bug has to be expected!!!  \n(Please see below!)\n\nOne of the main thing to solve is that Oxide was thought to work together with the physical buttons the RM1 had, while the RM2 has none.  \nFor instance, without the buttons, once you launch an app, you won't be able to go back to the launcher if the app has no exit button.  \nTo help us handling that, Genie comes to the resque (see below). We'll set a gesture (two fingers tapping) for that!\n\n### Bugs\nThe main known bug is that the device come back from standby with a blank screen.  \nThis happens specifically if you do not set a PIN for the lockscreen when instructed.\nhttps://github.com/Eeems/oxide/issues/142\n\nIf you get a blank screen awakening RM2, tap with two fingers and, thanks to genie, you'll be back to Oxide.  \nIf you want to work around that, for the time being, you'll need to setup a PIN.\n\nIf you already went through the setup and did not selected a PIN, you can do it now running the following:\n```\nsystemctl stop tarnish\nrm /home/root/.config/Eeems/decay.conf\nsystemctl start tarnish\n```\n\nUPDATE:   \nAnother temporary solution, if you do not want a lock PIN, is to run this:\n```\ncd /opt/usr/share/applications/\nmv codes.eeems.decay.oxide codes.eeems.decay.oxide.disabled\nsystemctl restart tarnish\n```\nThis will solve the issue, but this fix will eventually be removed by update of oxide.\n\n## Genie\nhttps://github.com/rmkit-dev/rmkit/tree/master/src/genie\n\nGenie is a config based gesture launcher.\n\n### What is it for?\nIt allow you to execute commands when a gesture is performed.\nThe main reason we are going to use it is, in combination with our Oxide Launcher, to handle the \"Back to the launcher\" action.\n\n### Setup\n- With Toltec installed, run `opkg install genie`.\n- edit the config file with `nano /opt/etc/genie.conf`\n- copy-paste the following\n```\ngesture=tap\nfingers=2\ncommand=/opt/bin/rot apps call previousApplication\nduration=1\n```\n- save\n- restart genie with `systemctl restart genie`\n- now if you tap with two fingers for more than a second, you'll go back to the launcher\n\n# Credits\nThis repo is freely inspired by https://github.com/reHackable/awesome-reMarkable, awsome collection, but not specifically focused on RM2.\nA big thanks also goes to the amazing work of ddvk at https://github.com/ddvk/remarkable-hacks.\n\n# References \n- https://github.com/reHackable/awesome-reMarkable\n- https://github.com/ddvk/remarkable-hacks\n- https://github.com/ddvk/remarkable2-framebuffer\n- https://github.com/rmkit-dev/rmkit\n- https://github.com/toltec-dev/toltec\n- https://github.com/Eeems/oxide\n- https://remarkablewiki.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielebruneo%2Fremarkable2-hacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielebruneo%2Fremarkable2-hacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielebruneo%2Fremarkable2-hacks/lists"}