LINUX.ORG.RU

Избранные сообщения u-235

Выпуск minidjvu-mod 0.9m02

 

Группа Open Source

minidjvu-mod – это кодировщик текстового слоя для создания многостраничных DjVu документов (аналог cjb2 пакета DjVuLibre). Пожалуй, единственный свободный (GPL-3.0) кодировщик на данный момент, способный конкурировать по итоговому размеру файла с коммерческими проприетарными аналогами (documenttodjvum.exe от LizardTech).

minidjvu-mod является форком проекта minidjvu, разработанного Ильёй Межировым и Алексеем Крюковым в 2005-2010 гг. По сравнению с оригиналом, алгоритмы обработки переписаны с использованием битовых операций напрямую над монохромными изображениями, а также добавлена поддержка многопоточной обработки (OpenMP) общих словарей (djbz) документа. Полученный прирост в производительности позволил убрать некоторые эвристики и потратить дополнительные ресурсы на более полную оптимизацию общего словаря, от чего напрямую зависит качество сжатия итогового документа. В результате на современных многоядерных CPU minidjvu-mod уже не критично отстает по скорости работы от коммерческих аналогов, а также стал сравним по качеству сжатия результата.

В новой версии minidjvu-mod 0.9m02 также добавлена возможность передавать параметры кодирования документа через файл настроек. С его помощью можно дополнительно:

  • задавать индивидуальные параметры обработки конкретным изображениям;
  • контролировать, какие изображения попадут в тот или иной общий словарь (djbz);
  • задавать индивидуальные параметры кодирования общих словарей.

>>> Страница проекта на github (github.com)

Truf
()

FOX Desktop (Ловите наркомана!)

 , , ,

Есть такой FOX Toolkit, очень давний кроссплатформенный тулкит на C++, который разрабатывается единственным разработчиком-энтузиастом. Тулкит не заброшен, хотя и не разрабатывается в активном темпе.

С самим тулкитом поставляются:

  • Файловый менеджер PathFinder.
  • Текстовый редактор Adie с простой подсветкой синтаксиса.
  • Инженерный калькулятор FOX Calculator.
  • Скриншотилка shutterbug. Вроде что особенного ждать от скриншотилки, но довольно удобная. Можно, например, с экрана анимацию записывать в gif.
  • И утилита ControlCenter, отвечающая за некоторые базовые настройки тулкита.

Есть еще двухпанельный ФМ XFE (free.fr) на этом тулките. Он укомплектован просмотрщиком изображений и еще одним простым редактором.

Раньше был еще проект fxdesktop — попытка сделать на этом тулките DE. Не знаю, насколько глобальные были планы у автора, но удалось сделать только часть базовых функций экранной панели, и проект был заброшен. Всё это умерло где-то к концу 00-х.

Еще есть fxprocessview — диспетчер процессов в полуработающем состоянии, тоже заброшен.

На самом деле я вспомнил о fxdesktop только потому, что у меня на машине остался неудаленный пакет с ним еще со времен до миграции с 32-битного на 64-битный Арч. (Я без переустановки ОС мигрировал; через принудительную переустановку всех системных пакетов.) Ну и тут я решил упороться, и понеслось…

Исходники fxdesktop и fxprocessview удалось найти чудом. При чем у fxdesktop нашел два архива с разным набором багов, так что там еще предстоит разбираться с отличиями.

Пока что было сделано:

У ControlCenter исправил цветовую схему, чтобы она точно имитировала цвета Windows. Потом на этом не остановился и запилил все варианты:

  • Redmond 95 (цветовая схема Windows 95, 98)
  • Redmond 2000 (цветовая схема Windows ME, 2000, а также классических стилей XP и 7)
  • Redmond XP (эта цветовая схема соответствует той, какую выбирает XP-ха, когда в ней настроена Luna, а приложение умеет только в классику.)
  • Redmond XP Olive, Redmond XP Silver (аналогично для этих вариантов оформления)
  • Redmond 7 (аналогично — если в семерке настроена Аэро, а приложение умеет только в классику, то семерка ставит такой набор цветов — вот его и имитируем)

