Firefox

postmarketOS ships the desktop version of Firefox as default in Phosh and Plasma Mobile, the mobile and privacy friendly configuration from mobile-config-firefox. To remove this configuration, uninstall the mobile-config-firefox
package.
Installation
Depending on the user interface you have installed, Firefox is already part of your postmarketOS installation (e.g. in Phosh and Sxmo). For others, install the following two packages:
$ doas apk add mobile-config-firefox firefox-esr
Instead of firefox-esr
, you can also install firefox
to get the slightly newer version (but be aware that sometimes it includes changes that break the mobile configuration, and we need a bit to catch up with it. Help with that is of course always appreciated).
Alternatives
The upstream Firefox packages does not disable most telemetry and similar tracking shipped by upstream. Consider using librewolf
, a privacy-centric fork which disables Mozilla's first-party spyware and analytics:
apk add librewolf
The mobile-config-firefox
customisations might work with Librewolf, but the mobile-config-firefox-librewolf
might be necessary instead.
These config packages are important to fix usability issues like screen width being wrong.
Tips and Tricks
Scale and keyboard on wayland desktop environments
Some desktop environments do not set the env variable MOZ_ENABLE_WAYLAND. As a workaround, you can replace the default Firefox launcher with a custom one.
These commands will create firefox wrapper, which will run firefox with wayland and firefox launcher (icon in menu)
mkdir -p ~/.local/bin/
echo '#!/bin/bash'\n'MOZ_ENABLE_WAYLAND=1 firefox-esr $@' > ~/.local/bin/firefox-esr-wl
chmod +x ~/.local/bin/firefox-esr-wl
mkdir -p ~/.local/share/applications/
cp /usr/share/applications/firefox-esr.desktop ~/.local/share/applications/
sed -i 's/Exec=firefox-esr/Exec=firefox-esr-wl/g' ~/.local/share/applications/firefox-esr.desktop
Run it, then relogin
Tweaks
Disable Sponsored Sites
We don't want this since the wrong amazon is burning!
about:config
browser.newtabpage.activity-stream.showSponsored
set all to false
.
Video Pop Out
You can actually disable the annoying video pop-out in about:config
set:
media.videocontrols.picture-in-picture.enabled
to false
.
Ai features
Disable Ai features, go to about:config
and set
browser.ml.chat.enabled
to false
.
Disable Tab Preview
go to
about:config
and set both
browser.tabs.hoverPreview
to false
.
Hide https in url bar
go to
about:config
and set
browser.urlbar.trimHttps
to true
.
Disable warning when closing tabs
micro ~/.mozilla/firefox/*.default-release/user.js
set it to
user_pref("browser.tabs.warnOnClose", false); // Confirm before closing multiple tabs
Remove Items from URL Bar
Long click onto the item and select remove.
To get rid of the bookmarks star, edit
*/chrome/userChrome.css
and add:
#page-action-buttons{ display:none; }
Remove Items from Menu
Remove the 'Report broken Site' entry with adding to .mozilla/firefox/*.default-release/chrome/userChrome.css
#menu_report_broken { display: none !important; }
Force Website Mobile
Some websites do not show in mobile version and are then hard to read. Press:
ctrl + shift + m
and select iphoneSE layout on top left.
another trick is to scale the page with:
Ctrl - Ctrl +
PGP
Pretty Good Privacy
Since we are using desktop firefox, it is possible to use mailvelope.com to encrypt/decrypt emails in roundcube mail, which is amazing! Just follow the official setup procedure. You might have to scale your display to factor 2 to get all buttons.
Profiles
You messed with Firefox and now you get a warning on launch:
Can not load profile..
just start it with:
firefox-esr -p
and create a new profile.
Policies & Search Engine
Policies
By default, mobile-config-firefox
adds a policies entry to get rid of invasive stuff.
While this is a great idea it my cause some trouble for users living in non-free countries where searching the net is controlled.
To enable google search engine, you can edit:
./etc/firefox/policies/policies.json
See the original file here.
Be aware that, in a free country, it makes sense to avoid google.com as search engine!
Block Search Results
To get rid of reddit, pinterest, youtube, amazon etc. in your search results generate your own filterlist or use my list and copy it to your ublock MyFilter list.
Set Custom Search Engine
Use 4get and define your prefered scraper:
1. in
about:config
look for
browser.urlbar.update2.engineAliasRefresh
and hit the +
so it says true
2. go to settings and under search engine you find a new add
button, click it and enter:
https://4get.bloat.cat/web?s=%s&scraper=qwant&nsfw=yes
there are also other instances:
https://4get.dorfdsl.de/web?s=%s
there are also SearxNG, Whoogle.
Voilà, you set yourself a great private and advertisement free search engine!
fuck surveilance capitalism:
"I need privacy, not because my actions are questionable, because your judgement and intentions are!"
Webapps
(can we remove this?)
WARNING: This no longer works on recent versions of postmarketOS (including stable releases) because Firefox has removed support for the site specific browser mode. You can, though, replace --ssb with --kiosk to achieve a similar result in certain sites. (--kiosk opens websites in kiosk-mode which is the same of a normal browsing session but without the browser UI (Menus,Url-bar,toolbar etc. etc). Some sites do not react well, and it is suggested to memorise the keyboard shortcuts of Firefox, especially the one for closing the active tab and for going backward/forward) |
To create webapps for use with Firefox, the following shell script can be used. It generates a separate Firefox profile for isolation, and adds a desktop entry that opens the corresponding site as a single-site browser (without a url-bar).
#!/usr/bin/env bash
# Create firefox profile
set -e
name=$1
url=$2
# Ugly, copy-pasted from SO
simple_name=$(echo "$name" | awk '{print tolower($0)}' | sed 's/ //g')
echo "Creating webapp $name, using $url."
firefox -CreateProfile $simple_name
profile_dir=$(find ~/.mozilla/firefox/ -maxdepth 1 | grep $simple_name)
echo 'user_pref("browser.ssb.enabled",true);' > $profile_dir/user.js
# Create desktop entry
cat >~/.local/share/applications/$simple_name.desktop <<EOL
[Desktop Entry]
Exec=firefox -P $simple_name --ssb $url
Icon=/home/user/.local/share/applications/$simple_name.png
Type=Application
Terminal=false
Name=$name
StartupNotify=true
StartupWMClass=firefox
EOL
# Get icon
wget $url/favicon.ico -O /tmp/favicon.ico
convert /tmp/favicon.ico /tmp/favicon.png
mv /tmp/favicon.png .local/share/applications/$simple_name.png ||
mv /tmp/favicon-0.png .local/share/applications/$simple_name.png
rm /tmp/favicon*.png
Save this script as /add-webapp.sh
, and mark it as executable.
Running the command ./add-webapp.sh "Hacker News" "https://news.ycombinator.com"
will create a launcher shortcut to Hacker News.
Hardware accelerated rendering
To make firefox on pinephone/pinetab/pb/pbp smoother you need to change layers.acceleration.force-enabled
to true in about:config
.
To ensure that it kicked in check about:support
, graphics->compositing should become OpenGL.
From Firefox 93, the legacy hardware acceleration layers have been disabled and only webrender is allowed. Webrender requires gles 3 to be able to use hardware acceleration, otherwise it will use "software webrenderer". Since Pinephone does not support gles3, from Firefox 93, the browser experience has become much worse because everything is software rendered. Fortunately firefox-esr (available from repositories and on par with security updates as the latest version) is still at v 91.6, so it is still possible to use legacy hardware acceleration layers. They are not enabled by default, to do it there is need to change two parameters in about:config
, that are layers.acceleration.force-enable
to true and gfx.webrender.force-disabled
to true.
Open firefox, search and install Panorama View addons (or whatever tabs view addons). Enter URL about:support
, choose Open Directory at Profile Directory. Edit chrome/userChrome.css(if it doesn't exist, you can create one)
Tabs Toolbar and navbar on top screen:
/* Hide tabs toolbar on top*/
#TabsToolbar {
visibility: collapse !important;
}
/* Hide navbar on top*/
#nav-bar {
/* customize this value. */
--navbar-margin: -30px;
margin-top: var(--navbar-margin);
margin-bottom: 0;
z-index: -100;
transition: all 0.3s ease !important;
opacity: 0;
}
#navigator-toolbox:focus-within > #nav-bar,
#navigator-toolbox:hover > #nav-bar
{
margin-top: 0;
margin-bottom: var(--navbar-margin);
z-index: 100;
opacity: 1;
}
Tabs Toolbar and navbar on bottom screen:
/* Hide tabs toolbar on bottom*/
#TabsToolbar {
visibility: collapse !important;
}
/* Hide navbar on bottom*/
#nav-bar {
/* customize this value. */
--navbar-margin: -30px;
margin-top: 0;
margin-bottom: var(--navbar-margin);
z-index: -100;
transition: all 0.3s ease !important;
opacity: 0;
}
#navigator-toolbox:focus-within > #nav-bar,
#navigator-toolbox:hover > #nav-bar
{
margin-top: var(--navbar-margin);
margin-bottom: 0;
z-index: 100;
opacity: 1;
}
Customize Toolbar to edit Panorama View first icon showing on navigation bar.
See also
- aports#11141 Firefox was broken in Alpine on armv7
- pmaports!1445: configure firefox-esr for mobile and privacy (has more screenshots)
- pmaports!1492: new Firefox mobile config, that works with >= 78 too
- Firefox Add-ons