Skip to content

fenollp/reMarkable-tools

Repository files navigation

reMarkable-tools

Tools for the reMarkable paper tablet that I or others develop.

Donate

Feel free to donate to me through paypal.me/pierrefenoll1
Make sure to describe what I should be working on :)

Whiteboard HyperCard ~ live collaboration/drawing/chat/whiteboarding

Easiest installation through toltec's opkg

opkg update && opkg install whiteboard-hypercard

Self-hosting whiteboard-server / hosting private rooms

On a machine with IP 1.2.3.4 reachable over the Internet, run:

git clone https://github.com/fenollp/reMarkable-tools.git && cd reMarkable-tools && make debug

Now on your tablet, run the whiteboard Rust application with --host, as in:

export WHITEBOARD_WEBHOST=http://1.2.3.4:10001/screenshare
.../whiteboard --host=http://1.2.3.4:10000

Finally, docker compose should show you something akin to:

nats_1        | [1] 2020/11/03 14:26:24.435123 [DBG] 172.20.0.3:60308 - cid:1 - Client Ping Timer
nats_1        | [1] 2020/11/03 14:26:24.435145 [DBG] 172.20.0.3:60308 - cid:1 - Delaying PING due to remote ping 2s ago
nats_1        | [1] 2020/11/03 14:28:22.270230 [TRC] 172.20.0.3:60308 - cid:1 - <<- [PING]
nats_1        | [1] 2020/11/03 14:28:22.270306 [TRC] 172.20.0.3:60308 - cid:1 - ->> [PONG]
nats_1        | [1] 2020/11/03 14:28:24.435532 [DBG] 172.20.0.3:60308 - cid:1 - Client Ping Timer
nats_1        | [1] 2020/11/03 14:28:24.435701 [DBG] 172.20.0.3:60308 - cid:1 - Delaying PING due to remote ping 2s ago
wb            | 2020-11-03T14:28:41.402Z	INFO	hypercard_whiteboard/rpc_recv_events.go:32	handling RecvEvent	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584"}
wb            | 2020-11-03T14:28:41.402Z	DEBUG	hypercard_whiteboard/rpc_recv_events.go:46	listening for events	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584", "bk": "hc.wb.1.evt.living-room.*.*"}
wb            | 2020-11-03T14:28:41.402Z	DEBUG	hypercard_whiteboard/nats.go:44	encoding	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584", "event": {"created_at":1604413721402953665,"by_user_id":"c91dd90e-77b8-477c-94f7-a25ff0e5b584","in_room_id":"living-room","Event":{"UserJoinedTheRoom":true}}}
wb            | 2020-11-03T14:28:41.403Z	DEBUG	hypercard_whiteboard/nats.go:50	encoded	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584", "bytes": 63, "in": "160.551µs"}
wb            | 2020-11-03T14:28:41.403Z	DEBUG	hypercard_whiteboard/nats.go:56	publishing	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584", "rk": "hc.wb.1.evt.living-room.c91dd90e-77b8-477c-94f7-a25ff0e5b584.userjoinedroom"}
wb            | 2020-11-03T14:28:41.403Z	DEBUG	hypercard_whiteboard/nats.go:62	published	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584", "rk": "hc.wb.1.evt.living-room.c91dd90e-77b8-477c-94f7-a25ff0e5b584.userjoinedroom", "in": "6.926µs"}
nats_1        | [1] 2020/11/03 14:28:41.403146 [TRC] 172.20.0.3:60308 - cid:1 - <<- [SUB hc.wb.1.evt.living-room.*.*  1]
nats_1        | [1] 2020/11/03 14:28:41.403446 [TRC] 172.20.0.3:60308 - cid:1 - <<- [PUB hc.wb.1.evt.living-room.c91dd90e-77b8-477c-94f7-a25ff0e5b584.userjoinedroom 63]
nats_1        | [1] 2020/11/03 14:28:41.403472 [TRC] 172.20.0.3:60308 - cid:1 - <<- MSG_PAYLOAD: ["\b\xc1\x9f\xf1\x87\xf7\xb8\x81\xa2\x16\x12$c91dd90e-77b8-477c-94f7-a25ff0e5b584\x1a\vliving-room0\x01"]
nats_1        | [1] 2020/11/03 14:28:41.403491 [TRC] 172.20.0.3:60308 - cid:1 - ->> [MSG hc.wb.1.evt.living-room.c91dd90e-77b8-477c-94f7-a25ff0e5b584.userjoinedroom 1 63]
wb            | 2020-11-03T14:28:41.404Z	DEBUG	hypercard_whiteboard/rpc_recv_events.go:100	sent count event	{"": "c91dd90e-77b8-477c-94f7-a25ff0e5b584", "in": "73.035µs"}

koreader

find ~ -name '*.sdr'

Tools

Attention

Updates wipe ~

root partition is small

remarkable: ~/ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               223.0M    175.0M     32.3M  84% /

so routinely run

journalctl --vacuum-size=2M

HyperCards

Visible rectangular elements that can be drawn on/dragged/zoomed/rotated/connected/duplicated.

  • tools / modifiers are square cards snapping to the edges of the screen
    • henceforth mentioned as [ToolX] for tool X
    • using them / modifying them by a press held while using the pencil * similar to Minecraft's mix & match: action through combination
    • a [?] tool always hangs in a corner, pressing = shows description text (like crosswords)
    • modification (reorganization / addition / removal) through drawing and pressing
    • tools icons can be drawn too / loaded from a font / loaded from a builtin set of images
    • pen & fingers are different devices for different purposes
      • => drag/move and pinch/zoom (think Apple trackpad gestures) not a pen thing
  • whiteboard card
    • rectangle that can be moved by dragging on the edges
    • zoom/rotation by dragging in the area (not the edges)
      • MIGHT: zooming hard moves to another user's view? --> canvas is a window/camera view that can move in 2+1D
    • some bi-directional communication with a networked service
      • user joins a room and shares their live drawings
      • It is possible to combine a [Selection]-ed group of strokes and [Digitize] to ask service for translation
  • [Digitize]
    • connects to a distant machine or achieves its AI inference on-tablet
    • takes a few strokes in and outputs text+area / shape+area
  • [Selection]
    • draw approximately on one or more strokes
    • creates a group that can be used with other modifiers
    • press another tool before unpressing this one to pass the group to the other tool
  • [Image]
    • add an image to a layer
      • should be able to dim that layer
    • select the tool's image with [Setter] > [Image] --> opens image picker
    • image should be draggable + zoomable (= two-finger gesture on iOS Reddit app's image viewer)
      • should be able to draw on top of said image

marauder