blazingly fast book reader written in C
  • C 94.7%
  • Python 3.3%
  • Shell 1.2%
  • Makefile 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
paddle1407 d9900ea6f5 README: use the renamed repository's URL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 23:45:58 +02:00
fonts Rewrite chareader in C 2026-10-06 23:40:39 +02:00
src Rewrite chareader in C 2026-10-06 23:40:39 +02:00
tests Rewrite chareader in C 2026-10-06 23:40:39 +02:00
vendor Rewrite chareader in C 2026-10-06 23:40:39 +02:00
.gitignore Rewrite chareader in C 2026-10-06 23:40:39 +02:00
chareader.desktop.in Rewrite chareader in C 2026-10-06 23:40:39 +02:00
chareader.svg Rewrite chareader in C 2026-10-06 23:40:39 +02:00
desktop.sh Rewrite chareader in C 2026-10-06 23:40:39 +02:00
Makefile Rewrite chareader in C 2026-10-06 23:40:39 +02:00
README.md README: use the renamed repository's URL 2026-10-06 23:45:58 +02:00
run.sh Rewrite chareader in C 2026-10-06 23:40:39 +02:00
setup.sh Rewrite chareader in C 2026-10-06 23:40:39 +02:00

chareader

A fast, minimal reader for novels and comics on Linux. Opens .epub, .txt and .cbz files.

  • Clean reading view with justified text, three themes and adjustable size, spacing and width
  • Scroll or book-page view, with a chapter list and saved reading positions
  • Auto-scroll (word by word, line by line or smooth) with a reading guide
  • Fast reader that shows one word at a time
  • Comic view with two-page spreads, right-to-left (manga) order, fit-to-width and zoom
  • Library of recent books with cover thumbnails
  • Rebindable keys, and custom fonts by dropping a .ttf or .otf on the window

Written in C with SDL3, OpenGL 3.3 and FreeType.

Install

Install the build tools and libraries:

Distribution Packages
Void base-devel pkg-config SDL3-devel freetype-devel libpng-devel libjpeg-turbo-devel libdeflate-devel
Arch base-devel sdl3 freetype2 libpng libjpeg-turbo libdeflate
Debian / Ubuntu build-essential pkg-config libsdl3-dev libfreetype-dev libpng-dev libturbojpeg0-dev libdeflate-dev
Fedora gcc make pkgconf SDL3-devel freetype-devel libpng-devel turbojpeg-devel libdeflate-devel

Then build and start it:

git clone https://github.com/paddle1407/chareader.git
cd chareader
./setup.sh
./run.sh

To add chareader to your app launcher, run ./desktop.sh --link.

Usage

./run.sh                 # open the library
./run.sh book.epub       # open a book

You can also drop a book onto the window. Press s or click the cog for settings, and ? for the full list of keys.

Key Action
Space / → / PgDn Next page (Shift+Space goes back)
← / PgUp Previous page
↓ ↑ / j k Scroll
n / p Next / previous chapter
c Contents
a Auto-scroll on/off
r Fast reader
= / - Bigger / smaller text (zoom in comics)
t Next theme
f Fullscreen
Esc / q Back to the library
Ctrl+Q Quit

Data

run.sh keeps everything chareader writes inside its own folder, in .data/: settings and reading positions (state.ini), cover thumbnails and imported fonts. To uninstall, delete the folder (and the launcher link, if you made one).

If the window looks wrong on a scaled display, run CHAREADER_DEBUG=1 ./run.sh to print the sizes it sees.

Development

make            # build ./chareader
make test       # run the tests

Bundled fonts are Noto Serif, Noto Sans (SIL Open Font License) and DejaVu Serif; their licenses are in fonts/. BMP decoding uses stb_image (public domain).