Git Product home page Git Product logo

foliate's Introduction

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 and Kindle 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

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

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

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

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

foliate's People

Contributors

johnfactotum avatar schw0reismus avatar vistaus avatar shibotto avatar frnogueira avatar julroy67 avatar tim77 avatar jcamposz avatar not-chicken avatar gabmus avatar itprojects avatar reorr avatar tktech avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.