Customize & Sync
How to use KOReader Sync, the sleep screen, custom fonts, and screenshots.
CrossPoint can sync reading positions with a KOReader-compatible sync server, and is interoperable with KOReader apps or devices that use the same server/account.
Option A: Free public server ( sync.koreader.rocks )
- (If needed) Register a user account once. If you already have a KOReader sync account you can skip this step.
- On the device go to Settings → System → KOReader Sync and enter your Username and Password. Enter the password as plain text — CrossPoint computes the MD5 hash internally.
- Leave Sync Server URL empty or set it to
https://sync.koreader.rocks, then run Authenticate. - While reading, press OK to open the reader menu and pick Sync Progress.
- Apply Remote: Jump to the remote progress position
- Upload Local: Upload the current progress position
Option B: Self-hosted (Docker Compose)
You can also run a sync server on your home network:
mkdir -p kosync-quickstart && cd kosync-quickstart
cat > compose.yaml <<'YAML'
services:
kosync:
image: koreader/kosync:latest
ports:
- "7200:7200"
- "17200:17200"
volumes:
- ./data/redis:/var/lib/redis
environment:
- ENABLE_USER_REGISTRATION=true
restart: unless-stopped
YAML
docker compose up -d
# 또는: podman compose up -d- Verify server:
curl -H "Accept: application/vnd.koreader.v1+json" "http://<server-IP>:17200/healthcheck"→{"state":"OK"} - User registration uses the MD5-hashed password (default KOReader kosync behavior).
- On the device set Sync Server URL to
http://<server-IP>:17200(orhttps://<server-IP>:7200when using HTTPS port 7200).
Security warning: Sending an MD5 password over plain HTTP is not safe. If the device's traffic ever leaves your LAN or you use public WiFi, switch to HTTPS (https://<server-IP>:7200) and create a sync-only account — don't reuse your main account password.
Tip: When KOReader Sync is enabled, opening the chapter selection screen also shows the chapter name of the remote progress position so you can easily see where you left off on another device.
The image displayed depends on the sleep screen setting:
- Dark (default): CrossPoint logo on a dark background
- Light: CrossPoint logo on a white background
- Custom: User image from the SD card (see below). Falls back to Dark when there is no image
- Cover: Cover of the currently open book. Falls back to Dark when no book is open
- Cover + Custom: Show the cover only while a book is open, otherwise fall back to Custom (v1.2.0)
- None: Blank screen
When using Custom or Cover + Custom, place your images on the SD card:
- Multiple images (recommended): Create a
.sleepfolder (hidden) on the SD card root and drop in any number of.bmpimages. One is picked at random each time the device sleeps. (For backwards compatibility, asleepfolder is also recognized as a fallback.) - Single image: Place a
sleep.bmpfile in the root directory. Used as a fallback when no valid image is found in the.sleep/sleepfolder.
Note: To use these images, set Sleep screen image to Custom in Settings.
Tip: For best results, use uncompressed 24-bit BMP files at 480x800 resolution. X4 Wallpaper Converter makes it easy to convert images into the right format.
You can use custom fonts in the EPUB/TXT reader. Font changes take effect immediately without rebooting, and your current reading position is preserved. Switching fonts does invalidate the rendering cache and re-runs indexing.
Prepare the font file
- Prepare a font file with the
.epdfontextension. (You can convert TTF/OTF fonts using the font converter.) - Copy the font file to
/.crosspoint/fonts/on the SD card or to the root/fonts/folder.
Apply the font
- Go to Settings > Font setting.
- Pick the font you want from the list.
- The chosen font is applied to the EPUB/TXT reader instantly.
Note: The default font is KoPub Batang, optimized for Korean reading.
Limitations: Variable Fonts, color fonts (Emoji), and bitmap-only fonts are not supported. See the Korean Font page for details.
Save a screenshot of the current screen as a BMP file.
- Method 1: Press Power + Volume Down simultaneously
- Method 2: Open the chapter menu while reading and pick the Screenshot option
Note: Screenshots are saved to the SD card's /.crosspoint/screenshots/ folder.
Since v1.2.0-ko.14 the device automatically tracks accumulated reading time per book. Time accrues from the moment you open a book in either the EPUB or TXT reader, and continues across closes/re-opens. The accumulated value is stored as a 16-byte binary in that book's cache directory (/.crosspoint/<hash>/reading_stats.bin on the SD card).
Where it's shown
While reading, press the OK button to open the reader menu — an accumulated time chip is shown on the right of the top progress line, e.g. Reading Time: 1h 23m. Values are formatted compactly (45m, 1h 23m, 1d 5h, 123d) and shown identically in both EPUB and TXT reader menus.
Accumulation rules
| Situation | Behavior |
|---|---|
| Flipping pages or returning from a menu to the reading screen | Continues to accumulate |
| Auto Page Turn active | Continues to accumulate (uninterrupted during long unattended reading) |
| No input for 5 minutes | Pauses (auto-resumes on next input) |
| Entering reader menu / chapter select / sub-activities | Time during these is excluded from the total (menu time is excluded) |
| Sessions shorter than 30 seconds | Skipped to save (avoid SD card wear) |
| After 5 minutes of active reading | Auto checkpoint save |
| Reader exit / book close | Drains remaining time and writes a final save |
Resetting the timer
Pick Reset Reading Timer in the reader menu — after a two-step confirmation, that book's accumulated value is reset to 0. Other books' reading time is unaffected.
Compatibility notes
- The existing
progress.bin,book.bin, andsection.bincache formats are unaffected. reading_stats.binis a new per-book file; if it doesn't exist the timer starts at 0.- For previously read books, the timer starts at 0 the first time you boot the v1.2.0-ko.14 build.