goosepaper is a utility that delivers a daily newspaper to your remarkable tablet. that's cute!
you can include RSS feeds, Mastodon feeds, news articles, wikipedia articles-of-the-day, weather, and more. I read it when I wake up so that I can feel anxious without having to get my phone.
[New!] In response to feedback, I'm collecting anonymous survey responses. Do you want a goosepaper delivered but without requiring any code? Please let me know your thoughts!
By far the easiest way to get started with Goosepaper is to use Docker.
Write a paper config file to tell Goosepaper what news you want to read. An example is provided in example-config.json.
From the directory that has the config file in it, run the following:
docker run -it --rm -v $(pwd):/goosepaper/mount j6k4m8/goosepaper goosepaper -c mount/example-config.json -o mount/Goosepaper.pdf(where example-config.json is the name of the config file to use).
If you want to both generate the PDF and deliver it to your reMarkable tablet, pass --deliver. You must additionally mount your ~/.rmapy file:
docker run -it --rm \
-v $(pwd):/goosepaper/mount \
-v $HOME/.rmapy:/root/.rmapy \
j6k4m8/goosepaper \
goosepaper -c mount/example-config.json -o mount/Goosepaper.pdf --deliverOtherwise, you can now email this PDF to your tablet, perhaps using ReMailable.
this tool uses weasyprint to generate PDFs. After installing the system prerequisites below, sync the project environment with uv sync.
more details here.
Goosepaper now targets Python 3.10+.
brew install cairo pango gdk-pixbuf libffisudo apt-get install build-essential python3-dev python3-pip python3-setuptools python3-wheel python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-infoFollow these instructions carefully.
From inside the goosepaper repo,
uv syncThen run Goosepaper through uv:
uv run goosepaper --config myconfig.json --output mypaper.pdfYou can customize your goosepaper by editing a paper config file. If you do not pass --config, Goosepaper looks for ./goosepaper.json.
uv run goosepaper --config myconfig.json --output mypaper.pdfIf you don't pass an output flag, one will be generated based upon the time of generation.
The paper config uses a strict v2 schema with one file per paper. A minimal example looks like this:
{
"version": 2,
"paper": {
"style": "FifthAvenue",
"font_size": 14
},
"sources": [
{ "type": "rss", "url": "https://feeds.npr.org/1001/rss.xml", "limit": 5 },
{ "type": "reddit", "subreddit": "news" }
],
"delivery": {
"folder": "Morning Brief"
}
}Delivery still happens only when you pass --deliver. If you want user-level delivery defaults, create ~/.config/goosepaper/config.json:
{
"version": 2,
"delivery_defaults": {
"folder": "News",
"replace_mode": "nocase",
"cleanup": false
}
}CLI flags override the config for a single run:
uv run goosepaper --deliver --folder Inbox --replace-mode exactAn example config file is included here: example-config.json.
Check out this example PDF, generated on Nov 1 2020.
existing story providers (want to write your own?)
- Wikipedia Top News / Current Events
- Mastodon Toots
- Weather. These stories appear in the "ear" of the front page, just like a regular ol' newspaper
- RSS Feeds
- Reddit Subreddits
Do you have another kind of tablet? You may generate a print-ready PDF which you can use on another kind of robot as well! Just remove the last line of main.py.
yes! you may do anything that you find to be fun and welcoming :)
Check out the styles.Styles enum in the goosepaper library. You will find there what you seek.
I do not think so, but it is a good question!
yes you may! you can add a list of usernames to the feed generator and it will make a print-ready version of twitter. this is helpful for when you are on twitter on your laptop but wish you had Other Twitter as well, in print form.
no! twitter has changed and now no one can play nicely with them. sorry! it is sad!
- remailable: Email PDF documents to your reMarkable tablet
- rmapy fork: My fork of rmapy, with added features and bugfixes