johnfactotum/foliate

Foliate

A simple and modern GTK eBook viewer, built with GJS and Epub.js.

View

Website: https://johnfactotum.github.io/foliate/

Download on Flathub

Features

  • View EPUB files in two-page view or scrolled view
  • Customize font, line-spacing, margins, and brightness
  • Light, sepia, dark, and invert mode, or add your own custom themes
  • Reading progress slider with chapter marks
  • Bookmarks and annotations
  • Find in book
  • Quick dictionary lookup with Wiktionary, Wikipedia, and dictd, or translate text with Google Translate
  • Touchpad gestures—use two-finger swipe to turn the page

Installation

Distribution packages

  • Arch Linux (AUR): foliate, foliate-git
  • Fedora: sudo dnf install foliate
  • Void Linux: xbps-install -S foliate

Optional dependencies

Auto-hyphenation is done using CSS hyphenation. To enable CSS hyphenation in WebKitGTK, you will need to install the hyphenation rules, e.g., hyphen-en for English, hyphen-fr for French, etc.

For offline dictionary support, install dictd.

Building manually from source

The following dependencies are required for building:

  • meson (>= 0.40)
  • gettext

The following are runtime requirements:

  • gjs (>= 1.52)
  • webkit2gtk

To install, run the following commands:

meson build --prefix=/usr
ninja -C build
sudo ninja -C build install

To uninstall, run

sudo ninja -C build uninstall

Build and run from source without installing

The following commands will build Foliate and install it inside a directory:

meson build --prefix=$PWD/run
ninja -C build
ninja -C build install

To run the application, you'll need to set the schema directory for GSettings:

GSETTINGS_SCHEMA_DIR=$PWD/run/share/glib-2.0/schemas ./run/bin/com.github.johnfactotum.Foliate

Building a Debian/Ubuntu Package

sudo apt install build-essential debhelper meson gettext
dpkg-buildpackage -us -uc -nc

Flatpak

Flathub

Foliate is available on Flathub.

Building Flatpaks manually

Using Gnome Builder

Open Gnome Builder, choose "Clone Repository…", and follow the instructions. After cloning the project, hit Ctrl+F5 to build and run Foliate.

Using flatpak-builder
flatpak-builder --force-clean --install --user build com.github.johnfactotum.Foliate.json

Screenshots

Dictionary:

Lookup

Annotations:

Note

Annotations

Find in book:

Find

Dark mode:

Dark

Book metadata display:

About

Optional sidebar layout, with popup footnote:

Sidebar


Note: three JavaScript libraries are bundled in this software:

npm install -g browserify
npm install cheerio
echo "window.cheerio = require('cheerio')" > index.js
browserify index.js > cheerio.js
johnfactotum/foliate
See more ...