Я хочу улучшить свой автоматический скрипт, добавив некоторые дополнения к 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 процедура значительно упрощена!
- Распаковать
extension.xpi
- Читать
applications.gecko.id
изmanifest.json
- Переименовать
extension.xpi
в<ID>.xpi
- Скопируйте в одну из стандартных папок установки, указанных ниже.здесь
решение4
ПОЖАЛУЙСТА, БУДЬТЕ ОСТОРОЖНЫ
Начиная с Firefox 74 выполнить эту задачу БОЛЬШЕ НЕВОЗМОЖНО.
Не тратьте больше часы на попытки заставить это работать!