The real gem of Firefox is Containers. No other browser has something like this. It's something critically missing from Chrome. I don't mean "Just create a private window", I mean being able to create 1 + infinitely many profiles/containers. Firefox has an extension called Temporary Containers that makes this better: Every new tab is a temporary, ephemeral container. By default I get isolation. I have it configured so if I hold Ctrl and click a link it will open in the same existing container (in a new tab). If I want sessions to "join" I can do that, but I get defense/privacy by default.
There's another called Proxy Containers so I can have separate tabs taking separate paths out.
There are many benefits to Chrome and it's dev tools, and I respect the Firefox mission more for all the shit Mozilla has done. But I'm bound to Firefox regardless of the pros and cons because it's the only browser that can do this.
Firefox profiles are so underrated and (seemingly) underused. I create shortcuts for every profile, with the command to launch being `firefox --no-remote -P profilenamehere`. After that, I barely ever see the profile management dialogue, I just use each profile like it's a different browser.
It's convenient to isolate work and personal browsing, convenient to try out different extensions (eg. I have Treestyletabs in one and Sidebery in another, just to evaluate both and see for myself), and the memory usage of running two Firefox profiles is much less than if I ran Firefox and a Chromium browser instead.
I don't like profiles, because I find it hard, impossible maybe, to tell Discord to open the funny links my friends send me in the Personal profile, and Slack to open the work related links in the Professional profile.
I ended up having one profile configuration file and a keyboard shortcut that toggled between two different symbolic links, plus a Gnome extension to display the currently selected profile in the top bar, so I would use one profile during the work hours and another one during the evening, but it was slow, difficult to export to other computers and just messy altogether.
So now I'm using Firefox containers and I'm mostly happy with them. I wish the bookmarks bar would change depending on the currently selected tab however.
That's a useful tip. I need access to several Microsoft live/AD/teams accounts, and they just don't work well in the same browser session.
I've been using chrome profiles to separate these because the Firefox ones were a little clunky; for some reason it never occurred to me to create shortcuts per profile. Thanks!
> I have Treestyletabs in one and Sidebery in another, just to evaluate both and see for myself
You don't have to put them in separate browsers/profiles, you can just switch which one takes the sidebar, on the fly. I use both Grasshopper[1] and Tab Center Reborn or Sideberry and switch between on the fly them depending on what features I need at any specific moment.
Sadly, chrome does a much better job (for me) with chrome profiles and how well they are integrated. Extensions, shorcuts and everything. This is the ONLY thing that keeps me on chrome. Otherwise I would go FF. Safari added new profiles a few days ago. Will test it, and maybe switch to that
If only there would a user friendly/intuitive way to switch profiles like in every other chromium browser.
I tried using the about:profile and created multiple profiles with cli but it is not user friendly at all.
Meanwhile, I am a big fan of multi containers in firefox and wish it was in chrome or edge.
Firefox profiles are indeed great. Especially as they're so easy to backup and restore across machines, even different OS. Some simple fiddling with installs.ini and profiles.ini then run Firefox with -P as you say and you're good to go.
I've used this process for over a decade, probably more than 15 years now I think about it. Hard to remember! Sadly it doesn't work with Firefox on Ubuntu anymore due to that being a snap package. I'm sure there is a simple enough solution to get it working the same with the snap version but I instead prefer to remove the snap version of Firefox on Ubuntu and use the release directly from download.mozilla.org as I have the download, install and restore all automated for Windows, macOS and Linux so why make my life harder with snaps just for Ubuntu? :)
Am a firefox user since 0.9. I see there's a lot of love for Firefox in the responsonses here.
However, the profile UI and general managment experience compared to Chrome/Edge is pure trash. No, container tabs is not a viable substitute (my work and my personal profiles don't even share bookmarks). Yes am aware of a third party addon that requires additional software to be installed - this just proves the point further.
So today I'm using Firefox only for personal and chrome (/edge) profiles for everything else. Only reason I am sticking with Firefox is because of the Android version. If I could get ublock origin working on edge/chrome on android I'd probably abandon Firefox.
Safari really nailed their profile implementation in that regard - separate bookmarks, history and session and that in addition to tab groups. I think Firefox is not far from this, only if they could refine the experience.
What's so bad about typing in: about:profiles, into the address bar and selecting the profile you want to use? Or even creating a shortcut with the: -p, option to select one n starting Firefox.
Genuinely, what else are chrome/edge offering that is a deal breaker for you?
Yeah, and also I’d like it to ask me what container to open for a website sometimes, out of remembered ones. E.g. I have a website I use in just two containers (out of 15), and I like it to ask each time I open a new instance, so I won’t have to choose out of all my instances, just those two.
I'm a heavy user of Firefox profiles, but I have two major feature requests:
- Allow better visual distinction of profiles, e.g. giving them different colors. When you have multiple browsers open on multiple profiles, it's easy to get confused.
- Create a better UX when accidentally launching a profile that's already running. Currrently what happens is that it waits for a timeout and then displays an error message. Instead, it should just give focus to the window already running.
I use https://color.firefox.com/ to differentiate. It's a solid theming system that they built a few years ago, promoted for about a week and then never mentioned again. Probably because they'd rather promote their braindead self-destructing themes (sorry, 'Colorways drops')
My solution to both of these has been to create separate .desktop entries for each profile and give each a theme and a custom icon. That way I can know from the window manager which profiles I have open and which one I'm looking at according to the theme. You can then launch a specific profile through the icon, with Super->"ffwork", or with the right-click->open new window if you have it open already.
The main problem is that I have completely forgotten how to do this multiple times across different machines and I never remember which combo of FF flags and .desktop values necessary to get instances identifying themselves to the dwm as a separate program. I think this is correct though https://askubuntu.com/questions/1209434/how-to-display-two-d...
>Allow better visual distinction of profiles, e.g. giving them different colors. When you have multiple browsers open on multiple profiles, it's easy to get confused.
This would be nice, but one thing you can do for now (though it takes some discipline to not screw up) is to use separate virtual desktops, and put the different profiles on different desktops.
> Allow better visual distinction of profiles, e.g. giving them different colors.
I use the profiles in Brave for that exact reason. The ability to have different colors on the icons in the taskbar and the browser chrome was the reason I gave Brave a go in the first place. Now it is a feature I cannot live without.
I have a number instances + one with Chrome/macOS for each client/entity and certain activities.
Each browser has a different set of extensions, and adblock rules (I can't go on hackernews, except with my social media browser). My main development browser has more dev extensions for example.
It also makes tab-management easier, as I can just close the "work browser". All of them have a separate instance, icon, and color. It helps me focus, as I don't accidentally see time-wasting websites, and if I'm not in my media browser, I'll get an error when trying to navigate to one of them out of habit.
It wasn't easy to get working perfectly, as I had to create multiple instances of Chrome, which also means signing the apps. All profiles and app-data are in a separate folder. Not doing it like this means you don't get to cmd-tab to the other browser.
Firefox profiles are great, not denying that. And disabling JS is very important, I've been using noscript for many, many years. Can't even remember when I started.
But having two profiles to switch between JS and non-JS seems like a massive hassle to me. I just hit shift+t in noscript and it temporarily removes restrictions on a tab.
Noscript mainly protects you from those unknown tabs being opened by malware, that you don't expect. But usually on a huge website like theregister or etsy you can disable that while you do your business.
One feature I'd love to see in noscript though is globally disabling noscript by domain. And that is mainly due to AWS using randomized cloudfront subdomains to include assets.
I don't want to whitelist *.cloudfront because anybody can use that to host malware.
Fun fact: you can assign each separate Firefox instance a different X window class with the --class flag. Then your window manager may be configured to raise windows with that class to the top.
E.g. I have something like this in my StumpWM config:
Then all I need to do is type hyper-shift-f and the Javascript Firefox is either raised to the top or if there is none, one is run. Meanwhile, hyper-f raises my normal Firefox.
Highly recommended; I hope that I will be able to continue using it in the future. Does Wayland support window classes and the hyper key?
I started this approach recently, I also change the theme of those Firefox profiles so I remember to close all windows. It is satisfying to keep things separate, and also quite useful to launch somethings as limited apps in a desktop environment.
There are lots of things that could be done better, maybe crowd sourced Android/iOS style permissions per website.
It might be an unpopular opinion, but I think the days when JavaScript was an optional part of the web are past. Now it is an inherent part of the web. We need to accept that there is no going back to the days when it was not. Instead of trying to convince websites to design nonscript versions, we should look for solutions on how to make JavaScript safe. I do not have the answer, but sandboxing, security domains, and rich permission models are things worth considering.
I see people reporting browsing the web with Javascript disabled and I cannot but wonder what is their experience. Not to dismiss them, of course, but I cannot for the life of me figure out what would be of my browsing habits without JS. Perhaps it sounds worse than it really is.
You're not wrong saying that javascript is pretty much mandatory, but it's more de facto. To come out and mandate it would be wrong.
Unfortunately the web is in a state that's worse than just javascript... it's regressed into only supporting certain browsers cough chrome cough. Just one example (i've got more personally) from recently: you can't book flights in air india's website with firefox, but it works in chrome.
> we should look for solutions on how to make JavaScript safe
I'm using Qubes OS, which allows to run many sandboxed Firefox instances, with colorful window frames. I run JavaScript without a fear, since each Firefox runs in its own VM, with no data in it.
I've never tried it, but you can probably transfer entire browsing sessions from sessionstore-backups/. I've used those to rescue lost tabs which Firefox failed to recover auto-magically. The compression format is idiosyncratic; Debian has an out-of-the-box tool for working with it — lz4jsoncat from the package lz4json.
Wish more was said about how this makes the author's life better. Seems to me that most websites would break in small ways without JS, which would be really annoying to deal with.
I’m not really even sure what Private Browsing isn’t enough for the author’s use case. It does pretty much everything they need like revolving around cookies and local data.
I guess they just want to disable JavaScript, because that proves you’re a smart computer nerd, or something.
Disabling JavaScript is like the computer version of fasting.
I have set up firefox to prompt for a profile when it is started. So my workflow for browsing the web at home is to connect to a vpn, start up firefox, select a profile at random (except for the top one), and do my thing. Each profile is set to remove cookies, history, etc on close. I have more than one privacy-oriented profile because in case things are leaking hopefully I'm hitting sites from different profiles and at least confusing the trackers somewhat. I also randomly select a vpn server to connect to. I keep one tab (the top one) that I use in the open for sites that won't let me connect with a vpn, like my bank.
I keep bookmarks in a local html file which is set as the homepage for each profile.
All so I can watch let's play videos or research an obscure technical topic or whatever.
biggest problem is clicking a link outside of the browser... which one will it open in? seems to be the first opened, but then you want to open a link and that browser wants to update, so you have to restart it.. now it's not the first opened anymore, so you have to close all other browsers too before opening the first again and then the others.
I use them for multiuser and multi-purpose usecases. And it combines nicely with "Progressive Web Apps" so I can have, for example, a youtube app that has all my youtube specific extensions.
The only time I have had friction with profiles, is with some Google SSO as I use an unofficial extension called Google Container and sometimes the redirect just doesn't work.
I do something similar, but I use a bash script with rofi to display a menu of available profiles. I then bind a hotkey (Super-Shift-P for Profiles) that launches the script.
I use Firefox for my daily driver, but for profiles I use librewolf. This makes it easier to keep things separated when using the window manager to switch between windows of the same class (which I bind to Super-`).
#!/usr/bin/env bash
BROWSER="librewolf"
typeset -A menu
# empty value means value is the same as the key
menu["personal"]=""
menu["banking"]=""
rofi_args=(
-p "$BROWSER profile"
-dmenu
-i # case-insensitive
-font "Hack 20"
)
if selection=$(printf "%s\n" "${!menu[@]}" | sort -u | rofi "${rofi_args[@]}"); then
profile=${menu[$selection]}
profile=${profile:-$selection}
nohup "$BROWSER" -P "$profile" &>/dev/null &
fi
[+] [-] throwaway914|2 years ago|reply
There's another called Proxy Containers so I can have separate tabs taking separate paths out.
There are many benefits to Chrome and it's dev tools, and I respect the Firefox mission more for all the shit Mozilla has done. But I'm bound to Firefox regardless of the pros and cons because it's the only browser that can do this.
[+] [-] sundarurfriend|2 years ago|reply
It's convenient to isolate work and personal browsing, convenient to try out different extensions (eg. I have Treestyletabs in one and Sidebery in another, just to evaluate both and see for myself), and the memory usage of running two Firefox profiles is much less than if I ran Firefox and a Chromium browser instead.
[+] [-] Biganon|2 years ago|reply
I ended up having one profile configuration file and a keyboard shortcut that toggled between two different symbolic links, plus a Gnome extension to display the currently selected profile in the top bar, so I would use one profile during the work hours and another one during the evening, but it was slow, difficult to export to other computers and just messy altogether.
So now I'm using Firefox containers and I'm mostly happy with them. I wish the bookmarks bar would change depending on the currently selected tab however.
[+] [-] yjftsjthsd-h|2 years ago|reply
[+] [-] happymellon|2 years ago|reply
Firefox really needs to integrate it!
https://addons.mozilla.org/en-GB/firefox/addon/profile-switc...
[+] [-] mjfisher|2 years ago|reply
I've been using chrome profiles to separate these because the Firefox ones were a little clunky; for some reason it never occurred to me to create shortcuts per profile. Thanks!
[+] [-] qwerty456127|2 years ago|reply
You don't have to put them in separate browsers/profiles, you can just switch which one takes the sidebar, on the fly. I use both Grasshopper[1] and Tab Center Reborn or Sideberry and switch between on the fly them depending on what features I need at any specific moment.
[1]https://news.ycombinator.com/item?id=37306058
[+] [-] molszanski|2 years ago|reply
[+] [-] immenselyblank|2 years ago|reply
Meanwhile, I am a big fan of multi containers in firefox and wish it was in chrome or edge.
[+] [-] satysin|2 years ago|reply
I've used this process for over a decade, probably more than 15 years now I think about it. Hard to remember! Sadly it doesn't work with Firefox on Ubuntu anymore due to that being a snap package. I'm sure there is a simple enough solution to get it working the same with the snap version but I instead prefer to remove the snap version of Firefox on Ubuntu and use the release directly from download.mozilla.org as I have the download, install and restore all automated for Windows, macOS and Linux so why make my life harder with snaps just for Ubuntu? :)
[+] [-] damianh|2 years ago|reply
However, the profile UI and general managment experience compared to Chrome/Edge is pure trash. No, container tabs is not a viable substitute (my work and my personal profiles don't even share bookmarks). Yes am aware of a third party addon that requires additional software to be installed - this just proves the point further.
This issue was reported 13 years ago! https://bugzilla.mozilla.org/show_bug.cgi?id=662025
So today I'm using Firefox only for personal and chrome (/edge) profiles for everything else. Only reason I am sticking with Firefox is because of the Android version. If I could get ublock origin working on edge/chrome on android I'd probably abandon Firefox.
[+] [-] isodev|2 years ago|reply
[+] [-] jklinger410|2 years ago|reply
[+] [-] thrdbndndn|2 years ago|reply
Now I barely use profiles in Firefox while I have 5-6 profiles in Chrome for various things as it's much easier.
[+] [-] account-5|2 years ago|reply
Genuinely, what else are chrome/edge offering that is a deal breaker for you?
[+] [-] dzonga|2 years ago|reply
[+] [-] mikae1|2 years ago|reply
[1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...
[+] [-] walteweiss|2 years ago|reply
[+] [-] rjzzleep|2 years ago|reply
[+] [-] fturst|2 years ago|reply
[+] [-] toenail|2 years ago|reply
[+] [-] pbhjpbhj|2 years ago|reply
[+] [-] stakhanov|2 years ago|reply
- Allow better visual distinction of profiles, e.g. giving them different colors. When you have multiple browsers open on multiple profiles, it's easy to get confused.
- Create a better UX when accidentally launching a profile that's already running. Currrently what happens is that it waits for a timeout and then displays an error message. Instead, it should just give focus to the window already running.
[+] [-] wwarek|2 years ago|reply
For that I simply use different themes and it works perfectly
[+] [-] rozab|2 years ago|reply
[+] [-] enragedcacti|2 years ago|reply
The main problem is that I have completely forgotten how to do this multiple times across different machines and I never remember which combo of FF flags and .desktop values necessary to get instances identifying themselves to the dwm as a separate program. I think this is correct though https://askubuntu.com/questions/1209434/how-to-display-two-d...
[+] [-] shiroiuma|2 years ago|reply
This would be nice, but one thing you can do for now (though it takes some discipline to not screw up) is to use separate virtual desktops, and put the different profiles on different desktops.
[+] [-] TowerTall|2 years ago|reply
I use the profiles in Brave for that exact reason. The ability to have different colors on the icons in the taskbar and the browser chrome was the reason I gave Brave a go in the first place. Now it is a feature I cannot live without.
[+] [-] ivberrOg|2 years ago|reply
[+] [-] jbverschoor|2 years ago|reply
Each browser has a different set of extensions, and adblock rules (I can't go on hackernews, except with my social media browser). My main development browser has more dev extensions for example.
It also makes tab-management easier, as I can just close the "work browser". All of them have a separate instance, icon, and color. It helps me focus, as I don't accidentally see time-wasting websites, and if I'm not in my media browser, I'll get an error when trying to navigate to one of them out of habit.
It wasn't easy to get working perfectly, as I had to create multiple instances of Chrome, which also means signing the apps. All profiles and app-data are in a separate folder. Not doing it like this means you don't get to cmd-tab to the other browser.
[+] [-] INTPenis|2 years ago|reply
But having two profiles to switch between JS and non-JS seems like a massive hassle to me. I just hit shift+t in noscript and it temporarily removes restrictions on a tab.
Noscript mainly protects you from those unknown tabs being opened by malware, that you don't expect. But usually on a huge website like theregister or etsy you can disable that while you do your business.
One feature I'd love to see in noscript though is globally disabling noscript by domain. And that is mainly due to AWS using randomized cloudfront subdomains to include assets.
I don't want to whitelist *.cloudfront because anybody can use that to host malware.
[+] [-] eadmund|2 years ago|reply
E.g. I have something like this in my StumpWM config:
Then all I need to do is type hyper-shift-f and the Javascript Firefox is either raised to the top or if there is none, one is run. Meanwhile, hyper-f raises my normal Firefox.Highly recommended; I hope that I will be able to continue using it in the future. Does Wayland support window classes and the hyper key?
[+] [-] pastage|2 years ago|reply
There are lots of things that could be done better, maybe crowd sourced Android/iOS style permissions per website.
[+] [-] vzaliva|2 years ago|reply
[+] [-] handity|2 years ago|reply
Allowing arbitrary code execution by default cannot be safe.
90% of what JavaScript is used for is totally unnecessary and only makes sense in an ad-based web.
[+] [-] pantulis|2 years ago|reply
[+] [-] throw7|2 years ago|reply
Unfortunately the web is in a state that's worse than just javascript... it's regressed into only supporting certain browsers cough chrome cough. Just one example (i've got more personally) from recently: you can't book flights in air india's website with firefox, but it works in chrome.
[+] [-] fsflover|2 years ago|reply
I'm using Qubes OS, which allows to run many sandboxed Firefox instances, with colorful window frames. I run JavaScript without a fear, since each Firefox runs in its own VM, with no data in it.
[+] [-] perihelions|2 years ago|reply
user.js is a config file you can put your default preferences into, and clone into new profiles:
https://kb.mozillazine.org/User.js_file
(The stuff you configure in the Firefox UI goes into prefs.js, which has the same format).
Things like bookmarks and browsing histories are sorted in places.sqlite. You can clone/transfer/sync those with whatever sqlite tool.
https://kb.mozillazine.org/Places.sqlite
I've never tried it, but you can probably transfer entire browsing sessions from sessionstore-backups/. I've used those to rescue lost tabs which Firefox failed to recover auto-magically. The compression format is idiosyncratic; Debian has an out-of-the-box tool for working with it — lz4jsoncat from the package lz4json.
[+] [-] parasti|2 years ago|reply
[+] [-] dangus|2 years ago|reply
I guess they just want to disable JavaScript, because that proves you’re a smart computer nerd, or something.
Disabling JavaScript is like the computer version of fasting.
[+] [-] godshatter|2 years ago|reply
I keep bookmarks in a local html file which is set as the homepage for each profile.
All so I can watch let's play videos or research an obscure technical topic or whatever.
[+] [-] MrOxiMoron|2 years ago|reply
[+] [-] sakisv|2 years ago|reply
While it's been ages since I last used Chrome I remember that it was so easy to switch between different profiles with a couple of clicks.
Firefox on the other hand really doesn't want you to use them: https://support.mozilla.org/en-US/kb/profile-manager-create-...
We just have to hope that at some point in the future they'll revamp it.
[+] [-] thyrsus|2 years ago|reply
[+] [-] ReptileMan|2 years ago|reply
[+] [-] lefixx|2 years ago|reply
[+] [-] HunOL|2 years ago|reply
Profiles are super useful and allow to separate addons, bookmarks and history for different use patterns (normal browsing, dev, NSFW).
[+] [-] Raed667|2 years ago|reply
https://addons.mozilla.org/en-US/firefox/addon/google-contai...
[+] [-] presto8|2 years ago|reply
I use Firefox for my daily driver, but for profiles I use librewolf. This makes it easier to keep things separated when using the window manager to switch between windows of the same class (which I bind to Super-`).
#!/usr/bin/env bash