ПОЖАЛУЙСТА, БУДЬТЕ ОСТОРОЖНЫ

ПОЖАЛУЙСТА, БУДЬТЕ ОСТОРОЖНЫ

Я хочу улучшить свой автоматический скрипт, добавив некоторые дополнения к Firefox, но не могу найти способ,

Может ли кто-нибудь помочь узнать, как это сделать?

Пример: (Хотите установить плагин adblockPlus и задать новую веб-страницу по умолчанию)

wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
firefox -silent -install-global-extension addon-1865-latest.xpi -setDefaultBrowser www.google.es

Заранее спасибо.

решение1

Используя ваш метод

gksudo firefox -install-global-extension addon-1865-latest.xpiКажется, это сработает для вас. Это установит расширение для всех пользователей в вашей системе.

Чтобы установить расширение только для вашего пользователя, используйте путь к расширению в качестве аргумента.

firefox addon-1865-latest.xpi

Но вам все равно придется нажать Installкнопку!

Автоматизация установки

Firefoxне нужно имя файла дополнения, а идентификатор из дополнения в качестве имени пакета. Это означает, что если вы планируете установить дополнение без вмешательства пользователя, вам нужно извлечь его в папку с именем строки идентификатора дополнения, а не имени дополнения.

Строку идентификатора можно найти в первых строках файла манифеста установки дополнения install.rdf, и она выглядит следующим образом: <em:id>{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}</em:id>. Все, что находится внутри {}(включая фигурные скобки), является идентификатором.

Чтобы аддон заработал, вам необходимо извлечь пакет, переименовать папку, содержащую файлы, в строку идентификатора аддона и поместить ее либо в глобальную папку аддонов, либо в пользовательскую папку аддонов.

Глобальная установка дополнения

Если вы хотите автоматически установить расширение для всех пользователей в вашей системе, вам необходимо извлечь его, переименовать папку, содержащую дополнение, в строку идентификатора дополнения и скопировать ее в firefoxглобальную папку расширений /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/. Все, что вы там используете, будет автоматически вызываться при открытии пользователем firefox.

Установка, специфичная для пользователя

Если вы хотите автоматически установить расширение только для одного пользователя в вашей системе, вам необходимо извлечь его, переименовать папку, содержащую дополнение, в строку идентификатора дополнения и скопировать ее в папку firefoxрасширений пользователя /home/user_name/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/(создайте ее, если она не существует). Все, что вы там используете, будет автоматически вызываться, когда пользователь открывает файл firefox.

Как подготовить дополнение для автоматической установки - Пример

Создайте extensionsпапку у себя дома и загрузите в нее дополнение.

mkdir ~/extensions
cd ~/extensions
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi

Извлеките его и удалите оригинал.

unzip ~/extensions/addon-1865-latest.xpi
rm ~/extensions/addon-1865-latest.xpi

Прочитайте первую строку в install.rdfфайле, чтобы получить идентификатор дополнения (в данном случае это будет {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}) и создайте папку с таким именем.

mkdir ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

Переместите все файлы из вашей extensionsпапки в только что созданную папку ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}, и вы будете готовы к установке, переместив {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}папку, как описано выше, для локальной установки или для глобальной установки.

Как установить домашнюю страницу по умолчанию

Чтобы изменить домашнюю страницу, не используя настройки Firefox, вам нужно отредактировать ~/.mozilla/firefox/*.default/prefs.js(где *.defaultвнутри создается папка ~/.mozilla/firefoxдля вашего пользователя) и добавить эту строку в конец

user_pref("browser.startup.homepage", "http://uptechtalk.com");

или с помощью этой команды

echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> ~/.mozilla/firefox/*.default/prefs.js

Это необходимо сделать после закрытия firefox, иначе программа перезапишет настройки при выходе.

Если ваш пользователь еще не использовал firefoxи вы хотите установить домашнюю страницу для всех новых пользователей (установить домашнюю страницу глобально), используйте эту команду

echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> /etc/xul-ext/ubufox.js

Комментарии по вашему вопросу

-silentне существует, вам в любом случае будет предложено установить это xpiрасширение, и вам придется нажать кнопку, чтобы установить его;

-setDefaultBrowserне установит вашу домашнюю страницу, а сделает firefoxее браузером по умолчанию

решение2

Это проблематично, так как в разных версиях Firefox работают разные вещи, а в некоторых не работает ничего. Для новых версий вам просто нужно переименовать .xpi в <addon id>.xpiи поместить его в папку расширений. Когда вы затем запустите Firefox, вам будет предложено принять установку всех дополнений, которые вы там добавили.

Вот несколько функций BASH, которые облегчат вам жизнь.

EXTENSIONS_SYSTEM='/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/'
EXTENSIONS_USER=`echo ~/.mozilla/firefox/*.default/extensions/`

# -------------------------- xpi tools ---------------------------------

get_addon_id_from_xpi () { #path to .xpi file
    addon_id_line=`unzip -p $1 install.rdf | egrep '<em:id>' -m 1`
    addon_id=`echo $addon_id_line | sed "s/.*>\(.*\)<.*/\1/"`
    echo "$addon_id"
}

get_addon_name_from_xpi () { #path to .xpi file
    addon_name_line=`unzip -p $1 install.rdf | egrep '<em:name>' -m 1`
    addon_name=`echo $addon_name_line | sed "s/.*>\(.*\)<.*/\1/"`
    echo "$addon_name"
}

# Installs .xpi given by relative path
# to the extensions path given
install_addon () {
    xpi="${PWD}/${1}"
    extensions_path=$2
    new_filename=`get_addon_id_from_xpi $xpi`.xpi
    new_filepath="${extensions_path}${new_filename}"
    addon_name=`get_addon_name_from_xpi $xpi`
    if [ -f "$new_filepath" ]; then
        echo "File already exists: $new_filepath"
        echo "Skipping installation for addon $addon_name."
    else
        cp "$xpi" "$new_filepath"
    fi
}

Давайте установим Adblock..

wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
install_addon addon-1865-latest.xpi "$EXTENSIONS_USER"

решение3

В последних версиях Firefox процедура значительно упрощена!

  1. Распаковатьextension.xpi
  2. Читать applications.gecko.idизmanifest.json
  3. Переименовать extension.xpiв<ID>.xpi
  4. Скопируйте в одну из стандартных папок установки, указанных ниже.здесь

решение4

ПОЖАЛУЙСТА, БУДЬТЕ ОСТОРОЖНЫ

Начиная с Firefox 74 выполнить эту задачу БОЛЬШЕ НЕВОЗМОЖНО.

Не тратьте больше часы на попытки заставить это работать!

Связанный контент