커스터마이즈 · 동기화

KOReader 동기화, 절전 화면, 커스텀 폰트, 스크린샷 사용법입니다.

3.5.5 KOReader 동기화 빠른 설정

CrossPoint는 KOReader 호환 동기화 서버와 읽기 위치를 동기화할 수 있으며, 동일 서버/계정을 사용하는 KOReader 앱이나 기기와도 상호 운용됩니다.

옵션 A: 무료 공개 서버 ( sync.koreader.rocks )

  1. (필요 시) 사용자 계정을 한 번만 등록합니다. 기존 KOReader 동기화 계정이 있다면 이 단계를 건너뛸 수 있습니다.
  2. 기기에서 설정 → 시스템 → KOReader 동기화로 이동해 UsernamePassword를 입력합니다. 비밀번호는 평문 그대로 입력하면 CrossPoint가 내부적으로 MD5를 계산합니다.
  3. Sync Server URL을 비워두거나 https://sync.koreader.rocks로 설정한 뒤 Authenticate를 실행합니다.
  4. 책을 읽는 중에 확인 버튼을 눌러 리더 메뉴를 열고 Sync Progress를 선택합니다.
    • Apply Remote: 원격 진행 위치로 이동
    • Upload Local: 현재 진행 위치를 업로드

옵션 B: 자체 호스팅 (Docker Compose)

홈네트워크에 직접 동기화 서버를 띄울 수도 있습니다:

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
  1. 서버 상태 확인: curl -H "Accept: application/vnd.koreader.v1+json" "http://&lt;서버-IP&gt;:17200/healthcheck" &rarr; {"state":"OK"}
  2. 사용자 등록은 MD5 해시된 비밀번호로 진행합니다 (KOReader kosync 기본 동작).
  3. 기기에서 Sync Server URLhttp://&lt;서버-IP&gt;:17200로 설정 (HTTPS 포트 7200 사용 시 https://&lt;서버-IP&gt;:7200).

