App-termpub

Epubreader for the terminal


Keywords
curses, epub, epub-reader, perl, perl5, terminal
License
GPL-3.0

Documentation

Build Status Coverage Status

NAME

App::termpub - Epubreader for the terminal

SYNOPSIS

termpub file

DESCRIPTION

termpub aims to be a full features epub reader for the terminal. It supports internal and external links, skips the front matter and will display images with an external viewer. Your reading position will be saved and restored.

Many text movement commands are compatible with less(1).

The text will be hyphenated if the hyphenation patterns from hunspells libhyphen are installed.

OPTIONS

  • --[no-]hyphenation

    Hyphenate text. Defaults to true.

  • --lang LANGUAGE_TAG

    Set the language used for hyphenation. Defaults to the books language or 'en-US' if not specified.

  • --width WIDTH

    Set screen width. Defaults to 80.

KEY BINDINGS

  • h, ?

    Display help screen.

  • n

    Go to the next chapter.

  • p

    Go to the previous chapter.

  • t

    Jump to the table of contents.

  • m

    Followed by any lowercase letter, marks the current position with that letter.

  • '

    Followed by any lowercase letter, returns to the position which was previously marked with that letter. Followed by another single quote, returns to the position at which the last "large" movement command was executed.

  • [num] |

    Set pager width to num.

  • [num] %

    Go to a line N percent into the chapter.

  • [num] g

    Go to line num in the chapter, defaults to 1.

  • [num] G

    Go to line num in the chapter, default to the end of the chapter.

  • [num] o

    Open link num. termpub calls xdg-open with the url as first argument if the link references an external ressource.

  • C-g

    Cancel numeric prefix num argument.

  • KEY_DOWN, j, RETURN

    Scroll one line down.

  • KEY_UP, k

    Scroll one line up.

  • KEY_NPAGE, SPACE

    Scroll forward one window.

  • KEY_PPAGE, KEY_BACKSPACE

    Scroll backward one window.

  • KEY_HOME

    Go to the beginning of the current chapter.

  • KEY_END

    Go to the ned of the current chapter.

  • <,>

    Go back or forward in the chapter history.

  • q

    Quit.

  • Q

    Quit without saving the current reading position.

CONFIGURATION FILE

When termpub is invoked, it will attempt to read a configuration file named .termpubrc in your home directory. If this file does not exist termpub will try to read $XDG_CONFIG_HOME/termpub/termpubrc.

The configuration file consists of a series of commands. Each line may only contain one command. The hash mark is used as a comment character. All text after the comment character to the end of the line is ignored. The file is expected to be utf8 encoded.

The following commands are defined:

  • set hyphenation on|true|off|false|0|1

    Enables or disabled hyphenation

  • set language language_tag

    Set the language used for hyphenation.

  • set width num

    Set screen width to num.

INSTALLATION

If you have cpanminus installed, you can simply install this program by calling

$ cpanm .

Otherwise you can build a standalone script with

$ ./build-standalone

and copy the generated script termpub somewhere in your path. In this case you need to installed the dependencies yourself. Termpub depends on the perl modules Mojolicious, Curses and Archive::Zip. On Debian the following command will install these packages.

$ apt-get install libmojolicious-perl libcurses-perl libarchive-zip-perl

COPYRIGHT AND LICENSE

Copyright 2019 Mario Domgoergen <mario@domgoergen.com>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.