Выпуск web-браузера Nyxt 3.0.0

После двух лет разработки опубликован выпуск web-браузера Nyxt 3.0.0, предоставляющего обширные возможности по настройке и изменению поведения любых аспектов работы. Концептуально Nyxt напоминает Emacs и Vim, и вместо готового набора настроек даёт возможность менять саму логику работы, используя язык Lisp. Пользователь может переопределить или перенастроить любые классы, методы, переменные и функции. Код проекта написан на языке Lisp и распространяется под лицензией BSD. Интерфейс может быть собран с GTK или Qt. Готовые сборки сформированы для Linux (Flatpak, Alpine, Arch, Guix, NixOS, Void), Windows и macOS.
>

Для повышения эффективности рабочего процесса браузер оптимизирован для управления с клавиатуры и поддерживает типовые клавиатурные комбинации Emacs, vi и CUA. Проект не привязан к конкретному браузерному движку и использует минимальный API для взаимодействия с web-движками. На базе данного API имеются прослойки для подключения движков WebKit и Blink (по умолчанию применяется WebKitGTK), но при желании браузер можно портировать и на другие движки. В состав входит встроенная система блокирования рекламы. Поддерживается подключение дополнений, написанных на Common Lisp (в планах реализация поддержки WebExtensions, по аналогии с Firefox и Chrome).

Основные возможности:

  • Поддержка вкладок (буферов) и возможность быстрого переключения между открытыми вкладками, используя встроенный поиск (например, чтобы перейти к вкладке с сайтом www.example.com достаточно начать вводить “exa..” и будут показаны имеющиеся вкладки. Каждая вкладка в Nyxt полностью изолирована и может иметь отдельные настройки.
  • Возможность одновременного выделения разных объектов на странице для их использования в качестве аргументов команд. Например, пользователь может одновременно выбрать и совершить действия с несколькими изображениями на странице.
  • Система закладок с поддержкой классификации и группировки по тегам.
  • Возможность поиска по содержимому, охватывая сразу несколько вкладок.
  • Древовидный интерфейс для просмотра истории посещений, позволяющий проследить историю переходов и ветвление.
  • Поддержка тем оформления (например, имеется тёмная тема) и возможность изменения элементов интерфейса через CSS. Режим “dark-mode” позволяющий автоматически применить к текущей странице тёмное оформление, даже если сайт не предоставляет тёмную тему.
  • Строка состояния Nyxt Powerline, через которую можно быстро получить любые данные о состоянии и настройке.
  • Профили данных, дающие возможность изолировать разные типы деятельности, например, в разные профили можно вынести активность, связанную с работой и развлечениями. В каждом профиле используется своя база Cookie, не пересекающаяся с другими профилями.
  • Режим блокировки отслеживания (reduce-tracking-mode), позволяющий ограничить активность различных счётчиков и виджетов, используемых для отслеживания перемещения пользователя между сайтами.
  • По умолчанию включена sandbox-изоляция web-движка – каждая вкладка обрабатывается в отдельном sandbox-окружении.
  • Управление сеансами, пользователь может сохранить часть истории в файл и затем восстановить состояние по этому файлу.
  • Поддержка автозаполнения форм с использованием предопределённого или вычисленного содержимого. Например, можно настроить добавление в поле текущей даты.
  • Возможность загрузки обработчиков, настроек и режимов в зависимости от маски URL. Например, можно настроить включение тёмного режима для Wikipedia при открытии сайта после 10 часов вечера.
  • Возможность вызова внешнего редактора для редактирования определённых полей в web-формах. Например, при необходимости набора объёмного текста можно вызвать текстовый редактор.
  • Режимы принудительного отключения звука и WebGL в выбранных вкладках.
  • Режим визуального выделения текста с использование только клавиатуры.
  • Режим отслеживания изменений (watch-mode), позволяющий автоматически перезагружать страницу через определённое время.
  • Режим визуализации изменений между двумя состояниями страницы.
  • Возможность замены нескольких страниц/вкладок на одну сводную страницу.
  • Поддержка пакетной загрузки по ссылкам на странице (например, разом можно загрузить все изображения).
  • Возможность использования разных цветов для внутренних и внешних ссылок. Поддержка показа URL, на который ведёт ссылка, рядом с текстом ссылки. Поддержка скрытия ссылок для уже ранее открытых URL.
  • Возможность сортировки таблиц на web-страницах по произвольным столбцам.


Основные новшества, предложенные в Nyxt 3.0.0:

  • Изменено оформление буфера с подсказками продолжения ввода команд (prompt buffer). Задействован новый алгоритм формирования рекомендаций, предлагающий более релевантные подсказки. Добавлены новые команды управления буфером рекомендаций.

  • Предложен новый интерактивный интерфейс для просмотра встроенной справки.

  • Обеспечено формирование пакетов в формате Flatpak.
  • Добавлена новая команда migration-guide для упрощения адаптации настроек к новой значительной версии браузера.
  • Файл с автоматическими настройками (auto-config) теперь привязан к значительной версии браузера и игнорируется после обновления до нового значительного выпуска.
  • Добавлена поддержка прикрепления пользовательских скриптов-обработчиков, таких как GreaseMonkey.
  • Изменено оформление строки состояния и предоставлена возможность настройки её содержимого на свой вкус. Для изменения местоположения строки состояния предложена команда status-buffer-position.
  • Добавлена поддержка протоколов Gopher и Gemini.
  • Добавлен режим запуска без монитора, включаемый при помощи опции “–headless”.
  • Добавлена поддержка инструмента для определения цвета (Color-picker).
  • Добавлена настройка hinting-type для выбора стиля подсказок для ссылок.
  • По умолчанию обеспечено восстановление прошлого сеанса после перезапуска.
  • Добавлена команда execute-command для выполнения любого кода на Lisp.
  • Реализован режим предсказания ввода следующих команд, учитывающий прошлую активность.
  • В интерфейсе к менеджеру паролей KeePassXC добавлена поддержка файлов с ключами и возможность блокировки Yubikey.
  • Предоставлена возможность привязки своей истории посещений к каждому буферу (вкладке).
  • Добавлены новые режимы: record-input-field-mode для записи и восстановления полей ввода и remembrance-mode для автоматического кэширования содержимого открытых страниц.
  • Полностью изменено оформление интерактивной среды для Lisp REPL.
  • Добавлены новые команды next-heading, previous-heading, toggle-message-buffer, toggle-status-buffer, toggle-maximize, repeat-key.

Release. Ссылка here.