glo*_*oco 34 command-line firefox scripts plugins
我想改进我的无人值守脚本添加一些 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
Run Code Online (Sandbox Code Playgroud)
提前致谢。
Bru*_*ira 27
gksudo firefox -install-global-extension addon-1865-latest.xpi似乎对你有用。这会将扩展安装到您系统上的所有用户。
要仅为您的用户安装扩展,请使用扩展路径作为参数
firefox addon-1865-latest.xpi
Run Code Online (Sandbox Code Playgroud)
你仍然需要点击Install按钮!
Firefox不需要插件文件名,而是插件的标识符作为包名。这意味着,如果您计划在没有用户干预的情况下安装插件,您需要将其解压缩到带有插件标识符字符串名称的文件夹,而不是插件名称。
该标识字符串可以在插件的第一行中找到安装清单文件install.rdf,它看起来像这样:<em:id>{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}</em:id>。中的所有内容{}(包括花括号)都是标识符。
要使插件工作,您需要解压缩包,将包含文件的文件夹重命名为插件标识符字符串,并将其放置在全局插件文件夹或用户插件文件夹中。
如果你想为系统中的所有用户自动安装一个扩展,你需要解压它,将包含插件的文件夹重命名为插件的 id 字符串并将其复制到firefox全局扩展文件夹/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/,你在那里使用的任何东西都会被调用当用户打开时自动firefox。
如果您想为系统中的一个用户自动安装扩展,您需要提取它,将包含插件的文件夹重命名为插件的 id 字符串并将其复制到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
Run Code Online (Sandbox Code Playgroud)
解压并删除原来的
unzip ~/extensions/addon-1865-latest.xpi
rm ~/extensions/addon-1865-latest.xpi
Run Code Online (Sandbox Code Playgroud)
读取install.rdf文件中的第一行以获取插件的 id(在本例中为 {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d})。并创建一个具有该名称的文件夹
mkdir ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
Run Code Online (Sandbox Code Playgroud)
将文件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");
Run Code Online (Sandbox Code Playgroud)
或使用此命令
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> ~/.mozilla/firefox/*.default/prefs.js
Run Code Online (Sandbox Code Playgroud)
您需要在关闭后执行此操作,firefox否则程序将在退出时覆盖设置。
如果您的用户还没有使用firefox,并且您想为所有新用户设置主页(全局设置主页),请使用此命令
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> /etc/xul-ext/ubufox.js
Run Code Online (Sandbox Code Playgroud)
-silent不存在,系统会提示xpi您无论如何都要安装该扩展程序,您必须单击按钮进行安装;
-setDefaultBrowser不会设置您的主页,它将成为firefox您的默认浏览器
这是有问题的,因为在不同版本的 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
}
Run Code Online (Sandbox Code Playgroud)
让我们安装 Adblock..
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
install_addon addon-1865-latest.xpi "$EXTENSIONS_USER"
Run Code Online (Sandbox Code Playgroud)