33
submitted 1 week ago* (last edited 1 week ago) by yo_scottie_oh@lemmy.ml to c/firefox@lemmy.ml

I'm working on a suite of scripts that will enable me to hop Linux distros and get back to business as usual w/ minimal fuss. When I hop distros, I tend to back up my important stuff and blow everything else away so I can start with a clean slate. I have some scripts for updating my backups before the wipe and updating the system after the base install:

sudo apt update && sudo apt upgrade -y

Followed by other commands to install my favorite apps and configure my favorite desktop settings.

One thing that I haven't nailed down yet is restoring my Firefox add-ons through the command line. Searching the web, I'm not even sure this is feasible. I found this post from 2011 in the AskUbuntu forum, but I figure the answer might have changed since then.

I just want to remove as much friction as possible from the distro hopping process. I know I can store /home on a separate partition, but I prefer nice, clean installs followed by scripting in my config changes.

Any tips or advice would be greatly appreciated.

all 22 comments
sorted by: hot top controversial new old
[-] folekaule@lemmy.world 27 points 1 week ago* (last edited 1 week ago)

I think Firefox Sync already restores your profile including add-ons, if you log into Firefox. Of course you may not want that for privacy reasons. In that case, I believe there is a way to self host a sync server, but I will have to go look for the repo for it.

Edit: https://github.com/mozilla-services/syncstorage-rs

[-] yo_scottie_oh@lemmy.ml 12 points 1 week ago

I like to minimize cloud services if I can help it.

[-] folekaule@lemmy.world 13 points 1 week ago

Nothing wrong with that, and self hosting can get complex. My recommendation then is to back up the files in your Firefox profile the old fashioned way.

[-] eksb@programming.dev 16 points 1 week ago

Why not just keep /home on a separate partition? Or just backup ~/.mozilla/?

[-] yo_scottie_oh@lemmy.ml 14 points 1 week ago

Why not just keep /home on a separate partition?

My issue is that over time, a lot of cruft builds up in there from apps I no longer use. I like things nice and clean.

Or just backup ~/.mozilla/?

The thought has crossed my mind. Maybe I should try this next time. Thanks for the idea.

[-] GenderNeutralBro@lemmy.sdf.org 2 points 1 week ago

Perhaps this goes without saying, but if you want to do that, be sure you are installing Firefox through similar means across distros. This will not work with the Flatpak, for example.

Manual installation of Firefox is quite simple, and it self-updates, so that's always an option.

[-] yo_scottie_oh@lemmy.ml 2 points 1 week ago* (last edited 6 days ago)

be sure you are installing Firefox through similar means across distros. This will not work with the Flatpak, for example.

Very good point, I've picked up on this as well. Installed through the native package manager, the profile folder lives under ~/.mozilla/ whereas for flatpaks it's under ~/.var/app/org.mozilla.firefox/.mozilla/.

[-] HouseWolf@pawb.social 13 points 1 week ago

You can backup your .mozilla file from your home to a new install and it'll keep the everything how it was.

I've done it a few times now.

[-] Cevilia 7 points 1 week ago

I know that some distros package Firefox extensions. Debian is one, here's one example: https://packages.debian.org/bullseye/webext-ublock-origin-firefox. So you could sudo apt install webext-ublock-origin-firefox

[-] yo_scottie_oh@lemmy.ml 7 points 1 week ago

Today I Learned. I'll have to look into this. Thanks for the tip!

[-] Ephera@lemmy.ml 2 points 1 week ago

The chance of that working well across distros is pretty low, though, unfortunately...

[-] kalkulat@lemmy.world 5 points 1 week ago* (last edited 1 week ago)

I install and use FF from my home folder. As a result, I can simply copy my 'old' firefox folder and .mozilla folder (containing the FF config files) into the new distro's home. That way all of the features, settings, and extensions remain the same, regardless of the distro I've moved to.

Inside the .mozilla/Firefox/ folder you'll find separate folders for your profiles. The 'about:profiles' window lets you switch between them.If you want to experiment with one, make an archive of its folder. If you try something that doesn't work out, you can throw the messed-up profile away and extract a fresh copy from your archive, all's well. There are also many files INSIDE that profile folder you can toy with. Many, many options in this setup.