Следом добавил цветовые схемы для классических стилей gtk2: Raleigh, Crux, Clearlooks, Industrial, ThinIce. То есть в сами эти стили FOX, разумеется, не умеет. Но при выборе соответствующих цветовых схем он, по крайней мере, использует такие же опорные цвета для окон и текста. Для Adwaita тоже добавил.

Плохая новость в том, что цветовые схемы хранятся не в конфигах, а вшиты прямо в ControlCenter. Выбранный набор цветов программа пишет в конфиг, чтобы другие приложения могли им пользоваться. А вот сами наборы — это массив в исходниках. Неудобно.

Кстати говоря, бесполезный факт, но внешний вид элементов управления практически с попиксельной точностью воспроизводит классическую Windows. Так вот по скрину окна (без рамок openbox-а) даже не знаю, можно ли отличить от Винды. Например, стиль Redmond в gtk2 сразу палится, что не винда — он совсем не pixel perfect.

Дальше я поржал с русской локализации XFE с опечатками типа «Измененять» и «Сравнитель файлов» и сел её править. Потом уперся в то, что часть бреда исправить не могу, потому что бред также в английском оригинале. (Разработчик из Франции, возможно, в этом дело.) Тут нужно будет писать письма в апстрим, ладно, это потом…

Ну и наконец я взялся за fxdesktop. Сам код компилируется без проблем спустя 10+ лет, пришлось только кривой configure-скрипт переписать. На скриншоте видно рабочий стол (оранжевый фон без ничего) и панель вверху — это всё, что есть в этой программе. Иконки на рабочем столе программа рисовать не умеет, но умеет меню по ПКМ, где планировалось что-то полезное, но почти ничего нет. На панели слева направо видно:

  • Кнопка вызова меню приложений. Не работает. С современной организацией меню приложений не пашет.
  • Кнопка «Свернуть все окна». На сворачивание работает. На разворачивание обратно ­— нет.
  • 4 кнопки-лаунчера. Вот над лаунчером сейчас работаю. Научил его отображать иконку каталога, если лаунчер ведет на каталог. Научил отображать специальные иконку каталогов, если лаунчер ведет на специальный каталог (HOME, XDG_DESKTOP_DIR, XDG_DOCUMENTS_DIR, XDG_DOWNLOAD_DIR и т.п.). Научил лаунчер распознавать и подставлять соответствующие специальные переменные окружения в путях. Научил примитивной логике загрузки иконок по имени. Пока без полной поддержки тем иконок.
  • Переключатель рабочих столов. Работает.
  • Шестеренка — выпадающее меню со списком открытых окон. Работает.
  • Часы. Работают, никаких настроек формата времени не имеют.
  • Сама панель должна быть гибко конфигурируемой (в плане добавления/удаления виджетов), но это недоделано.

Что еще видно на скриншоте. «FOX Desktop Setup» — это утилита ControlCenter. А «FOX Desktop Settings» — это настройки самого fxdesktop. Надо их какое-то более очевидно переименовать, что ли. Для скриншота открыл калькулятор и PathFinder. Текстовый редактор в композицию на мой монитор уже не влез.

PathFinder вот так по хардкору имитирует иконки то ли от 95-й винды, то ли вообще от 3.11-й. XFE пытается выглядеть чуть современнее и в свежем релизе даже обещали поддержку HiDPI.

Это никакое не DE, разумеется. Но некий смысл в этом сборнике недописанных программ всё же есть. Во-первых, их интересно дописывать. :D Во-вторых, на старом компе это должно летать. Кто-то тут у нас коллекционировал старые пни и всё такое?..

P.S. Дорогой движок форума, да какие я метки сюда поставлю? Тега «fox toolkit» у тебя, к сожалению, нет, а добавить его мне число звезд не даёт. Тега «практическая некромантия» тоже не подвезли.

wandrien
()

