Here in the future I run multiple Firefoxes, each with unique Dock icons, app names, and unique & separate user profiles.
My motivations
- to have multiple Gmail, Twitter, GitHub etc. accounts simultaneously logged-in
- to group websites by concept: coding, comms, news, finance, video, music
- to label them by concept /Applications and the tab-switcher, and provide unique visual identity with different MacOS .icns file
- to bucket my cookie exposure, in order to avoid over-sharing my movements about the internet with le Goog, social media, and advert tracking firms
How I did it
1. Copy Firefox (bulky at ~360MB per copy, I know, but haven't found another viable option, see below)
- Duplicate
/Applications/Firefox.app using Cmd-D or sudo cp -r ...
- Rename the new app folder from
Firefox copy.app to whatever, FF Proxied.app in my case
2. Give your FF copy a new visual identity
- Change the icon by right-clicking
FF Proxied.app and clicking Get Info, then drag your new icon onto the Firefox icon, replacing it. Close the Get Info dialog
- You can create a
.icns file using the Python console script generate-iconset made by retif. Be sure to start from a square PNG image; I use GIMP to make the background transparent by adding an alpha channel.
- Change the app label (displayed in macOS's menubar) by editing
FF Proxied.app/Contents/Resources/en.lproj/InfoPlist.strings and changing its contents from CFBundleName = "Firefox"; to CFBundleName = "FF Proxied";
3. Give your FF copy its own user profile
4. Add your new FF copy to the Dock
- in Finder, navigate to
FF Proxied (or whatever you named yours), and drag it onto the Dock
5. Test it
- click your "new app" on the Dock
Upsides
- separate app instances
- separate visual identities (icons, labels)
- provides a fairly durable and concept-limited container for groups of websites
- I no longer hunt for open tabs anymore (yes I used the
switch to tab feature before this, but that doesn't solve the concept-grouping need)
- better than all the tab and window organizer extensions I've tried on both FF and Chrome
Downsides
- more disk space consumed
- each copy will prompt you update when new versions come (but each copy does index update only its own copy)
- the overhead of running multiple FF instances
- you have to set up preferences from scratch for each FF copy
- I tried copying prefs folders, but they appear to have baked in whatever path they were created on, annoyingly
Other options I tried
- Platypus: no joy; it's meant for CLI scripts, not GUI apps
- Script Editor: same experience as @Nickolay (above)
- Firefox's Multi-Account Containers extension? Not in my experience, because-
- a domain name can belong only to a single container
- therefore having several gmail.com's open doesn't work very well
- opening new tabs for a container is awkward
- the extension doesn't seem to manage cookie separation very well, and sometimes I find that a site I logged into on one tab, will not be logged in when I visit the same site in a new tab
- Symlinking all but the menubar label file (
FF Coding.app/Contents/Resources/en.lproj/InfoPlist.strings)
- This runs into a weird bug where Firefox cannot access files under symlinked folders, e.g. .../Content/Resources/omni.ja (zipfile archive apparently containing Firefox's JS chrome code)
- see my attempt at a Firefox symlinker script here
- If the symlink bug was fixed, symlinked clones of Firefox would mainly cost the diskspace for the .icns file, folders & symlinks, and
InfoPlist.strings
All corrections & suggestions will be appreciated.