| |
— | doc:firefox:scripter_firefox [2021/10/28 22:02] (Version actuelle) – créée - modification externe 127.0.0.1 |
---|
| ====== Scripter firefox ====== |
| Automatiser des changement des profil firefox via script. |
| |
| Testé sur 78.15-esr |
| |
| <note important>Piste alternative pour faire mieux que mes hacks : https://github.com/mozilla/policy-templates (merci @smortex)</note> |
| |
| |
| ===== Changers about:config ===== |
| <code>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 |
| }</code> |
| Exemple : |
| <code>#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}"' |
| </code> |
| |
| ===== Changer les marque pages ===== |
| <code>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" |
| }</code> |
| |
| Exemple : |
| <code>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 |
| </code> |
| |
| ===== Ajouter une extension ===== |
| <note tip>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.</note> |
| |
| <code>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" |
| } |
| </code> |
| Exemple : |
| <code>#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/" |
| </code> |