Не сохраняются изменения в ~/.config/user-dirs.dirs

 , ,

Доброго всем времени суток. Уже был у меня подобный пост о перемещении некоторых пользовательских каталогов из /home на другой раздел. Тогда всё решилось сменой путей в Параметры системы -> Приложения -> Пути. Теперь же, на новом компе и, есессно, новой системе, этот метод не работает. При попытке указания нового пути до системной папки Изображения (как и любой иной папки в /home) выдаётся ошибка открытия файла. При попытке прописать новый путь в ~/.config/user-dirs.dirs - изменения не применяются и после перезапуска юзерской сессии - всё возвращается в базовое состояние. Подскажите пожалуйста - как победить сие? Нужно просто, чтобы системные папки Загрузки, Изображения, Музыка и Документы - лежали не в /home, а на другом харде. Заранее благодарен за помощь.

kuguar
()

Почему ninja такое говно?

 

Это можно считать криком души, в общем слушайте кул стори.

Решил я значит обновить на своем ноуте генту и в коим то веке решил не переносить систему со старого ноута, а собрать все с 0. Загрузил liveCD, разметка дисков, chroot… все как обычно, выбрал нужный профиль, пересобираю мир… падает на моменте ninja -v -j1 -l0 -C /v.... полез в инет, вычитал что ninja не любит когда нехватает оперативки и следует ограничить MAKEOPTS. Ну ок, ограничил до одного потока, я не тороплюсь, вроде как прошло, но упало при сборке Sushi, это какие то привьюхи для наутилуса, думаю хрен сними, да и наутилус мне нафиг не нужен, поубирал юз флаги что бы суши вообще не требовалось, собираю дальше… опять падает и опять ninja чем то недоволен.

Думаю ок, хрень какая то, пофиг на установкой с 0, не в этот раз, синкнул систему из бекапа, все идеально но надо бы обновить, запустил обновление и….. да ninja падает при сборке, в этот раз уже gnome-shell не хочет собираться.

Самый смак в том что когда билд падает в консоле ты видишь вот такую ошибку ninja: build stopped: subcommand failed. Да как вы могли заметить она очень информативная.

Если скопировать команду и выполнить отдельно то будет вот это

# ninja -v -j1 -l0 -C /var/tmp/portage/gnome-base/gnome-shell-40.1-r1/work/gnome-shell-40.1-build
ninja: Entering directory `/var/tmp/portage/gnome-base/gnome-shell-40.1-r1/work/gnome-shell-40.1-build'
[1/15] x86_64-pc-linux-gnu-gcc  -o src/gnome-shell-portal-helper src/gnome-shell-portal-helper.p/meson-generated_.._.._js_portal-resources.c.o src/gnome-shell-portal-helper.p/gnome-shell-portal-helper.c.o -Wl,--as-needed -Wl,--no-undefined -O2 -pipe -march=native -Wl,-O1 -Wl,--as-needed -Wl,--start-group /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgjs.so -Wl,--end-group
FAILED: src/gnome-shell-portal-helper
x86_64-pc-linux-gnu-gcc  -o src/gnome-shell-portal-helper src/gnome-shell-portal-helper.p/meson-generated_.._.._js_portal-resources.c.o src/gnome-shell-portal-helper.p/gnome-shell-portal-helper.c.o -Wl,--as-needed -Wl,--no-undefined -O2 -pipe -march=native -Wl,-O1 -Wl,--as-needed -Wl,--start-group /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgjs.so -Wl,--end-group
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libgjs.so: undefined reference to `sysprof_clock'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libgjs.so: undefined reference to `sysprof_clock_init'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Повезло что FAILED: src/gnome-shell-portal-helper подсвечивается красным цветом и теперь все стало понятно(нет)

Кто нибудь может рассказать что это за говнище и почему его вдруг начали использовать? Я за последнии пару дней 6 или 7 раз упирался в ошибки с этим сраным ninja и ни разу не понял что он от меня хочет, как этим говном вообще пользоваться?

TDrive
()