Hi folks! I threw together an expression for building the old official-yet-discontinued-yet-still-working reMarkable desktop client for Linux. For those unsure what reMarkable is, here’s their site.
I’m pretty sure this doesn’t fit well at nixpkgs seeing as its discontinued and no longer officially supported, so I thought I’d share it here instead:
# `remarkable-client.nix`
#
# Change the `src` field to your local copy of the `remarkable-linux-client.deb` package.
#
# Next, build with:
#
# ```
# nix-build -e "with import <nixpkgs> {}; libsForQt5.callPackage ./remarkable-client.nix {}"
# ```
#
# Then run with:
#
# ```
# ./result/bin/reMarkable
# ```
{ lib
, stdenv
, autoPatchelfHook
, dpkg
, fetchurl
, karchive
, qtbase
, qtgraphicaleffects
, qtquickcontrols2
, qtsvg
, qtwebsockets
, wrapQtAppsHook
}:
stdenv.mkDerivation {
pname = "remarkable-client";
version = "2017-10-27";
src = ./remarkable-linux-client.deb;
nativeBuildInputs = [
autoPatchelfHook
dpkg
wrapQtAppsHook
];
buildInputs = [
karchive
qtbase
qtgraphicaleffects
qtquickcontrols2
qtsvg
qtwebsockets
];
unpackPhase = "true";
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/lib
dpkg -x $src $out
cp $out/usr/bin/reMarkable $out/bin/
cp $out/usr/lib/libpdfium.so.1 $out/lib/
rm -rf $out/usr/
'';
meta = with lib; {
homepage = "https://remarkable.com";
platforms = platforms.linux;
};
}
Caveats
No Official Executable Download
The old deb file distributed by reMarkable has since been taken down. The next best thing I could find was a Google Drive URL which the remarkable-client
AUR package currently seems to point to - see here. As a result, you currently have to fetch the .deb
file and change src
yourself. I’m unsure if there was ever an unfree-yet-distributable license for the old client or not.
Partial Rendering Bug
For some reason the client is unable to display or render content that was drawn or written with the official pen. This includes the thumbnail previews, as well as attempts at rendering to PDF or PNG. Normal PDF documents appear to show up fine both in the previews and renders.
I’m not sure what’s going on here, but I’d love to solve this so that I can use the device for signing, drawing, filling out exercises, etc. My suspicion is that I must be missing required Qt library or something along these lines, but I’ve been unable to track this down as of yet…
If anyone has any ideas on solving this, suggestions would be more than welcome!