345 lines
12 KiB
Bash
Executable File
345 lines
12 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
apt-get -y install mozilla-devscripts
|
|
apt-get -y install xul-ext-webdeveloper
|
|
apt-get -y install xul-ext-itsalltext
|
|
apt-get -y install xul-ext-greasemonkey
|
|
apt-get -y install xul-ext-firebug
|
|
apt-get -y install xul-ext-firexpath
|
|
|
|
# See https://www.legroom.net/howto/firefox
|
|
#user_pref("privacy.trackingprotection.enabled "true");
|
|
#user_pref("browser.newtabpage.directory.ping "");
|
|
#user_pref("browser.newtabpage.directory.source, "");
|
|
#user_pref("browser.startup.page", 3);
|
|
#user_pref("browser.urlbar.doubleClickSelectsAll", "true");
|
|
#user_pref("browser.urlbar.clickSelectsAll", "false");
|
|
#user_pref("clipboard.autocopy","false");
|
|
#user_pref("general.warnOnAboutConfig", false);
|
|
#user_pref("geo.enabled","false");
|
|
#user_pref("geo.wifi.uri","localhost");
|
|
#user_pref("browser.search.geoip.url","localhost");
|
|
#user_pref("browser.search.suggest.enabled","false");
|
|
#user_pref("browser.search.geoSpecificDefaults","false");
|
|
#user_pref("browser.reader.detectedFirstArticle", true);//Disable obnoxious Reader View nag popup
|
|
|
|
#// From tor browser
|
|
#user_pref("privacy.firstparty.isolate", true);
|
|
|
|
#// stop thirdparty cookies
|
|
#network.cookie.cookieBehavior=1
|
|
|
|
#// Disable Shield Recipe Client
|
|
#user_pref("app.shield.optoutstudies.enabled", false);
|
|
#user_pref("extensions.shield-recipe-client.enabled", false);
|
|
|
|
# firefox get menu back: used to use RDF before and the people involved still can't keep it flat.
|
|
# I can't see a simple way to use jq to change a value in-place so resort to here-file.
|
|
#xulstore.json
|
|
#"chrome://browser/content/browser.xul": {
|
|
# "toolbar-menubar": {
|
|
# "autohide": "true"
|
|
# }
|
|
#)
|
|
|
|
# debian still uses the localstore.rdf store. Probably not firefox-esr FIXME
|
|
bash -c "cat > /etc/iceweasel/profile/xulstore.json" <<'EOF'
|
|
{
|
|
"about:config": {
|
|
"lockCol": {
|
|
"ordinal": "3"
|
|
},
|
|
"prefCol": {
|
|
"ordinal": "1",
|
|
"sortDirection": "ascending"
|
|
},
|
|
"typeCol": {
|
|
"ordinal": "5"
|
|
},
|
|
"valueCol": {
|
|
"ordinal": "7"
|
|
}
|
|
},
|
|
"chrome://browser/content/browser.xul": {
|
|
"PersonalToolbar": {
|
|
"collapsed": "false"
|
|
},
|
|
"main-window": {
|
|
"height": "683",
|
|
"screenX": "321",
|
|
"screenY": "35",
|
|
"sizemode": "normal",
|
|
"width": "1440"
|
|
},
|
|
"nav-bar": {
|
|
"collapsed": "",
|
|
"currentset": "urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button,firebug-badged-button,greasemonkey-tbb"
|
|
},
|
|
"navigator-toolbox": {
|
|
"iconsize": "small"
|
|
},
|
|
"sidebar-title": {
|
|
"value": ""
|
|
},
|
|
"toolbar-menubar": {
|
|
"autohide": "false"
|
|
}
|
|
},
|
|
"chrome://browser/content/preferences/cookies.xul": {
|
|
"CookiesDialog": {
|
|
"height": "369",
|
|
"screenX": "720",
|
|
"screenY": "289",
|
|
"width": "480"
|
|
}
|
|
},
|
|
"chrome://browser/content/preferences/preferences.xul": {
|
|
"BrowserPreferences": {
|
|
"lastSelected": "paneAdvanced",
|
|
"screenX": "653",
|
|
"screenY": "176"
|
|
}
|
|
},
|
|
"chrome://browser/content/sanitize.xul": {
|
|
"SanitizeDialog": {
|
|
"screenX": "77",
|
|
"screenY": "207"
|
|
},
|
|
"detailsExpander": {
|
|
"class": "expander-up"
|
|
},
|
|
"itemList": {
|
|
"collapsed": "false"
|
|
}
|
|
},
|
|
"chrome://unplug/content/config/config.xul": {
|
|
"cn_unplug2_config": {
|
|
"lastSelected": "tababout",
|
|
"screenX": "709",
|
|
"screenY": "374"
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# FIXME
|
|
# Change firefox/iceweasel preferences in /home and /etc prefs.js
|
|
## firefox pref value - sets the value of the given user_pref to value variable
|
|
#value=2
|
|
#for i in "browser.startup.page"
|
|
#do
|
|
# if grep $i /etc/iceweasel/profile/prefs.js
|
|
# then
|
|
# echo "Found: " $i
|
|
# sed -i "s#^user_pref(\"$i\",.*);#user_pref(\"browser.startup.page\", $value);#" /etc/iceweasel/profile/prefs.js
|
|
# sed -i "s#^user_pref(\"$i\",.*);#user_pref(\"browser.startup.page\", $value);#" /home/*/.mozilla/firefox/*/prefs.js
|
|
# else
|
|
# echo "Not found: " $i
|
|
# echo "user_pref($i, $value);" >> /etc/iceweasel/profile/prefs.js
|
|
# echo "user_pref($i, $value);" >> /home/*/.mozilla/firefox/*/prefs.js
|
|
# fi
|
|
#done
|
|
#
|
|
## firefox pref true - sets the value of the given user_pref to true
|
|
#for i in "privacy.trackingprotection.enabled"
|
|
#do
|
|
# print $1
|
|
# if grep $i /etc/iceweasel/profile/prefs.js
|
|
# then
|
|
# sed -i -e 's/^user_pref($i, \(true\|false\));$/user_pref($i, true);/' /etc/iceweasel/profile/prefs.js
|
|
# sed -i -e 's/^user_pref($i, \(true\|false\));$/user_pref($i, true);/' /home/*/.mozilla/firefox/*/prefs.js
|
|
# else
|
|
# echo "user_pref($i, true);" >> /etc/iceweasel/profile/prefs.js
|
|
# echo "user_pref($i, true);" >> /home/*/.mozilla/firefox/*/prefs.js
|
|
# fi
|
|
#done
|
|
#
|
|
## firefox pref clear - sets the value of the given user_pref to empty
|
|
#for i in "browser.newtabpage.directory.ping" "browser.newtabpage.directory.source" "browser.fixup.alternate.suffix"
|
|
#do
|
|
# print $1
|
|
# if grep $i /etc/iceweasel/profile/prefs.js
|
|
# then
|
|
# sed -i -e 's/^user_pref($i, \(*\));$/user_pref($i, \"\");/' /etc/iceweasel/profile/prefs.js
|
|
# sed -i -e 's/^user_pref($i, \(*\));$/user_pref($i, \"\");/' /home/*/.mozilla/firefox/*/prefs.js
|
|
# else
|
|
# echo "user_pref($i, \"\");" >> /etc/iceweasel/profile/prefs.js
|
|
# echo "user_pref($i, \"\");" >> /home/*/.mozilla/firefox/*/prefs.js
|
|
# fi
|
|
#done
|
|
|
|
#PROFILE_NAME="23k5nqzr.default-1404250880109"
|
|
#
|
|
#PROFILE_DIR="~/.mozilla/firefox/${PROFILE_NAME}"
|
|
#
|
|
#for i in "browser.pocket.enabled"
|
|
#do
|
|
# print $1
|
|
# if grep $i ${PROFILE_DIR}/prefs.js
|
|
# then
|
|
# sed -i -e 's/^user_pref($i, \(true\|false\));$/user_pref($i, false);/' ${PROFILE_DIR}/prefs.js
|
|
# else
|
|
# echo "user_pref($i, true);" >> ${PROFILE_DIR}/prefs.js
|
|
# fi
|
|
#done
|
|
#
|
|
#network.http.speculative-parallel-limit to 0
|
|
#
|
|
#PROFILE_NAME="23k5nqzr.default-1404250880109"
|
|
#
|
|
#PROFILE_DIR="~/.mozilla/firefox/${PROFILE_NAME}"
|
|
#
|
|
#for i in "network.http.speculative-parallel-limit"
|
|
#do
|
|
# print $1
|
|
# if grep $i ${PROFILE_DIR}/prefs.js
|
|
# then
|
|
# sed -i -e 's/^user_pref($i, \(0\|1\));$/user_pref($i, 0);/' ${PROFILE_DIR}/prefs.js
|
|
# else
|
|
# echo "user_pref($i, true);" >> ${PROFILE_DIR}/prefs.js
|
|
# fi
|
|
#done
|
|
|
|
|
|
|
|
|
|
# FIXME try firefox -install-global-extension ${YOUR_XPI_FILE] in a loop
|
|
#ublock-origin https://addons.mozilla.org/firefox/downloads/latest/607454/addon-607454-latest.xpi
|
|
#unplug https://addons.mozilla.org/firefox/downloads/latest/2254/addon-2254-latest.xpi
|
|
#download youtube videos as mp4 https://addons.mozilla.org/firefox/downloads/latest/11869/addon-11869-latest.xpi
|
|
#itsalltext (edit wikipages in external editor) https://addons.mozilla.org/firefox/downloads/latest/4125/addon-4125-latest.xpi
|
|
#web developer https://addons.mozilla.org/firefox/downloads/latest/60/addon-60-latest.xpi
|
|
#toggle web developer toolbar https://addons.mozilla.org/firefox/downloads/latest/61772/addon-61772-latest.xpi
|
|
#firebug https://addons.mozilla.org/firefox/downloads/latest/1843/addon-1843-latest.xpi
|
|
#firebug palemoon requires 1.12 https://getfirebug.com/releases/firebug/1.12/firebug-1.12.0.xpi
|
|
#firepath https://addons.mozilla.org/firefox/downloads/latest/11900/addon-11900-latest.xpi
|
|
#greasemonkey https://addons.mozilla.org/firefox/downloads/latest/748/addon-748-latest.xpi
|
|
#greasefire2 https://addons.mozilla.org/firefox/downloads/latest/567886/addon-567886-latest.xpi
|
|
#redirects fixer https://addons.mozilla.org/firefox/downloads/latest/371815/addon-371815-latest.xpi
|
|
#https everywhere https://addons.mozilla.org/firefox/downloads/latest/229918/addon-229918-latest.xpi
|
|
|
|
|
|
# https://addons.mozilla.org/firefox/downloads/latest/2254/addon-2254-latest.xpi
|
|
|
|
URLS="
|
|
https://addons.mozilla.org/firefox/downloads/latest/748/addon-748-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/607454/addon-607454-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/567886/addon-567886-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/11869/addon-11869-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/4125/addon-4125-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/60/addon-60-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/1843/addon-1843-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/11900/addon-11900-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/371815/addon-371815-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/61772/addon-61772-latest.xpi
|
|
https://addons.mozilla.org/firefox/downloads/latest/229918/addon-229918-latest.xpi
|
|
"
|
|
|
|
pwd
|
|
EXTENSIONS_HOME="~/.mozilla"
|
|
EXTENSIONS_DIR="${EXTENSIONS_HOME}/extensions"
|
|
mkdir -p ${EXTENSIONS_DIR} && ls ${EXTENSIONS_DIR}
|
|
pwd
|
|
|
|
COUNTER=0
|
|
|
|
for URL in ${URLS};
|
|
do
|
|
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
|
pwd
|
|
cd ${EXTENSIONS_DIR}
|
|
EXTENSION_NAME=`echo ${URL} | awk -F'/' '{ print $8 }'| awk -F'.' '{ print $1 }'`
|
|
|
|
echo "---------------------------------------------------------------------------"
|
|
echo EXTENSION URL: ${URL}
|
|
echo EXTENSIONS HOME: ${EXTENSIONS_HOME}
|
|
echo EXTENSION DIRECTORY: ${EXTENSIONS_DIR}
|
|
echo EXTENSION NAME: ${EXTENSION_NAME}
|
|
echo "---------------------------------------------------------------------------"
|
|
|
|
|
|
echo "---------------------------------------------------------------------------"
|
|
echo Downloading in:
|
|
pwd
|
|
echo "---------------------------------------------------------------------------"
|
|
|
|
wget -c ${URL}
|
|
|
|
echo UNZIPPING TO: ${EXTENSIONS_DIR}/${EXTENSION_NAME}
|
|
unzip -q -o -d ${EXTENSIONS_DIR}/${EXTENSION_NAME} ${EXTENSION_NAME}.xpi
|
|
|
|
echo REMOVING: ${EXTENSIONS_DIR}/${EXTENSION_NAME}.xpi
|
|
rm ${EXTENSIONS_DIR}/${EXTENSION_NAME}.xpi
|
|
|
|
#ID=`grep -A3 '<!-- Firefox -->' ${EXTENSION_NAME}/install.rdf | grep \} | awk -F'>' '{ print $2}'| awk -F'<' '{ print $1}'`
|
|
ID=`xmlstarlet sel \
|
|
-N rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# \
|
|
-N em=http://www.mozilla.org/2004/em-rdf# \
|
|
-t -v "//rdf:Description[@about='urn:mozilla:install-manifest']/em:id" \
|
|
${EXTENSION_NAME}/install.rdf`
|
|
|
|
echo ID NUMBER: ${ID}
|
|
echo NUMBER LENGTH: ${#ID}
|
|
|
|
if [ -z "${ID}" ];
|
|
then
|
|
echo "ID empty: poorly formated rdf. next."
|
|
fi
|
|
|
|
|
|
echo "---------------------------------------------------------------------------"
|
|
echo ID: ${ID}
|
|
echo "---------------------------------------------------------------------------"
|
|
|
|
mv ${EXTENSIONS_DIR}/${EXTENSION_NAME} ${ID}
|
|
mkdir -p /var/tmp/extensions
|
|
mkdir -p ~/.mozilla/extensions/
|
|
cp -a ${ID} /usr/share/xul-ext/
|
|
#cp -a ${ID} ~/.mozilla/extensions/
|
|
#cp -a ${ID} /var/tmp/extensions/
|
|
#cp -a ${ID} /usr/lib/iceweasel/extensions/
|
|
#cp -a ${ID} /usr/share/mozilla/extensions/
|
|
#cp -a ${ID} ~/.moonchild productions/pale moon/*.default/extensions
|
|
COUNTER=$((COUNTER + 1))
|
|
echo ${COUNTER}
|
|
done
|
|
|
|
# FIXME installing extensions from the commandline - http://askubuntu.com/questions/73474/how-to-install-firefox-addon-from-command-line-in-scripts
|
|
|
|
# xulstore.json has layout settings. But exists in a autogenerated profile at first run.
|
|
# FIXME xulstore.json location needs fixing.
|
|
# toolbar-menubar
|
|
# PersonalToolbar
|
|
bash -c "cat > xulstore.json" <<'EOF'
|
|
{
|
|
"chrome://browser/content/browser.xul": {
|
|
"PersonalToolbar": {
|
|
"collapsed": "false"
|
|
},
|
|
"main-window": {
|
|
"height": "1040",
|
|
"screenX": "640",
|
|
"screenY": "92",
|
|
"sizemode": "normal",
|
|
"width": "1280"
|
|
},
|
|
"navigator-toolbox": {
|
|
"iconsize": "small"
|
|
},
|
|
"sidebar-title": {
|
|
"value": ""
|
|
},
|
|
"toolbar-menubar": {
|
|
"autohide": "false"
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
|
|
OPT[0]='.["toolbar-menubar"] = {"autohide" : "false"}'
|
|
OPT[1]='.["PersonalToolbar"] = {"collapsed" : "false"}'
|
|
for ((i = 0; i < ${#OPT[@]}; ++i)); do
|
|
OPTION="${OPT[$i]}"
|
|
jq "${OPTION}" xulstore.json > xulstore.json.new && \
|
|
mv -b xulstore.json.new xulstore.json
|
|
done
|