GNOME Shell Integration работает, но нативный хост-коннектор не обнаружен: как исправить

Ошибка «нативный хост-коннектор не обнаружен» (native host connector is not detected) появляется на сайте extensions.gnome.org даже тогда, когда браузерное расширение GNOME Shell Integration установлено и включено. Причина почти всегда одна: расширение — это лишь «передатчик», а реальную связь между браузером и GNOME Shell обеспечивает отдельный системный пакет, который либо не установлен, либо не виден браузеру из-за изоляции среды.

Без этого коннектора управлять расширениями GNOME прямо с сайта невозможно: кнопки включения и настройки на страницах расширений просто не появляются. Ниже разберём, как устроена связка «браузер — коннектор — оболочка», как установить недостающий пакет в разных дистрибутивах и что делать, если браузер установлен через Flatpak или Snap.

Как работает связка расширения и нативного коннектора

Браузерное расширение GNOME Shell Integration само по себе не умеет обращаться к GNOME Shell. Оно использует механизм Native Messaging: браузер запускает специальную программу на стороне системы и обменивается с ней сообщениями. Этой программой является пакет chrome-gnome-shell (несмотря на название, он работает и с Firefox, и с Chromium-подобными браузерами).

Когда вы открываете extensions.gnome.org, расширение пытается найти зарегистрированный в системе манифест нативного хоста. Если манифест отсутствует, лежит не в том каталоге или браузер изолирован (Snap, Flatpak), появляется сообщение, что нативный хост-коннектор не обнаружен.

  • 🧩 Расширение в браузере — интерфейс и «мост» к сайту extensions.gnome.org.
  • 🔌 chrome-gnome-shell — системный коннектор, который выполняет установку и переключение расширений.
  • 📄 Манифест Native Messaging — JSON-файл, сообщающий браузеру, где искать коннектор.
  • 🖥️ GNOME Shell — конечный исполнитель: именно она загружает и применяет расширения.

Шаг 1. Проверьте, установлен ли пакет chrome-gnome-shell

Первое действие — убедиться, что коннектор вообще присутствует в системе. Откройте терминал и выполните проверку, соответствующую вашему пакетному менеджеру. Для Debian, Ubuntu и производных:

dpkg -l | grep chrome-gnome-shell

Для Fedora и систем на rpm:

rpm -q chrome-gnome-shell

Если команда ничего не вернула — пакет не установлен, и именно в этом причина ошибки. Если пакет найден, но сайт по-прежнему пишет, что коннектор не обнаружен, переходите к разделам про браузеры в песочнице и расположение манифеста.

📊 Где возникла ошибка «нативный хост-коннектор не обнаружен»?
Firefox из репозитория
Chrome / Chromium
Браузер из Flatpak
Браузер из Snap

Шаг 2. Установка коннектора в популярных дистрибутивах

Имя пакета в большинстве дистрибутивов совпадает — chrome-gnome-shell, — но команды установки различаются. Ниже сводная таблица для основных систем.

ДистрибутивКоманда установкиПримечание
Ubuntu / Debiansudo apt install chrome-gnome-shellПакет в основных репозиториях
Fedorasudo dnf install chrome-gnome-shellДоступен в стандартных репозиториях
Arch Linux / Manjarosudo pacman -S chrome-gnome-shellИмя пакета совпадает
openSUSEsudo zypper install chrome-gnome-shellПроверьте точное имя через поиск пакетов

После установки полностью закройте браузер и откройте его заново — расширение ищет нативный хост при запуске. Затем обновите страницу extensions.gnome.org: вместо предупреждения должны появиться переключатели ON/OFF на страницах расширений.

⚠️ Внимание: не путайте пакет chrome-gnome-shell с браузером Google Chrome. Название историческое — коннектор обслуживает любые браузеры, поддерживающие Native Messaging, включая Firefox.

Шаг 3. Проблема браузеров в Snap и Flatpak

Самая частая причина, при которой пакет установлен, а коннектор всё равно не обнаружен, — браузер, установленный как Snap или Flatpak. Такие приложения работают в изолированном окружении и по умолчанию не видят ни системные манифесты Native Messaging, ни сам хост-процесс за пределами песочницы.

Характерный пример — Firefox в Ubuntu, который в свежих выпусках поставляется как Snap-пакет. Возможные пути решения:

  • 🔄 Установите браузер из классического репозитория (deb/rpm) вместо Snap/Flatpak — самый надёжный вариант.
  • 🧰 Используйте Flatpak-сборку Extension Manager — отдельное приложение для управления расширениями GNOME, которому браузер вообще не нужен.
  • 🛠️ Для Flatpak-браузеров существуют обходные пути с пробросом манифеста в домашний каталог песочницы, но они зависят от конкретного браузера и могут сломаться после обновления.