[-] Arcane2077@sh.itjust.works 1 points 1 week ago

This is the way

[-] redxef@feddit.org 4 points 1 week ago* (last edited 1 week ago)

I use something like this:

#!/bin/bash

set -euo pipefail
URLS=(
    'https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/'
    'https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/'
    'https://addons.mozilla.org/en-US/firefox/addon/passff/'
    'https://addons.mozilla.org/en-US/firefox/addon/copy-plaintext/'
    'https://addons.mozilla.org/en-US/firefox/addon/duckduckgo-for-firefox/'
    'https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/'
    'https://addons.mozilla.org/en-US/firefox/addon/clearurls/'
    'https://addons.mozilla.org/en-US/firefox/addon/temporary-containers/'
    'https://addons.mozilla.org/en-US/firefox/addon/consent-o-matic/'
)

DOWNLOAD_BASE_URL='https://addons.mozilla.org/firefox/downloads/latest'
_="${FIREFOX:=firefox}"
_="${DST:=/usr/lib/$FIREFOX/browser/extensions}"

if [ $UID -eq 0 ]; then
    SUDO=
else
    SUDO=sudo
fi


download_links=()
for url in "${URLS[@]}"; do
    package_name="$(sed 's_/$__' <<< "$url" | awk -F/ '{print $NF}')"
    download_links+=("$DOWNLOAD_BASE_URL/$package_name/addon-$package_name.xpi")
done

workdir="$(mktemp --directory)"
cd "$workdir"
for url in "${download_links[@]}"; do
    curl -OL "$url"
done

for ext in *.xpi; do
    ext_id="$(unzip -p "$ext" 'manifest.json' | jq -r '(if .browser_specific_settings then .browser_specific_settings else .applications end).gecko.id')"
    target="$DST/$ext_id.xpi"
    echo "$ext -> $target"
    $SUDO install -Dm644 "$ext" "$target"
done

That doesn't handle the extension config though.

[-] trey_a_12@lemmy.world 4 points 1 week ago

Any particular reason you don’t just sign in? Genuine question, and you could even create a dummy account that solely holds those extensions and anything else you would want to sync.

[-] bayleaf@piefed.ca 1 points 1 week ago

I see two parts to OP's question in the title. The first part is installing the extensions and the second part is configuring them. Firefox Sync will automatically install your extensions on a new device, but in the extensions that I've tested, the extension settings will not carry over.

[-] trey_a_12@lemmy.world 2 points 1 week ago

Ahh, very interesting, and excellent point. Thank you for clarifying! I’ve pretty much just used simple extensions like Return YT Dislike and Grammarly, and the few extensions I use that I DO want settings to sync across devices for usually have a setting for it. That’s definitely good to know though, and I’ll keep that in mind for my tech support for the future!

[-] thejevans@lemmy.ml 4 points 1 week ago

You can use Nix with basically any Linux distribution. Here is my Librewolf config as an example: https://codeberg.org/jevans/nix-config/src/branch/main/homeManagerModules/gui-applications/firefox/default.nix

[-] MangoPenguin 3 points 1 week ago

If you don't want to use Firefox sync, you can try just copying the whole profile folder from your backups.

[-] Zahtu@feddit.org 1 points 1 week ago

i would say google is your friend: https://stackoverflow.com/a/37739112 without having tried it

[-] sndmn@lemmy.ca 7 points 1 week ago

You should stop saying that.

this post was submitted on 28 Jul 2025
33 points (100.0% liked)

Firefox

20542 readers
54 users here now

/c/firefox

A place to discuss the news and latest developments on the open-source browser Firefox.


Rules

1. Adhere to the instance rules

2. Be kind to one another

3. Communicate in a civil manner


Reporting

If you would like to bring an issue to the moderators attention, please use the "Create Report" feature on the offending comment or post and it will be reviewed as time allows.


founded 5 years ago
MODERATORS