This was mostly sourced from @mkborregaard’s instructions in this conversation.
TL;DR: You need to compile a custom driver that interprets the keyboard’s keys according according to your desired layout. Once you’ve copied the driver to your remarkable via SSh and restarted it, it should just work™️.
-
first, clone the remarkable linux kernel
git clone https://github.com/reMarkable/linux remarkable-linux-kernel cd remarkable-linux-kernel
-
make the layout changes you need to in
drivers/misc/rm-pogo/pogo_kpad.c
-
then compile it using a docker image that includes the necessary toolchain
docker pull eeems/remarkable-toolchain:latest docker run -v $(pwd):/remarkable-linux-kernel -ti eeems/remarkable-toolchain:latest
-
the following commands should be run in the container shell that opens after the previous command
source `find /opt/codex -name environment-setup-cortexa7hf-neon-remarkable-linux-gnueabi` touch .scmversion cp arch/arm/configs/zero-sugar_defconfig .config make olddefconfig make drivers/misc/rm-pogo/pogo.ko make modules_prepare exit # the driver should be compiled by this point, and you can safely exit the container's shell
-
-
finally, copy the driver onto your remarkable via ssh[1]
# assuming you've set up your ssh config with a `remarkable` alias scp drivers/misc/rm-pogo/pogo.ko remarkable:`ssh remarkable "find /lib/modules -name pogo.ko"`
-
disconnect and restart remarkable.
1. Instructions for connecting to remarkable via SSH: https://remarkable.guide/guide/access/ssh.html