====== Scripter firefox ======
Automatiser des changement des profil firefox via script.
Testé sur 78.15-esr
Piste alternative pour faire mieux que mes hacks : https://github.com/mozilla/policy-templates (merci @smortex)
===== Changers about:config =====
reconf(){
find "$HOME/.mozilla/firefox/" -name "prefs.js" | while read f
do
if ! grep -q "$1" "$f"
then
echo "user_pref(\"$1\", $2);" >> "$f"
else
#dumbest workaround for browser.uiCustomization.state antislashes
a=$(echo $2 | sed "s|\\\|\\\\\\\\\\\|g")
sed -i 's|^user_pref("'$1'",.*);|user_pref("'$1'", '$a');|' "$f"
fi
done
}
Exemple :
#firefox : activer les extensions ajoutées via script
reconf "extensions.autoDisableScopes" "0"
#firefox : désactiver les brèves/+visité/+highlight
reconf "browser.newtabpage.activity-stream.feeds.snippets" "false"
reconf "browser.newtabpage.activity-stream.feeds.section.highlights" "false"
reconf "browser.newtabpage.activity-stream.feeds.topsites" "false"
#firefox : cacher le moteur de recherche ebay
reconf "browser.search.hiddenOneOffs" '"eBay"'
#firefox : Pocket à désactiver
reconf "extensions.pocket.enabled" "false"
#firefox : pouvoir cycler entre les onglets avec ctrl+tab/ctrl+maj+tab
reconf "browser.ctrlTab.recentlyUsedOrder" "false"
#firefox : ne pas avoir les menus qui clignotent dès qu'on utilise tab
reconf "ui.key.menuAccessKeyFocuses" "false"
#firefox : pas de pub, merci
reconf "browser.newtabpage.activity-stream.showSponsored" "false"
#firefox : correction fr
reconf "spellchecker.dictionary" '"fr"'
#firefox : je désactiverai aussi le bouton "profil" de ff & accès zarbos aux marque-page (ça définit tous les placements du coup)
reconf "browser.uiCustomization.state" '"{\"placements\":{\"widget-overflow-fixed-list\":[],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"downloads-button\",\"ublock0_raymondhill_net-browser-action\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"seen\":[\"https-everywhere-eff_eff_org-browser-action\",\"ublock0_raymondhill_net-browser-action\",\"jid1-kkzogwgsw3ao4q_jetpack-browser-action\",\"developer-button\"],\"dirtyAreaCache\":[\"nav-bar\",\"widget-overflow-fixed-list\"],\"currentVersion\":16,\"newElementCount\":2}"'
===== Changer les marque pages =====
sudo apt install -y sqlite3
addBookmark(){
fk=$(echo "INSERT INTO moz_places (url, title) VALUES('$1', '$2'); select last_insert_rowid();" | sqlite3 "$f")
guid=$(uuidgen | cut -d"-" -f5)
echo "INSERT INTO moz_bookmarks (type, fk, parent, position, title, guid) VALUES(1,$fk,3,0,'$2','$guid');" | sqlite3 "$f"
}
delBookmark(){
echo "DELETE FROM moz_bookmarks WHERE title='$1';" | sqlite3 "$f"
}
Exemple :
find "$HOME/.mozilla/firefox/" -name "places.sqlite" -type f | while read f
do
delBookmark "Debian"
delBookmark "Débuter avec Firefox"
addBookmark "https://www.agendadulibre.org/pages/filter" "Agenda du Libre"
done
===== Ajouter une extension =====
Pour que les extensions soient activées automatique, vérifiez que "extensions.autoDisableScopes" "0" dans about:config ! Sinon ça devra être activé manuellement dans ff.
iAddon() {
xpi=$(curl "$1" | grep -o "https://[a-z./0-9_+-]*.xpi") || exit 1
temp=$(mktemp)
wget "$xpi" --output-document="$temp"
id=$(unzip -p "$temp" "manifest.json" | grep '"id": "' | sed -r 's|.*"(.*)".*|\1|')
find "$HOME/.mozilla/firefox/" -name "extensions" -type d | while read f
do
if ! test -f "$f/$id.xpi"
then
ln "$temp" "$f/$id.xpi"
fi
done
rm "$temp"
}
Exemple :
#I don't care about cookies
iAddon "https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-about-cookies/"
#RSS preview
iAddon "https://addons.mozilla.org/en-US/firefox/addon/rsspreview/"