From 98a77f9e396fbb560ef6cd09aeecafa7f30ee657 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 4 Mar 2026 14:18:42 +0300 Subject: [PATCH] =?utf8?q?MuPDF=20=D0=B8=20freeglut?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Это стыд, позор и срам, но у меня не первый год не было нормально работающего 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. -- 2.52.0