Foliate
A simple and modern GTK eBook viewer, built with GJS and Epub.js.
Website: https://johnfactotum.github.io/foliate/
Documentation: https://github.com/johnfactotum/foliate/wiki
Features
- View .epub, .mobi, .azw, and .azw3 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
- Basic text-to-speech support with eSpeak NG and Festival
Installation
Distribution packages
Distro | Package Name/Link |
---|---|
Arch Linux | foliate |
Fedora | foliate |
Manjaro | foliate |
Ubuntu | foliate |
Void Linux | foliate |
Debian packages can be downloaded from the releases page.
Optional dependencies
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
.
For text-to-speech support, install espeak-ng
, or festival
, and packages for the individual voices.
To enable spellchecking for notes, gspell
is requried.
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.
flatpak-builder
Using 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:
Navigation:
Lookup:
Annotations:
Skeuomorphic mode:
Dark mode:
Book metadata display:
Alternative sidebar UI:
Note: two JavaScript libraries are bundled in this software:
- Epub.js, which is licensed under FreeBSD. The included file is patched to fix #76 and #177
- The minified version of JSZip, which is dual-licensed. You may use it under the MIT license or the GPLv3 license. See LICENSE.markdown
This software also includes parts from KindleUnpack, which is liscensed under GPL-3.0.