보안 경고: 평문 HTTP로 MD5 비밀번호를 주고받는 것은 안전하지 않습니다. 기기가 LAN 밖으로 트래픽을 내보내거나 공용 WiFi를 사용하는 환경에서는 HTTPS (https://&lt;서버-IP&gt;:7200)를 사용하고, 동기화 전용 계정을 만들어 메인 계정 비밀번호를 재사용하지 마세요.

팁: KOReader 동기화가 활성화된 상태에서 챕터 선택 화면을 열면 원격 진행 위치의 챕터 이름도 함께 표시되어, 다른 기기에서 읽던 위치를 쉽게 확인할 수 있습니다.

3.6 절전 화면 커스터마이징

절전 화면 설정에 따라 표시되는 이미지가 달라집니다:

  • Dark (기본값): 어두운 배경 위의 CrossPoint 로고
  • Light: 흰색 배경 위의 CrossPoint 로고
  • Custom: SD 카드의 사용자 이미지 (아래 참조). 이미지가 없으면 Dark로 폴백
  • Cover: 현재 열려있는 책 표지. 책이 없을 때는 Dark로 폴백
  • Cover + Custom: 책이 열려있을 때만 표지 표시, 그 외에는 Custom 동작으로 폴백 (v1.2.0)
  • None: 빈 화면

Custom 또는 Cover + Custom을 사용할 때는 SD 카드에 이미지를 배치합니다:

  • 여러 이미지 (권장): SD 카드 루트에 .sleep 폴더 (숨김 폴더) 를 생성하고 원하는 .bmp 이미지를 넣어둡니다. 기기가 슬립으로 진입할 때마다 이 중 하나가 무작위로 선택됩니다. (구버전 호환을 위해 sleep 폴더도 폴백으로 인식됩니다.)
  • 단일 이미지: 루트 디렉토리에 sleep.bmp 파일 배치. .sleep/sleep 폴더에서 유효한 이미지를 찾지 못했을 때 폴백으로 사용됩니다.

참고: 이 이미지를 사용하려면 설정에서 절전 화면 이미지사용자 정의로 설정해야 합니다.

팁: 최상의 결과를 위해 24비트 색상의 비압축 BMP 파일과 480x800 픽셀 해상도를 사용하세요. X4 Wallpaper Converter를 사용하면 이미지를 적합한 형식으로 쉽게 변환할 수 있습니다.

3.7 커스텀 폰트

EPUB/TXT 리더에서 사용자 정의 폰트를 사용할 수 있습니다. 폰트 변경 시 재부팅 없이 즉시 적용되며, 현재 읽고 있던 위치도 그대로 유지됩니다. 단, 폰트 변경 시 기존 렌더링 캐시가 비활성화되고 인덱싱이 다시 수행됩니다.

폰트 파일 준비

  1. .epdfont 확장자의 폰트 파일을 준비합니다. (폰트 변환기를 사용하여 TTF/OTF 폰트를 변환할 수 있습니다.)
  2. SD 카드의 /.crosspoint/fonts/ 또는 루트의 /fonts/ 폴더에 폰트 파일을 복사합니다.

폰트 적용

  1. 설정 &gt; 글꼴 설정으로 이동합니다.
  2. 목록에서 원하는 폰트를 선택합니다.
  3. 선택한 폰트가 EPUB/TXT 리더에 즉시 적용됩니다.

참고: 기본 폰트는 KoPub 바탕으로, 한국어 읽기에 최적화되어 있습니다.

지원 제한: 가변 폰트(Variable Fonts), 컬러 폰트(Emoji), 비트맵 전용 폰트는 지원되지 않습니다. 자세한 내용은 한글 폰트 페이지를 참조하세요.

3.8 스크린샷

현재 화면의 스크린샷을 BMP 파일로 저장할 수 있습니다.

  • 방법 1: 전원 + 볼륨 다운 버튼을 동시에 누르기
  • 방법 2: 읽기 화면에서 챕터 메뉴를 열고 스크린샷 옵션 선택

참고: 스크린샷은 SD 카드의 /.crosspoint/screenshots/ 폴더에 저장됩니다.

3.9 독서 타이머 (Reading Timer)

v1.2.0-ko.14 부터 책마다 누적 독서 시간을 자동으로 기록합니다. EPUB과 TXT 양쪽 리더 모두에서 책을 펼치는 순간부터 시간이 누적되며, 책을 닫고 다시 열어도 이어서 계산됩니다. 누적 값은 해당 책의 캐시 디렉터리(SD 카드의 /.crosspoint/&lt;hash&gt;/reading_stats.bin)에 16바이트 바이너리로 저장됩니다.

어디에 표시되나

읽기 도중 확인(OK) 버튼을 눌러 리더 메뉴를 열면 상단 진행률 라인 우측에 누적 시간 칩이 표시됩니다 — 예: Reading Time: 1h 23m. 값은 짧게 표기되며 (45m, 1h 23m, 1d 5h, 123d), EPUB·TXT 리더 메뉴 모두 동일하게 표시됩니다.

누적 규칙

상황동작
페이지를 넘기거나 메뉴에서 읽기 화면으로 복귀누적 진행
자동 페이지 넘김 활성 중누적 진행 (장시간 무인 읽기에서도 끊기지 않음)
5분 동안 입력 없음일시 정지 (다음 입력 시 자동 재개)
리더 메뉴 / 챕터 선택 / 서브 액티비티 진입그동안의 시간은 누적되지 않음 (메뉴 시간 제외)
30초 미만의 짧은 세션저장 생략 (SD 카드 마모 방지)
활성 독서 5분 경과자동 중간 저장
리더 종료 / 책 닫기잔여 시간 드레인 후 최종 저장

초기화하기

리더 메뉴에서 독서 타이머 초기화 (Reset Reading Timer) 항목을 선택하면 두 단계 확인 후 해당 책의 누적 값이 0으로 리셋됩니다. 다른 책의 독서 시간에는 영향을 주지 않습니다.

호환성 메모

  • 기존 progress.bin, book.bin, section.bin 캐시 포맷에는 영향이 없습니다.
  • reading_stats.bin은 책당 새로 생성되는 파일이며, 없으면 0초로 시작합니다.
  • 이전에 읽던 책의 누적 시간은 v1.2.0-ko.14 빌드를 처음 켠 시점부터 0초로 시작합니다.