Giter Club home page Giter Club 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/

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

Download on Flathub Get it from the Snap Store

Features

  • 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, and sdcv, or translate text with Google Translate
  • Basic text-to-speech support with eSpeak NG and Festival

Installation

Distribution packages

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) foliate
Stable Releases
com.github.johnfactotum.foliate
Daily Buillds
Archisman Panigrahi
Void Linux foliate Lorem

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

Building manually from source

The following dependencies are required for building:

  • meson (>= 0.40)
  • gettext

The following are runtime requirements:

  • gjs (>= 1.52)
  • webkit2gtk (gir1.2-webkit2-4.0 for Debian based distributions)

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:

  • Epub.js, which is licensed under FreeBSD. The included file is patched with various fixes and enhancements (see git history for details).
  • The minified 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.

foliate's People

Contributors

acabal avatar anton-ua avatar apandada1 avatar bitedasher avatar carmina16 avatar dankor avatar dfandrich avatar frnogueira avatar fulvio-alves avatar habenamare avatar itprojects avatar jcamposz avatar jhakonen avatar johnfactotum avatar julroy67 avatar kekun avatar kleinheiti avatar maronghappy avatar merlijn-sebrechts avatar not-chicken avatar okias avatar pafri avatar reorr avatar schw0reismus avatar shibotto avatar tim77 avatar tttranquilooo avatar tupubozu avatar vistaus avatar zluca 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.