A simple and modern GTK eBook viewer, built with GJS and Epub.js.
Website: https://johnfactotum.github.io/foliate/
FAQ: https://github.com/johnfactotum/foliate/wiki
- Supported formats:
- EPUB (.epub, .epub3)
- Kindle (.azw, .azw3) and Mobipocket (.mobi)
- FictionBook (.fb2, .fb2.zip)
- Comic book archive (.cbr, .cbz, .cbt, .cb7)
- Plain text (.txt)
- Single-column, two-column, or continuous scrolling layouts
- Adjust font, line-spacing, and margins
- Customize colors and brightness
- Reading progress slider with chapter marks
- Bookmarks and annotations
- Find in book
- Open footnotes in popovers
- Touchpad gestures—use two-finger swipe to turn the page
- Quick dictionary lookup with Wiktionary, Wikipedia,
dictd, andsdcv, or translate text with Google Translate - Basic text-to-speech support with eSpeak NG and Festival
| Distro | Package Name/Link | Maintainer |
|---|---|---|
| Arch Linux | foliate |
Jerome Leclanche |
| Fedora | foliate |
Artem Polishchuk |
| Manjaro | foliate |
|
| Ubuntu (Snap) | foliate |
Merlijn Sebrechts and John Factotum |
| Ubuntu (PPA) | foliateStable Releases com.github.johnfactotum.foliateDaily Buillds |
Archisman Panigrahi |
| Void Linux | foliate |
Lorem |
Debian packages can be downloaded from the releases page.
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 requried.
libhandy (gir1.2-handy-0.0) is recommended to make the interface work better on larger as well as smaller screens.
If tracker (gir1.2-tracker-2.0) is installed, it can be used to track the locations of files.
The following dependencies are required for building:
meson (>= 0.40)gettext
The following are runtime requirements:
gjs (>= 1.52)webkit2gtk(gir1.2-webkit2-4.0for Debian based distributions)
To install, run the following commands:
meson build --prefix=/usr
ninja -C build
sudo ninja -C build installTo uninstall, run
sudo ninja -C build uninstallThe following commands will build Foliate and install it inside a directory:
meson build --prefix=$PWD/run
ninja -C build
ninja -C build installTo 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.Foliatesudo apt install build-essential debhelper meson gettext
dpkg-buildpackage -us -uc -ncFoliate is available on Flathub.
Open Gnome Builder, choose "Clone Repository…", and follow the instructions. After cloning the project, hit Ctrl+F5 to build and run Foliate.
flatpak-builder --force-clean --install --user build com.github.johnfactotum.Foliate.jsonFoliate is available on the Snap Store.
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)
You can build the snap manually using snapcraft. Install snapcraft and run snapcraft in the root of this repository.
Primary menu:
Navigation:
Lookup:
Annotations:
Skeuomorphic mode:
Dark mode:
Book metadata display:
Alternative sidebar UI:
Note: The following JavaScript libraries are bundled in this software:
- Epub.js, which is licensed under FreeBSD. The included file is patched with various fixes and enhancements (see the repo for Foliate's Epub.js fork for details).
- A patched version of JSZip, which is dual-licensed. You may use it under the MIT license or the GPLv3 license. See LICENSE.markdown
- libarchivejs, which is MIT licensed. It is a WASM port of the popular libarchive C library.
- crypto-js, which is MIT licensed. The MD5 module is used to generate identifiers for files that don't have unique identifiers.
This software also includes parts from KindleUnpack, which is licensed under GPL-3.0.