Шаг 4. Проверка манифеста Native Messaging

Если браузер обычный (не в песочнице), а ошибка сохраняется, проверьте, что манифест нативного хоста лежит там, где его ищет именно ваш браузер. Для системной установки Firefox манифест обычно находится по пути /usr/lib/mozilla/native-messaging-hosts/, для Chromium-подобных браузеров — в /etc/chromium/native-messaging-hosts/ или аналогичном каталоге конкретного браузера.

Убедиться в наличии файла можно командой:

ls /usr/lib/mozilla/native-messaging-hosts/

В выводе должен присутствовать файл с именем вида org.gnome.chrome_gnome_shell.json. Если файла нет — переустановите пакет коннектора. Если файл есть, но браузер установлен в нестандартный каталог (например, собран вручную), может потребоваться скопировать манифест в пользовательский каталог ~/.mozilla/native-messaging-hosts/ — создайте его, если он отсутствует.

⚠️ Внимание: пути к каталогам Native Messaging различаются между браузерами (Firefox, Chrome, Chromium, Brave, Vivaldi используют собственные каталоги). Сверьтесь с документацией вашего браузера, прежде чем копировать манифест вручную.

☑️ Диагностика ошибки «нативный хост-коннектор не обнаружен»

Выполнено: 0 / 5

Шаг 5. Альтернатива: управление расширениями без браузера

Если возиться с Native Messaging не хочется или браузер принципиально оставлен в песочнице, есть два штатных способа обойтись без коннектора вообще. Первый — упомянутый выше Extension Manager: он напрямую работает с каталогом расширений и показывает их состояние, версии и доступные обновления.

Второй — встроенное приложение «Расширения» (Extensions), которое входит в состав современных выпусков GNOME. Оно позволяет включать, отключать и настраивать уже установленные расширения. Установить новое расширение можно и вручную: скачать архив с сайта и распаковать его в ~/.local/share/gnome-shell/extensions/, после чего перезапустить сеанс. Название каталога распакованного расширения должно совпадать с его UUID — этот момент критичен, иначе оболочка его не увидит.

Как узнать UUID расширения для ручной установки

Откройте файл metadata.json внутри архива расширения — в поле "uuid" указано нужное имя. Каталог в ~/.local/share/gnome-shell/extensions/ должен называться точно так же, включая регистр символов.

Когда ничего не помогло

Редко, но бывает, что все компоненты на месте, а сайт всё равно сообщает об отсутствии коннектора. В таком случае вам стоит проверить версию самого расширения в браузере — устаревшие версии могут быть несовместимы с текущей версией сайта. Также полезно посмотреть консоль браузера (обычно открывается клавишей F12): ошибки Native Messaging там отображаются с текстом, который помогает локализовать проблему.

Ещё один возможный сценарий — конфликт старой пользовательской копии манифеста с новой системной. Если вы ранее копировали манифест в домашний каталог вручную, удалите устаревшую копию и проверьте работу снова. Наконец, убедитесь, что сам GNOME Shell исправно загружает расширения: команда gnome-extensions list в терминале должна выводить список установленных расширений без ошибок.

Часто задаваемые вопросы

Почему пакет называется chrome-gnome-shell, если я пользуюсь Firefox?

Название сложилось исторически: коннектор изначально разрабатывался для Chrome. Сегодня он реализует стандартный протокол Native Messaging и одинаково работает с Firefox, Chromium и другими совместимыми браузерами. Отдельного пакета для Firefox не требуется.

Можно ли заставить работать коннектор с браузером из Flatpak?

Прямой доступ изолированного браузера к системному нативному хосту ограничен песочницей. Существуют неофициальные обходные решения с размещением манифеста в каталоге Flatpak-приложения, но их поведение зависит от браузера и версии. Надёжнее использовать Extension Manager.

Опасно ли устанавливать расширения GNOME вручную, распаковывая архивы?

Сама процедура безопасна, если архив скачан с официального сайта extensions.gnome.org. Главное — соблюсти два условия: каталог расширения должен называться по его UUID из metadata.json, а после установки нужно перезапустить сеанс или оболочку, чтобы расширение подхватилось.

Коннектор установлен, но переключатели на сайте не работают. Что проверить?

Убедитесь, что версия GNOME Shell поддерживается выбранным расширением — на странице расширения есть список совместимых версий. Также проверьте вывод команды gnome-extensions list и журнал сеанса на предмет ошибок загрузки расширений.

Нужен ли коннектор, если я пользуюсь Extension Manager?

Нет. Extension Manager обращается к каталогу расширений напрямую и не использует ни браузерное расширение, ни chrome-gnome-shell. Это самый простой вариант для систем, где браузер установлен в изолированном формате.