5 ms·
I had the same experience. Switched to Chrome from Firefox years ago, tried and was disappointed by the initial Quantum release, tried Firefox again with the “C
by edraferi 7y ago
I had the same experience. Switched to Chrome from Firefox years ago, tried and was disappointed by the initial Quantum release, tried Firefox again with the “Chrome is killing uBlock Origin” announcement, very pleased this time.
My main gripe with Firefox at the moment is Sync. It just doesn’t sync everything you need. My Firefox profile is highly customized, with a lot of extensions that all have their own complex config. Sync will keep the actual extensions synced, but not their settings. You have to rely on manual import/export features provided by the extensions themselves. Some first party extensions (eg Containers) don’t even give you that option.
You can get some of that by syncing your profile folder directly, but it’s very fragile. It hasn’t played nice with the generic folder syncing tools I’ve tried.
I think this is painful because Firefox really encourages customization, and it’s really useful! I just don’t want to have to keep track of that customization on every device. I trust Firefox Sync’s security model and want to do more with it.
- auscompgeek 7y agoI believe extensions have to explicitly add support for synchronising settings. For example, uBlock Origin supports Firefox Sync: https://github.com/gorhill/uBlock/wiki/Cloud-storage https://github.com/gorhill/uBlock/wiki/Cloud-storage
- edraferi 7y agoCool, I’ll dig into this. Would be helpful if the Firefox store made it clear if extensions support this. Also, why do some first-party extensions ignore it?? Also: there are other things sync still misses, like config.
- the_pwner224 7y agoFor about:config, I put all my rules in a user.js file. Make that file in a synced folder (Dropbox, Nextcloud, Syncthing, etc.), go to your FF profile folder, and in there make a symlink to the actual synced user.js. http://kb.mozillazine.org/User.js_file http://kb.mozillazine.org/User.js_file Alternatively every about:config option has a corresponding option that enables sync for it. But that gets messy with many options. https://superuser.com/questions/466291/firefox-sync-aboutconfig https://superuser.com/questions/466291/firefox-sync-aboutcon...
- dngray 7y ago> For about:config, I put all my rules in a user.js file. Make that file in a synced folder (Dropbox, Nextcloud, Syncthing, etc.), go to your FF profile folder, and in there make a symlink to the actual synced user.js. That's exactly what I did, except I just forked the ghacks-user.js user.js file with the changes I needed I then made a desktop branch, and an android branch. https://github.com/dngray/ghacks-user.js/tree/fx-desktop https://github.com/dngray/ghacks-user.js/tree/fx-desktop https://github.com/dngray/ghacks-user.js/tree/fx-android https://github.com/dngray/ghacks-user.js/tree/fx-android The main reason I'll never use Chrome is because on Android that means no extensions whatsoever, meaning I'd have to give up uBlock and uMatrix. It's also why I wouldn't buy an iPhone (Firefox on iOS isn't allowed to have extensions). A user.js file can be deployed on Android https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.6-Firefox-Android https://github.com/ghacksuserjs/ghacks-user.js/wiki/1.6-Fire... (I use the non-rooted instructions). On my desktop I have it hooked in with my bootstrap script. I use Yadm https://yadm.io/ https://yadm.io/ #!/usr/bin/env bash firefox() { local -n branches=$1 local b p d="$XDG_CONFIG_HOME"/firefox/ghacks-user.js for p in "${!branches[@]}" do b=${branches["$p"]} printf 'Configuring "%s" on "%s"\n' "$p" "$b" ln -sf "$XDG_CONFIG_HOME"/firefox/chrome/userChrome.css ~/.mozilla/firefox/"$p"/chrome/userChrome.css git --git-dir="$d/.git" --work-tree="$d" checkout "$b" && cp "$d/user.js" ~/.mozilla/firefox/"$p"/user.js done } The function takes in an array: firefox_data_path="mozilla/firefox.json" declare -A fx_profiles while read -r profile; read -r branch; do fx_profiles[$profile]=$branch done < <(jq -r '.[] | .profile, .branch' "$template_data_path/$firefox_data_path") firefox fx_profiles Which simply reads in a bunch of profiles and what branch they are supposed to be from a json file: [ { "profile": "user.default", "branch": "fx-desktop" } ]
- yoklov 7y agoThe storage is more limited for synced extension data than for unsynced data. IMO this is quite unfortunate, and is mostly a consequence of the implementation of extension storage sync being done separately from the rest of sync (which in retrospect was a mistake, but at the time that wasn't clear). Also, the limits are copy-pasted directly from the limits chrome places on sync, so it's possible there are compatibility concerns as well. For config (assuming you mean prefs in about:config), you can add your own prefs to be synced with about:config. If you add a new boolean pref with a value of true using the pattern `services.sync.prefs.sync.<pref you want to sync here>` it will be synced. e.g. to sync `browser.foo.bar` you'd create `services.sync.prefs.sync.browser.foo.bar`. Disclaimer: I work on Firefox sync. [0]: In the future this may be more complex, and you may need to flip an additional pref to get this behavior for non-default prefs.
- mtone 7y ago> For config (assuming you mean prefs in about:config) And userChrome/Content.css... looks like I’ll need to dropbox those. Editing css was essential to make the switch from Vivaldi to FF - yesterday! Getting TreestyleTab et al. to feel like Vivaldi with vertical tabs required some fiddling: sidebar without menu, hidden top tabs, darker text color, etc. In any case, it’s my new daily driver and I'm quite satisfied so far. Even set DDG as the default while at it.
- yoklov 7y agoHmm, I don't think many have requested we sync user{Chrome,Content}.css. It's possible we'd accept a patch to sync them (I'd be for it, at least), but it's not trivial since we don't already have file syncing code. Syncing them with dropbox and symlinking does sound to me to be the most reasonable. Glad you're satisfied other than that!
- edraferi 7y agoOh that’s pretty cool. I’ll try that. I just assumed that this behavior would apply to everything once I turned sync on, and then was disappointed when it didn’t work. I had no idea it was an optional feature. I guess it doesn’t fit the key-value paradigm, but this feature would be a lot more discoverable if there was a “sync?” Attribute next to each about:config item.
- TheArcane 7y agoOh I absolutely detested this as well. Containers is one of my favourite add-ons, and I have it highly customized. But I have to set it up everytime from scratch on a different computer - there's no sync even though Containers is from Mozilla themselves!
- edraferi 7y agoEdit: replied to wrong comment Yeah this is exactly the problem.
- TheArcane 7y agoI think you meant to reply to a different comment. I was lamenting the lack of sync support for the Multi-account Containers add-on.
- OBLIQUE_PILLAR 7y agoThere is a containers sync add on, not from Mozilla. Doesn't always work.
- dtroode 7y agoYes. Sync isn't so good. Now I am going to create a list of FF minuses
- edraferi 7y agoI’d be interested to see an analysis of how it compares to Chrome sync. I don’t think Chrome necessarily has a better solution for extension preference syncing, but I only missed it once I went all-in on Firefox containers.
- dtroode 7y agoDon't have analytics. Just my experience with bookmarks and passwords is better with Chrome
- TheArcane 7y agoPost it to /r/firefox when you're done!
- thomasfedb 7y agoYou can sync your custom prefs, by creating a 'services.sync.prefs.sync.[pref name]' preference set to true for each pref you want to sync. Cumbersome, but probably automatable.
- OBLIQUE_PILLAR 7y agoThere is a container sync add on. I my opinion it should be built into the browser.