Skip to content
A simple epub reader written using python, gtk3 and webkit.
Python Shell
Find file

pPub 1.1

Version 1.1 by Thanasis Georgiou (


pPub is a simple epub reader written in Python using GTK3 and WebKit. It has most features expected from a book reader and some support for ebook-convert. It's licenced under GPLv2.


  • Bookmarks use MD5 hashes so filenames are irrelevant.
  • Keyboard shortcuts.
  • Table of contents support.
  • Night mode and custom user CSS support.
  • Javascript toggle.
  • Basic support for ebook-convert.
  • Support for files that don't pass epubcheck.
  • Lightweight.

Here is a screenshot.


  • For Archlinux: Install ppub from AUR.
  • For Salix: slapt-src -i ppub (Probably not working anymore, if anyone can confirm notify me)
  • For other Linux distros and BSDs:

    make install

This command will install ppub under "/usr" prefix and configure it to invoke python 2.x via "/usr/bin/python2" command. To alter this behavior set PREFIX and PYTHON environment variables, eg.:

PREFIX=/usr/local PYTHON=`which python2.7` make install

Also note, icons and desktop file are installed by default. If you want to install only the program itself, invoke make with "install-bin" target instead of "install".


Most features can be configured from inside the application with these exceptions:

  • cachedir = Path to cache, default is /tmp/ppub-cache-username. If you change this, keep the trailing '/'.
  • usercss = Path to custom CSS folder. Each file in that folder will appear as a separate menu entry. If invalid or 'None', custom CSS is disabled. Config is saved at ~/.ppub.conf. Bookmarks are stored inside the same file.


If you find a book that does not work, please extract it (like a zip file) and attach any .opf or .ncx it has inside to your bug report. These will help me resolve the problem. Also feel free to email me requests.


-Tristan Rice ( -ehainry ( -Laurent Bigonville ( -Laurent Peuch ( -Dmitrij D. Czarkoff (

Thanks for trying pPub out!

Something went wrong with that request. Please try again.