foliate

A simple and modern GTK eBook reader

Github stars Tracking Chart







?️ The master branch contains a work-in-progress rewrite. The old code can be found in the 1.x branch.


Foliate

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

View

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

Packaging status

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.

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

Snap

Foliate is available on the Snap Store.

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: 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.

Main metrics

Overview
Name With Ownerjohnfactotum/foliate
Primary LanguageJavaScript
Program languagePython (Language Count: 4)
Platform
License:GNU General Public License v3.0
所有者活动
Created At2019-05-26 11:16:14
Pushed At2025-04-08 06:21:10
Last Commit At2023-11-19 20:30:07
Release Count35
Last Release Name3.3.0 (Posted on )
First Release Name1.0.0 (Posted on )
用户参与
Stargazers Count7k
Watchers Count66
Fork Count313
Commits Count1.7k
Has Issues Enabled
Issues Count1071
Issue Open Count202
Pull Requests Count295
Pull Requests Open Count2
Pull Requests Close Count39
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

No more projects by this owner are included. Recommend one?