Quiero mejorar mi script desatendido agregando algún complemento de Firefox, sin embargo, no encuentro la manera.
¿Alguien puede ayudarme a descubrir cómo hacerlo?
Ejemplo: (Quiere instalar el complemento adblockPlus y configurar una nueva página web predeterminada)
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
Gracias de antemano.
Respuesta1
Usando tu método
gksudo firefox -install-global-extension addon-1865-latest.xpi
parece funcionar para ti. Eso instalará la extensión para todos los usuarios de su sistema.
Para instalar la extensión solo para su usuario, use la ruta de la extensión como argumento
firefox addon-1865-latest.xpi
¡ Aún necesitas hacer clic en el Install
botón!
Automatizando la instalación
Firefox
no necesita el nombre del archivo del complemento sino el identificador del complemento como nombre del paquete. Eso significa que si planea instalar un complemento sin la intervención del usuario, debe extraerlo a una carpeta con el nombre de la cadena de identificación del complemento, no el nombre del complemento.
La cadena de identificación se puede encontrar en las primeras líneas del archivo de manifiesto de instalación del complemento install.rdf
y tiene este aspecto: <em:id>{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}</em:id>
. Todo lo que está dentro {}
(incluidas las llaves) es el identificador.
Para que un complemento funcione, debe extraer el paquete, cambiar el nombre de la carpeta que contiene los archivos a la cadena de identificador del complemento y colocarla en la carpeta global del complemento o dentro de la carpeta del complemento del usuario.
Instalación de complemento global
Si desea instalar una extensión automáticamente para todos los usuarios de su sistema, debe extraerla, cambiar el nombre de la carpeta que contiene el complemento a la cadena de identificación del complemento y copiarla a la firefox
carpeta de extensiones globales /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
, se llamará todo lo que use allí. Automático cuando un usuario abre firefox
.
Instalación específica del usuario
Si desea instalar una extensión automáticamente para un solo usuario en su sistema, debe extraerla, cambiar el nombre de la carpeta que contiene el complemento a la cadena de identificación del complemento y copiarla a la firefox
carpeta de extensiones de usuario /home/user_name/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
(créela si no existe). , todo lo que utilice allí se recuperará automáticamente cuando un usuario abra firefox
.
Cómo preparar un complemento para instalación automática - Ejemplo
Crea una extensions
carpeta en tu casa y descarga el complemento en ella.
mkdir ~/extensions
cd ~/extensions
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
Extraelo y borra el original.
unzip ~/extensions/addon-1865-latest.xpi
rm ~/extensions/addon-1865-latest.xpi
Lea la primera línea del install.rdf
archivo para obtener la identificación del complemento (en este caso será {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}). y crea una carpeta con ese nombre
mkdir ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
Mueva todos los archivos de su extensions
carpeta a la recién creada ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
y estará listo para instalar moviendo la {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
carpeta, como se describe, para una instalación local o para una instalación global.
Cómo configurar la página de inicio predeterminada
Para cambiar su página de inicio sin usar las preferencias dentro de Firefox, debe editar ~/.mozilla/firefox/*.default/prefs.js
(donde *.default
hay una carpeta interna ~/.mozilla/firefox
creada para su usuario) y agregar esta línea al final.
user_pref("browser.startup.homepage", "http://uptechtalk.com");
o usando este comando
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> ~/.mozilla/firefox/*.default/prefs.js
Debe hacerlo después de cerrar firefox
o el programa sobrescribirá la configuración al salir.
Si su usuario aún no lo ha utilizado firefox
y desea configurar la página de inicio para todos los usuarios nuevos (establecer la página de inicio globalmente), use este comando
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> /etc/xul-ext/ubufox.js
Comentarios sobre tu pregunta
-silent
no existe, se le pedirá que instale esa xpi
extensión de todos modos y deberá hacer clic en el botón para instalarla;
-setDefaultBrowser
no establecerá su página de inicio, la convertirá en firefox
su navegador predeterminado
Respuesta2
Esto es problemático ya que en diferentes versiones de Firefox, funcionan diferentes cosas y en algunas no funciona nada. Para las versiones más nuevas, sólo tiene que cambiar el nombre del .xpi <addon id>.xpi
y colocarlo en una carpeta de extensiones. Cuando inicie Firefox posteriormente, se le pedirá que acepte la instalación de todos los complementos que agregó allí.
Aquí hay algunas funciones BASH que le hacen la vida más fácil.
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
}
Instalemos Adblock..
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
install_addon addon-1865-latest.xpi "$EXTENSIONS_USER"
Respuesta3
¡Para las últimas versiones de Firefox, el procedimiento se ha simplificado mucho!
- Abrir la cremallera
extension.xpi
- Leer
applications.gecko.id
demanifest.json
- Cambiar nombre
extension.xpi
a<ID>.xpi
- Copie a una de las carpetas de instalación estándar enumeradasaquí
Respuesta4
POR FAVOR TENGA CUIDADO
A partir de Firefox 74, YA NO ES POSIBLE realizar esta tarea.
¡No dediques horas a intentar que esto funcione más!