fbless – читаем книги в консоли

fbless – это консольное приложение для чтения электронных книг в формате .fb2 (FictionBook), написанное на языке программирования Python (второй версии) с использованием библиотеки Ncurses. Программа очень простая, но не смотря на это ее арсенала хватает для комфортного чтения. fbless умеет открывать книги из архивов zip, gzip и bzip2, запоминать позицию для каждой книги, имеет функцию автоматической прокрутки, а также статусную строку и некоторые другие полезные вещи.

Установка

Скачать исходные коды можно с Git-репозитория.
В Arch Linux пакет можно установить из AUR.

Первый запуск

Использование

Для того, чтобы уже начать читать никаких действий проделывать не требуется, достаточно написать в консоли fbless и в качестве параметра указать путь в книге:

$ fbless book.fb

Дополнительные параметры:
-a, --autoscroll – включить автоскролл
-t, --scroll_type – выбрать тип скролла (up, down, page-up, page-down, fifo)
-i, --interval – задержка скролла в секундах
-g, --goto – перейти по смещению (в процентах)
-e, --edit – открыть книгу в редакторе
-c, --config – использовать указанный конфигурационный файл
-v, --version – показать версию программы и выйти
-h, --help – показать справку и выйти

Настройка программы

Хочу сразу сказать, что данные с позициями на которых вы закончили читать хранятся в файле ~/.fbless_save (если отсутствует файл с настройками).
Настройки читаются из файла ~/.config/fbless.

Пример файла настроек:

[paths]
# Файл для хранения текущей позиции для каждой книги
save_file = ~/.cache/fbless/fbless_save

### General settings ###
[general]

# Количество строк, которые сохраняются при переходе к следующей странице
context_lines: 0

# Отображать статус-бар?
status: true

# Ширина экрана. Установить 0 для автоопределения
columns: 0

# Центрировать текст когда экран шире, чем 'columns'
center_text: false

# Использовать стандартный цвет фона и текста терминала для none (см. стили ниже)
use_default_colors: true

# Следует ли заменять Unicode символы (тире, кавычки и т.п.) их ASCII аналогами?
# Установите значение 'true', если терминал имеет проблемы c отображением Unicode
replace_chars: false

# Текстовый редактор
# {byte_offset} и {filename} будут заменены реальными значениями
# Note: Обратите внимание, что имя файла не экранируется
editor: vim -c go{byte_offset} "{filename}"

# Интервал автоскролла в секундах
auto_scroll_interval: 3

### Стили ###

# Accepted colors: black, blue, cyan (light greenish blue), green, magenta
# (purpish red), red, white, yellow, none. The latter have different meaning
# depending on the 'use_default_colors' setting: if it's 'true', 'none' would
# mean default setting for that color (i.e., if foreground for some style is
# 'none' and 'use_default_colors' is 'true', fbless would use the same
# foreground color as your terminal uses). If the setting is false, curses
# would use some other colors (possibly grey and black).

[default]
justify:           fill   # выравнивание
hyphenate:         true   # переносы
left_indent:       2      # отступ слева
right_indent:      2      # отступ справа
first_line_indent: 4      # отступ первой строки
bold:              false  # жарное начертание
foreground:        white  # текст
background:        black  # фон

[p]
justify:           fill
hyphenate:         true
left_indent:       2
right_indent:      2
first_line_indent: 4
bold:              false
foreground:        none
background:        none

[v]
justify:           fill
hyphenate:         true
left_indent:       10
right_indent:      4
first_line_indent: 0
foreground:        none
background:        none

[text-author]
justify:           right
hiphenate:         true
left_indent:       20
right_indent:      2
first_line_indent: 0
foreground:        yellow
background:        none

[epigraph]
justify:           fill
hiphenate:         true
left_indent:       20
right_indent:      2
first_line_indent: 4
foreground:        none
background:        none

[cite]
justify:           fill
hiphenate:         true
left_indent:       8
right_indent:      8
first_line_indent: 8
foreground:        none
background:        none

[title]
justify:           center
hiphenate:         false
left_indent:       8
right_indent:      8
first_line_indent: 0
foreground:        magenta
background:        none

[subtitle]
justify:           center
hiphenate:         false
left_indent:       8
right_indent:      8
first_line_indent: 0
foreground:        cyan
background:        none

[image]
justify:           center
hiphenate:         false
left_indent:       0
right_indent:      0
first_line_indent: 0
foreground:        none
background:        none

[strong]
foreground:        magenta
background:        none

[emphasis]
foreground:        cyan
background:        none

[style]
foreground:        green
background:        none

[a]
foreground:        red
background:        none

### Горячие клавиши ###

# Alphanumeric keys are denoted by the symbols they produce. The same goes for
# !, @, #, $, %, ^, &, *, _, -, +, =, / and all kinds of parentheses. The comma
# (,) is an exception: it is used as a delimiter, so when you mean it literally
# (i.e. you want it to be a hotkey for some action) you should type it as
# 'comma' (without quotes).  Backslash (\) should be escaped (i.e., typed twice
# in a row). Other accepted names are: left, right, up, down, enter, backspace,
# tab, home, end, pgup, pgdn.

[keys]
quit:          q, Q           # выход
toggle-status: s              # показать/спрятать статус-бар
search:        /              # поиск
search-next:   n              # искать дальше
scroll-fifo:   f              # скроллинг в режиме fifo
auto-scroll:   a              # включить/выключить автоскролл
timer-inc:     +              # увеличить время автопрокрутки
timer-dec:     -              # уменьшить время автопрокрутки
goto-percent:  5, G           # переход на позицию в файле (в процентах)
jump-link:     tab            # перейти к следующей ссылке
goto-link:     enter, right   # перейти по ссылке
backward:      h, left        # вернуться
forward:       l, backspace   # снова перейти по последней ссылке
scroll-up:     k, up          # прокрутить на строку вверх
scroll-down:   j, down        # прокрутить на строку вниз
prev-page:     pgup           # предыдущая страница
next-pagr:     pgdn, space    # следующая страница
goto-home:     home, g        # перейти в начало
goto-end:      end            # перейти в конец
edit-xml:      e              # открыть книгу в редакторе

Комментарии

Аватар пользователя Panda

Здорово так то. А шрифт он берет по умолчанию какой? А свой можно назначить?

Добавить комментарий