После двух лет разработки опубликован выпуск 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) теперь привязан к значительной версии браузера и игнорируется после обновления до нового значительного выпуска.
- Изменено оформление строки состояния и предоставлена возможность настройки её содержимого на свой вкус. Для изменения местоположения строки состояния предложена команда 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.