Quero melhorar meu script autônomo adicionando algum complemento do Firefox, mas não consigo encontrar o caminho,
Alguém pode ajudar a descobrir como?
Exemplo: (deseja instalar o plugin adblockPlus e definir uma nova página da web padrão)
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
Desde já, obrigado.
Responder1
Usando seu método
gksudo firefox -install-global-extension addon-1865-latest.xpi
parece fazer o truque para você. Isso instalará a extensão para todos os usuários do seu sistema.
Para instalar a extensão apenas para o seu usuário, use o caminho da extensão como argumento
firefox addon-1865-latest.xpi
Você ainda precisa clicar no Install
botão!
Automatizando a instalação
Firefox
não precisa do nome do arquivo do complemento, mas do identificador do complemento como nome do pacote. Isso significa que se você está planejando instalar um complemento sem intervenção do usuário, você precisa extraí-lo para uma pasta com o nome da string identificadora do complemento, não o nome do complemento.
A string identificadora pode ser encontrada nas primeiras linhas do arquivo de manifesto de instalação do complemento install.rdf
e tem a seguinte aparência: <em:id>{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}</em:id>
. Tudo dentro de {}
(incluindo as chaves) é o identificador.
Para que um complemento funcione, você precisa extrair o pacote, renomear a pasta que contém os arquivos para a string identificadora do complemento e colocá-la na pasta global de complementos ou na pasta de complementos do usuário.
Instalação global de complementos
Se você deseja instalar uma extensão automaticamente para todos os usuários do seu sistema, você precisa extraí-la, renomear a pasta que contém o complemento para a string id do complemento e copiá-la para a firefox
pasta de extensões globais /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
, qualquer coisa que você usar lá será chamada. automático quando um usuário abre firefox
.
Instalação específica do usuário
Se você deseja instalar uma extensão automaticamente para apenas um usuário em seu sistema, você precisa extraí-la, renomear a pasta que contém o complemento para a string de id do complemento e copiá-la para a firefox
pasta de extensões do usuário /home/user_name/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
(crie-a se não existir) , qualquer coisa que você usar lá será chamada automaticamente quando um usuário abrir firefox
.
Como preparar um complemento para instalação automática – Exemplo
Crie uma extensions
pasta em sua casa e baixe o complemento nela
mkdir ~/extensions
cd ~/extensions
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
Extraia-o e exclua o original
unzip ~/extensions/addon-1865-latest.xpi
rm ~/extensions/addon-1865-latest.xpi
Leia a primeira linha do install.rdf
arquivo para obter o id do addon (neste caso será {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}). e crie uma pasta com esse nome
mkdir ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
Mova todos os arquivos da sua extensions
pasta para a pasta recém-criada ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
e você estará pronto para instalar movendo a {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
pasta, conforme descrito, para uma instalação local ou para uma instalação global.
Como definir a página inicial padrão
Para alterar sua página inicial sem usar as preferências dentro do firefox você tem que editar ~/.mozilla/firefox/*.default/prefs.js
(onde *.default
está uma pasta ~/.mozilla/firefox
criada para seu usuário) e adicionar esta linha no final dela
user_pref("browser.startup.homepage", "http://uptechtalk.com");
ou usando este comando
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> ~/.mozilla/firefox/*.default/prefs.js
Você precisa fazer isso após fechar firefox
ou o programa substituirá a configuração ao sair.
Se o seu usuário ainda não usou firefox
e você deseja definir a página inicial para todos os novos usuários (definir a página inicial globalmente), use este comando
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> /etc/xul-ext/ubufox.js
Comentários sobre sua pergunta
-silent
não existe, você será solicitado a instalar essa xpi
extensão de qualquer maneira e deverá clicar no botão para instalá-la;
-setDefaultBrowser
não definirá sua página inicial, tornará firefox
seu navegador padrão
Responder2
Isso é problemático, pois em diferentes versões do Firefox, coisas diferentes funcionam e, em algumas, nada funciona. Para as versões mais recentes basta renomear o .xpi para <addon id>.xpi
e colocá-lo em uma pasta de extensões. Posteriormente, ao iniciar o Firefox, você será solicitado a aceitar a instalação de todos os complementos adicionados lá.
Aqui estão algumas funções BASH que facilitam sua vida.
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
}
Vamos instalar o Adblock..
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
install_addon addon-1865-latest.xpi "$EXTENSIONS_USER"
Responder3
Para as versões mais recentes do Firefox, o procedimento foi bastante simplificado!
- Descompactar
extension.xpi
- Ler
applications.gecko.id
demanifest.json
- Renomear
extension.xpi
para<ID>.xpi
- Copie para uma das pastas de instalação padrão listadasaqui
Responder4
POR FAVOR, ESTEJA CIENTE
A partir do Firefox 74, JÁ NÃO É POSSÍVEL realizar esta tarefa.
Não gaste mais horas tentando fazer isso funcionar!