TL;DR: я восхищен Haiku, но доработать есть что
Вчера я изучал Haiku — операционную систему, которая меня приятно удивила. День второй. Поймите правильно: я все еще восхищен тем, насколько легко она делает то, что тяжело дается на рабочих окружениях для Linux. Горю желанием узнать, как она работает, а также полон энтузиазма использовать ее ежедневно. Правда, день для полного перехода еще не наступил: страдать не хочется.
Растровый графический редактор WonderBrush — если вы знаете, где его найти
В принципе, ожидаемо для версии ниже 1.0. Однако не стоит преуменьшать удивительные достижения, помня Mac OS X в ее предрелизные дни, и с учетом размера команды Haiku.
Я обычно высказываю свои мысли о #LinuxUsability (часть 1, часть 2, часть 3, часть 4, часть 5, часть 6), так что не стоит удивляться придиркам к Haiku в плане удобства использования. Большинство из них, к счастью, относятся к различным усовершенствованиям.
Это было предисловие, а теперь обратим внимание на некоторые неприятности.
Неприятность №1: неполадки с браузером
Есть 3 браузера, основанные на WebKit: основной (WebPositive) и два дополнительных на Qt (QupZilla, устаревшее название Falkon, и OtterBrowser), которые могут быть установлены из репозитория. Ни один не работает корректно. У основного браузера есть проблемы с функциональностью и отрисовкой (к примеру, невозможно решить captcha при входе в Haiku bugtracker), а у дополнительных — большие проблемы с производительностью на Haiku.
Так выглядит Twitter в WebPositive, основном браузере Haiku
QupZilla и OtterBrowser сильно лагают на ненадежных соединениях с Интернетом (например, в поезде). Переключение между вкладками становится невозможным, если данные не влетают бесперебойно. Нереально открыть новую вкладку до тех пор, пока текущая загружает данные по сети. Все тупит, несмотря на малую загрузку. Вероятно браузеры не полностью оптимизированы под многопоточность Haiku, или имеют другие проблемы с Haiku [на Linux у меня тоже так иногда бывает — прим. переводчика].
С QupZilla мне не удалось написать что-либо на Medium...
Компания Apple сделала много для обеспечения стабильной работы браузера с отличной производительностью. Мне кажется, эти вложения окупятся и на Haiku. Особенно с учетом возросшей важности веб-приложений, а тем более с учетом того, что родные приложения пока еще не доступны для всех вариантов использования.
Рассказ Kenneth Kocienda и Richard Williamson: как появились Safari и Webkit
Неприятность №2: Launcher и Dock
В правом верхнем углу экрана расположен Deskbar, причудливая смесь, приготовленная из меню "Пуск" от Windows с вкраплениями функций Dock и некоторыми другими возможностями.
Поскольку это был, возможно, ключевой элемент пользовательского опыта для BeOS, ему не хватает возможностей современного рабочего окружения: мне нужно средство запуска программ, вроде Spotlight, запускаемое через Alt+пробел. Запуск приложений по щелчку медленный. Есть инструмент "Найти", выглядящий как Штирлиц под прикрытием, но он не рассчитан на удобный запуск приложений, даже если ему придать ускорения.
Spotlight на Mac OS X Leopard, запущенный по Command + пробел
Есть LnLauncher, устанавливаемый в HaikuDepot. При первом запуске он полностью пустой, и не совсем понятно, как в него что-либо добавить. К тому же он появляется не в совсем удобном месте экрана без очевидного способа изменения позиции. Ну как мне поставить его слева или внизу экрана, как Dock в Mac OS X? Считаю, что UX в данном случае непознаваем.
DockBert, также устанавливаемый из HaikuDepot. Уже лучше. Показывается внизу экрана. Немного не ожидал, что порядок иконок будет обратный: корзина в начале, но в целом выглядит многообещающе.
Как выставить его по-умолчанию вместо Deskbar? Если щелкнуть по иконке Deskbar в DockBert и выбрать "закрыть" — он, конечно, закроется… и появится обратно через полсекунды. (Разработчики сказали, что это, в принципе, bug в DockBert). Было бы неплохо, если бы DockBert был достаточно умным, понимая, что нужно пользователю и делая это. По-умолчанию, в DockBert нет иконок приложений, но он показывает "тяни сюда", так что известно, как все добавить. Однако у меня не получилось удалить приложения — ни щелкая правой кнопкой мыши, ни перетаскиванием иконки из DockBert.
Пробую HiQDock. Я его случайно нашел в стороннем репозитории. Выглядит так, как мне хочется. С упором на "выглядит". Потому что он пока что не работает: все еще Beta-версия. Он написан на Qt4, так что сомневаюсь, что его заберут в установочный образ.
HiQDock.
В принципе, не только я считаю, что ситуация с Dock и Launcher сложная. По этой теме я даже нашел целую статью.
QuickLaunch
Потом я узнал о QuickLaunch, который рекомендуется запускать, добавив сочетание кнопок в настройках Shortcuts.
Настройки Shortcuts в Haiku
Было бы неплохо, если бы такие вещи были настроены, чтобы "просто работать" по-умолчанию. Я сказал Alt+пробел? Ну, в принципе, QuickLaunch может при первом запуске спросить, нужно ли настроить сочетание клавиш. Делать это в настройках Shortcuts громоздко.
Окно, в котором предлагается ввести "приложение" в настройках Shortcuts. Без шуток
Готов спорить, что большинство пользователей не знают, что надо ввести в качестве "приложения", а именно: /boot/system/apps/QuickLaunch
(просто QuickLaunch
не работает).
Быстрое решение: поставить QuickLaunch по умолчанию и назначить ему ярлык alt+пробел по умолчанию.
К счастью, у меня есть информация от разработчиков, что в какой-то момент они, возможно, включат его в качестве улучшения или замены старого доброго Deskbar. Может быть… когда-нибудь… Скрестим пальцы! (Оставьте заявку, или его так и не будет. Вот здесь). Еще один разработчик сказал, цитата: "по моему мнению, следовать путем Windows, то есть включить поле поиска в начальное меню, это достаточно просто для Beta-версии, я бы сказал, это будет иметь огромное значение для многих". Согласен! (опять же: заявка или не будет).
А почему QuickLaunch находит программу для создания снимков экрана дважды, в /boot/system/apps
и в /boot/system/bin
? Разработчики в курсе, поскольку в файле /boot/system/apps/QuickLaunch/ReadMe.html.
/system/bin ранее не обрабатывался, портированные программы часто попадают в каталог /bin, а это — плохая затея. Можно убрать нежелательные CLI приложения, к примеру с помощью кнопки "Добавить в список игнорирования" в контекстном меню
быстрое решение: фильтровать приложения с /system/bin, существующие также в /system/apps
Неприятность №3: нет аппаратного ускорения
BeOS была обвешана демонстрационными программами. Ни одно видео с BeOS не обходилось без множества окон с воспроизводящимися разными видеороликами. Удивительное достижение на то время. Haiku поставляется с 3D демонстрационными программами, показывающими 3d-шрифты, движущиеся в космосе. (Эй, Haiku ведь не готовят к IPO, а?)
BeOS в 1995, на идеях которой основана Haiku. В то время работала на двух процессорах PowerPC 603 с тактовой частотой 66 МГц
Мы хотим стать Linux в мире звука и видео.
—Жан-Луи Гессе, генеральный директор
Что удивительно, видео и 3D на самом деле не ускоряются аппаратно в Haiku. Я полагаю, что игры тоже.
У разработчиков mr. waddlesplash и Alex von Gluck есть документация для аппаратного ускорения («нужно порядка двух человеко-месяцев»). 3D ускорение будет через Mesa (Haiku, как уже говорилось, использует Mesa и LLVMPipe в качестве базы для OpenGL), для видео можно опереться на FFmpeg или сделать собственное решение (мне известно, что Haiku уже использует FFMpeg внутри, просто без ускоренных драйверов невозможно использовать VDPAU или другой подобный API).
Скрестим пальцы!
Неприятность №4: не ищутся программы
Я знаю, что уже достаточно много CLI программ портировано для Haiku, но я не вижу их в HaikuDepot. Нет даже намеков. В командной строке нет команд "haiku..." или "port..."
~/testing> haikuports
bash: haikuports: command not found
Погуглив, я нашел, откуда скачал avrdude. При запуске по двойному щелчку показалось окно с неудовлетворенными зависимостями. Было бы неплохо, чтобы такое не случалось. (Одна из причин, почему мне так нравятся пакеты .app для Mac и AppImage для Linux).
От разработчиков я узнал, что "теоретически" есть система, предотвращающая это. Видимо ей нужно больше любви.
Что же надо сделать? Здесь есть инструкции для тех, кто желает портировать программы для Haiku, но нет инструкций тем, кто просто желает пользоваться портированными программами. Тут-то я и встрял.
Разработчик сказал мне: "Мы не упоминаем о HaikuPorts, потому что 99.9% пользователей не обязаны знать или заботиться о том, как именно эти пакеты создаются и появляются в HaikuDepot". Согласен. Разговор о HaikuDepot, и о том, как получить что-то оттуда, потому что интерфейс HaikuDepot это не показывает (к примеру, avrdude
cli). По всей видимости, должен быть флажок, отображающий приложения CLI в интерфейсе HaikuDepot, но я его не нашел, а может, его и не существует. ("Рекомендуемые" или "Все пакеты»… оно вам надо? Нет, не хочу смотреть "все" пакеты, предполагаю, что будет показано множество библиотек. Что-то вроде старого доброго Synaptic).
Вместо этого я нашел. Также не в курсе, как его поставить (Говорят, что HaikuArchives это "хранилище поддерживаемого программного обеспечения", а также, что "все стоящие программы уже есть в HaikuPorts" — нужны интеграторы).
Еще чуток погуглив, я нашел:
/> pkgman search avrdudeStatus Name Description
-------------------------------
avrdude A tool to up/download to AVR microcontrollers
Ух ты! Было бы неплохо сделать эту команду более заметной. Один из разработчиков подтвердил, что "pkgman — cli аналог для HaikuDepot". Почему же ее тогда не назвали haikudepot
?
Первым делом я поставил command_not_found-0.0.1~git-3-any.hpkg. Теперь могу делать так:
/> file /bin/bash
DEBUG:main:Entered CNF: file
This application is aviaiblible via pkgman install file
быстрое решение: добавить
command_not_found-*-any.hpkg
в установку по умолчанию.
Разработчик Haiku считает, что "в Haiku, в отличие от Linux, нет реальной нужды в command-not-found", потому что "можно просто запустить pkgman install cmd:commandname". Ну откуда мне, "простому смертному", знать об этом?!
Пакеты, менеджеры пакетов, зависимости. Тот, что в Haiku, конечно намного умнее, чем большинство, но все же это менеджер пакетов:
/> pkgman install avrdude100% repochecksum-1 [65 bytes]
Validating checksum for Haiku…done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts... done.
100% repocache-2 [951.69 KiB]
Validating checksum for HaikuPorts... done.
Encountered problems:
problem 1: nothing provides lib:libconfuse>=2.7 needed by libftdi-1.4–7
solution 1:
- do not install “providing avrdude”
Please select a solution, skip the problem for now or quit.
select [1/s/q]:
Менеджеры пакетов делают то, что всегда, так или иначе, делают менеджеры пакетов независимо от операционной системы. Есть причина, по которой меня тянет — я уже говорил, нет? — к пакетам .app и AppImages.
Помимо этого здесь отсутствуют некоторые весьма популярные приложения с открытым исходным кодом:
/> pkgman install inkscape
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku…done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts…done.
*** Failed to find a match for “inkscape”: Name not found
Ответ разработчиков: "Поскольку нету Gtk — не будет Inkscape". Понял. Еще один разработчик добавил: "Зато у нас есть удивительный WonderBrush". Не знал о таком, но его ведь не видно в HaikuDepot, да и откуда бы? (поправка: надо было переключиться на вкладку "Все пакеты»! Совершенно упустил этот момент!)
/> pkgman install gimp
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku... done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts... done.
*** Failed to find a match for “gimp”: Name not found/> pkgman install arduino
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku... done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts... done.
*** Failed to find a match for “arduino”: Name not found
Мне известно, что "arduino был там раньше"… куда все подевалось?
Кроме прочего, меня удивил факт «техноговорливости": столько строчек выводится просто так, чтобы в конце выдать: "это программное обеспечение не доступно".
Неприятность №5: различные шероховатости, которые стоит подправить
Переключение между приложениями
Скучно без alt+tab для переключения приложений. Сtrl+tab работает, но как-то кривенько.
Подсказка от разработчиков: если я включу раскладку от Windows, Cmd и Ctrl поменяются местами, и alt+Tab станет привычным. Но я хочу чувствовать Mac, работая за клавиатурой от PC!
Замечание от разработчиков: "Переключение ctrl+tab на alt+tab удивит некоторых пользователей". Простое решение: включить оба! (я, как пользователь Mac, Windows и Linux с Gnome, KDE, Xfce все равно не знаю, чего ожидать).
Переключение приложений через ctrl+tab используя Twitcher. Местами он появляется, иногда не с первого раза
Что еще хуже: ctrl+tab иногда показывает окно с иконками приложений, а иногда — нет. Кроме прочего, порядок переключения приложений выглядит случайным: StyledEdit-WebPositive-обратно StyledEdit-WebPositive-StyledEdit-окно с иконками приложений… Программная ошибка? (Может, кто знает, есть ли инструмент записи Gif-изображеинй для Haiku?) Поправка: это такая особенность, а не ошибка.
Короткое нажатие сочетания ctrl+tab переключает непосредственно на предыдущее приложение без отображения окна Twitcher. Если удерживать сочетания дольше, получается то, к чему я уже привык.
Shortcuts
Если говорить о сочетаниях клавиш, то как только вы сообразили, что все схоже с Mac — автоматически попробуете использовать привычные сочетания… К примеру, в диалоговых окнах "Открыть..." и "Сохранить как..." мне хочется нажать alt+d для каталога "рабочий стол", ну и так далее.
У разработчиков "есть возможность добавить это", "в заявку на улучшение о файловых диалогах". Я бы создал такую заявку, будь местный issue tracker на GitHub или GitLab, где у меня есть учетные записи.
Но, как я уже пояснил ранее, я не могу зарегистрироваться в их системе. (Как вы уже наверное догадались, я хочу подчеркнуть легкость при работе с подобными вещами при использовании общедоступных сервисов типа GitHub или GitLab). Поправка: https://dev.haiku-os.org/ticket/15148
Несоответствия
Приложения на Qt и "родные" приложения различаются поведением. К примеру, можно удалить последнее слово с помощью alt+backspace в приложениях на Qt, но невозможно в родных. Возможно, есть и другие различия при редактировании текста. Хотелось бы, чтобы такие несоответствия убрали.
Поправка: я еще не окончил писать эту статью (я показал ее сначала на канале разработчиков Haiku для сбора комментариев), как выяснилось, что это несоответствие исправили! Невероятно! Как же я люблю проекты с открытым исходным кодом! Спасибо, Kacper Kasper!
Примечания
Я все еще в процессе изучения Haiku, а она продолжает меня впечатлять. Несмотря на то, что сегодня я сосредоточился на описании неприятностей, не могу не напомнить, почему эта операционная система настолько интригующая. Ниже — несколько примеров. Просто напоминание, чтобы увидеть как в Haiku делаются концептуально правильные вещи.
Если дважды щелкнуть по исполняемому файлу, у которого нет нужных библиотек, в Linux ничего не видно. В Haiku появится приятный графический диалог с информацией о проблеме. Давно мечтал о подобных вещах в Linux, и до сих пор в восторге от того, что это сделано правильно в Haiku. Этим примером показано, что операционная система является согласованной на всех уровнях. Результат — элегантность, красота и простота, даже в таких случаях, как обработка ошибок.
Увлекательное заглядывание под капот.
Документация по QuickLaunch гласит:
Может быть 2 причины, по которым QuickLaunch не найдет приложение:
- Приложение находится не на разделе с BeFS, или раздел BeFS не отформатирован для поддержки запросов.
- Приложение не имеет надлежащего атрибута BEOS:APP_SIG. В этом случае попросите разработчика приложения добавить его, или попробуйте последовать
такому совету: если используете приложение или скрипт, которые не отображаются в QuickLaunch (и находятся в доступном для записи месте) — попробуйте добавить эти атрибуты в терминале.addattr BEOS:TYPE application/x-vnd.Be-elfexecutable /path/to/your/app-or-script
addattr BEOS:APP_SIG application/x-vnd.anything-unique /path/to/your/app-or-script
Это дает некоторое представление о том, как на самом деле работает магия, подобная Launch Services, которой я продолжаю восхищаться (и которая напрочь отсутствует в рабочих окружениях на Linux).
Не менее увлекательно "Открыть с помощью..."
Выберите файл, нажмите alt+I, после чего на информационном экране можно выбрать, какое приложение может открывать определенный файл.
В Haiku я могу переопределить приложение для открытия одного конкретного файла. Круто?
Все это работает, даже при отсутствующем расширении имени файла, и я могу, наконец-то, указать для разных файлов одного типа, что они должны открываться в разных приложениях, что очень сложно, если не почти невозможно, в рабочих окружениях Linux.
Заключение
Как я уже писал вчера, Haiku открыла мне глаза, показала, как рабочее окружение может "просто работать". На второй день я также нашел несколько моментов, явно нуждающихся в доработке.
Ни один из них не остановит работу. Я реально взволнован будущим этой личной операционной системы для настольных компьютеров. Это долгожданное развитие за пределами "рабочих окружений Linux", продолжающих показывать серьезные, не решаемые в ближайшее время, архитектурные проблемы.
Надеюсь на Haiku.
Попробуйте сами! Ведь проект Haiku предоставляет образы для загрузки с DVD или USB, формируемые ежедневно. Для установки достаточно скачать образ и записать его на флешку с помощью Etcher
Появились вопросы? Приглашаем вас в русскоязычный telegram-канал.
Обзор ошибок: Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS
От автора перевода: это вторая статья из цикла про Haiku.
Список статей: Первая
Автор: Павел