Skip to content

fenollp/reMarkable-tools

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
December 4, 2023 11:03
December 4, 2023 11:03
July 22, 2021 17:06
srv
December 4, 2023 11:03
December 4, 2023 11:03
October 4, 2023 17:32
December 4, 2023 11:03
July 11, 2023 21:25
April 18, 2020 23:50
December 4, 2023 11:03

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