MuPDF и freeglut
Это стыд, позор и срам, но у меня не первый год не было нормально
работающего PDF просмотрщика. Zathura использовал много лет -- очень
удобна, достаточно минималистична, есть нужный функционал. Но после
мажорного обновления FreeBSD, где-то что-то идёт не так и при
пролистывании документов она может залипнуть и не перерисовывать экран.
Смена фокуса туда-обратно помогает. На некоторых документах всё
нормально. На некоторых только в определённых местах/страницах. На
каких-то вообще на каждой странице. И да, занимался дебилизмом типа
PgDown+Ctrl-J+Ctrl-K (чтобы фокус туда-обратно передёргнуть). Я даже не
понимал кто виноват и что именно в FreeBSD так повлияло: X11, girara,
сама zathura, MuPDF (f5ac4628c014cc4c9fb43f7f15c6bd5cc211d24d), ещё
всякие зависимые third-party библиотеки? Пытался в коде найти
какие-нибудь refresh/update/redraw упоминания и когда они происходят --
не находил с ходу. Частенько я преобразовывал документы в текст и уже
работал с ним, пускай он и исковерканный. Но это не всегда возможно, тем
более если есть картинки.
Тут мне напомнили про то, что у MuPDF есть свой просмотрщик тоже. Я об
этом совершенно забыл, считая её просто библиотекой и mutool утилитой.
Как оказалось в f5ac4628c014cc4c9fb43f7f15c6bd5cc211d24d, я уже пробовал
и отбросил, так как не искала кириллицу и не выделяла текст в буфер обмена.
Действительно, собрав mupdf-gl, получаю:
warning: This version of MuPDF has been built WITHOUT clipboard or unicode input support!
mupdf-x11 версия не позволяет искать что-либо кроме латиницы тоже. В
итоге выяснилось, что всё это зависит от freeglut. Я использовал
системную. Но у Artifex (автора MuPDF) есть свой собственный fork с API
version 6 (тогда как штатный freeglut, до сих пор обновляющийся, имеет
только 4), необходимым для Unicode поддержки. Но он не собирается на
FreeBSD, ибо не рабочий код связанный с libusb внутри функций для работы
с джойстиком. Куча ifdef-ов, учтены разные BSD, но, видимо, на
современной FreeBSD всё стало не актуально.
В итоге заменил вообще все эти joystick-related функции на пустышки,
ничего не делающие. Собралось. И копирование и поиск кириллицы теперь
работают. И MuPDF не "заедает" при перелистывании. Так что, наконец-то,
вроде бы отлично работающий просмотрщик появился вновь. MuPDF даже
инвертировать цвета умеет, что я не редко использую.
Zathura напрягала ещё и сменой GTK, ещё и потом зависимостью от SQLite3
и DBus (что можно отключить: 1517827838dfcb8d1baaaeb75c258f2b59f8714d).
Она умеет XEmbed: 50558b9a75eb2f25f95d03383c3d6ecf6d850a66. У меня
используется, но не скажу что без этого не мог бы жить и оно точно
помогает. Не часто мне с многочисленными PDF приходится работать
одновременно. Пока её оставляю для просмотра DjVu.
[оставить комментарий]