Home

Awesome

Note

This is the master branch, which contains the code for the old v2.x versions. To learn about the newer GTK 4 version, see the gtk4 branch.

<img src="data/com.github.johnfactotum.Foliate.svg" align="left">

Foliate

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

View

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

FAQ: https://github.com/johnfactotum/foliate/wiki

<a href="https://flathub.org/apps/details/com.github.johnfactotum.Foliate"><img height="50" alt="Download on Flathub" src="https://flathub.org/assets/badges/flathub-badge-en.png"/></a> <a href="https://snapcraft.io/foliate"><img height="50" alt="Get it from the Snap Store" src="https://snapcraft.io/static/images/badges/en/snap-store-black.svg" /></a>

Features

Installation

Distribution packages

DistroPackage Name/LinkMaintainer
Arch LinuxfoliateJerome Leclanche
FedorafoliateArtem Polishchuk
Manjarofoliate
Ubuntu (Snap)foliateMerlijn Sebrechts and John Factotum
Ubuntu (PPA)foliate<br>Stable Releases<br>com.github.johnfactotum.foliate<br>Daily BuilldsArchisman Panigrahi
Void LinuxfoliateLorem

Debian packages can be downloaded from the releases page.

Packaging status

Optional dependencies

iso-codes (>= 3.67) is needed for displaying language and region names.

For Mobipocket (.mobi) and Kindle File Format (.azw, .azw3) support, you would need Python (2.7 or >= 3.4).

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 or sdcv.

For text-to-speech support, install espeak-ng, or festival, and packages for the individual voices.

To enable spellchecking for notes, gspell (gir1.2-gspell-1 for Debian based distributions) is required.

libhandy (gir1.2-handy-0.0) is recommended to make the interface work better on larger as well as smaller screens.

If tracker3 (gir1.2-tracker-3.0) is installed, it can be used to track the locations of files.

Building manually from source

The following dependencies are required for building:

The following are runtime requirements:

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

Snap

Foliate is available on the Snap Store.

Daily builds

You can test out the latest code in this repository using the edge channel of the snap. Run snap install --edge foliate to install the latest build from master. (snap refresh --edge foliate if you already have the snap installed)

Building the snap manually

You can build the snap manually using snapcraft. Install snapcraft and run snapcraft in the root of this repository.

Screenshots

Primary menu:

Menu

Navigation:

Navigation

Lookup:

Lookup

Annotations:

Note

Annotations

Skeuomorphic mode:

Skeuomorphism

Dark mode:

Dark

Book metadata display:

About

Alternative sidebar UI:

Sidebar


Note: The following JavaScript libraries are bundled in this software:

This software also includes parts from KindleUnpack, which is licensed under GPL-3.0.