A GNOME theme for Firefox
This theme follows latest GNOME Adwaita style.
[!WARNING]
Disclaimer:
Be aware that this theme might do things that are not supported by upstream Firefox. If you face an issue while using this theme, report it here first or test if it is reproducible in vanilla Firefox.
If you are a software distribution maintainer, please do not ship these changes by default to your users unless you make it extremely clear that they are using a modified version of the Firefox UI.
This is a bunch of CSS code to make Firefox look closer to GNOME's native apps.
Matrix room: #firefox-gnome-theme:matrix.org
The master
branch of this repo supports the current Firefox stable release 132
.
Theme versions compatible with older Firefox releases are preserved as git tags.
We also have the beta
and nightly
branches for fixes only applicable to the current Firefox beta and nightly versions.
firefox-gnome-theme
cat /usr/share/doc/firefox-gnome-theme/INSTALL.md
To install this theme, you can run this command, which uses curl to download a script that will also download the latest released version of the theme (not the master version) and run the auto-install script for you.
Warning: Always be careful when running scripts from the Internet.
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
If you want to use other version of the theme than the stable one you can manually download the theme and run its install scripts.
First you need to grab a fresh copy of the theme repository by cloning it with git.
Clone this repo and enter folder:
git clone https://github.com/rafaelmardojai/firefox-gnome-theme.git
cd firefox-gnome-theme
master
and ignore this step.
git checkout beta # Set beta branch
git checkout v78.1 # Set v78.1 tag
This theme provides two installation scripts in addition to the curled one.
This script will look for Firefox profiles from various known locations (~/.mozilla/firefox/
, Flatpak, Snap, etc) and install the theme in each one.
It will also enable a color variant for your GTK theme if it exists.
You can execute it by running:
./scripts/auto-install.sh
This script will only install the theme into the profiles found in the default Firefox folder ~/.mozilla/firefox/
. The script accepts various flags to change its behavior.
Here are some examples of how to use it:
./scripts/install.sh # Standard
./scripts/install.sh -p pc8577yz.default-release # Only install in a profile named pc8577yz.default-release
./scripts/install.sh -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
./scripts/install.sh -f ~/snap/firefox/common/.mozilla/firefox #Snap
-f <firefox_folder_path>
optional
~/.mozilla/icecat/
.~/.mozilla/firefox/
-p <profile_name>
optional
e0j6yb0p.default-nightly
.-t <theme_name>
optional
adwaita
, maia
.We provide a user.js configuration file in configuration/user.js
that enable some preferences required by this theme to work.
You should already have this file installed if you followed one of the installation methods, but in any case be sure this preferences are enabled under about:config
:
toolkit.legacyUserProfileCustomizations.stylesheets
This preference is required to load the custom CSS in Firefox, otherwise the theme wouldn't work.
svg.context-properties.content.enabled
This preference is required to recolor the icons, otherwise you will get black icons everywhere.
For other non essential preferences checkout
configuration/user.js
.
You can follow the installation script steps again to update the theme.
about:support
in Firefox > Application Basics > Profile Directory > Open Directory)chrome
folder.user.js
inside your profile folder. The install script append the needed prefs in that file, you can check what preferences does it append by checking configuration/user.js
in this repo.Optional features can be enabled by creating new boolean
preferences in about:config
.
about:config
pageboolean
and click on the add buttonHide single tab gnomeTheme.hideSingleTab
Hide the tab bar when only one tab is open.
Note: You should move the new tab button out of the tabbar or it will be hidden when there is only one tab. You can rearrange the toolbars doing a right-click on any toolbar and selecting "Customize Toolbar…".
Note 2: This feature doesn't work when tabs are hidden, like when using the Simple Tab Groups extension. In this case, there's no way to tell from CSS that there's only one visible tab.
Normal width tabs gnomeTheme.normalWidthTabs
Use normal width tabs as default Firefox.
Swap tab close button position gnomeTheme.swapTabClose
By default the tab close buttons follows the position of the window controls, this preference reverts that behavior.
Bookmarks toolbar under tabs gnomeTheme.bookmarksToolbarUnderTabs
Move Bookmarks toolbar under tabs.
Active tab contrast gnomeTheme.activeTabContrast
Add more contrast to the active tab.
Close only selected tabs gnomeTheme.closeOnlySelectedTabs
Show the close button on the selected tab only.
System icons gnomeTheme.systemIcons
Use system theme icons instead of Adwaita icons included by theme.
Note: This feature has a known color bug.
No themed Icons gnomeTheme.noThemedIcons
Use default Firefox icons instead of the included icons.
Symbolic tab icons gnomeTheme.symbolicTabIcons
Make all tab icons look kinda like symbolic icons.
Hide WebRTC indicator gnomeTheme.hideWebrtcIndicator
Hide redundant WebRTC indicator since GNOME provides their own privacy icons in the top right.
Hide unified extensions button gnomeTheme.hideUnifiedExtensions
Hide unified extensions button from the navbar, you can also use extensions.unifiedExtensions.enabled
instead, which is only going to work till Firefox 111.
Drag window from headerbar buttons gnomeTheme.dragWindowHeaderbarButtons
Allow dragging the window from headerbar buttons.
Note: This feature is BUGGED. It can activate the button with unpleasant behavior.
Tabs as headerbar gnomeTheme.tabsAsHeaderbar
Place the tabs on the top of the window, and use the tabs bar to hold the window controls, like Firefox's standard tab bar.
Note: Enabling with
gnomeTheme.hideSingleTab
will replace the single tab with a title bar.
OLED black theme gnomeTheme.oledBlack
Change the dark theme into the black variant.
Show "List All Tabs" button gnomeTheme.allTabsButton
Show the List All Tabs
button all the time, like stock Firefox.
Note: If you like it to only show up when the tabs overflow (when you have too many tabs that the width of the tabs no longer shrinks when new tabs are added), set
browser.tabs.tabmanager.enabled
totrue
instead.
Align tab title and icon to left gnomeTheme.tabAlignLeft
Align the tab title and favicon to left of tab in place of center.
We also have optional features to enable support for some Firefox extensions.
Be aware that extensions support are maintained by the community, so requests to support new extensions are not allowed and the included ones could get broken until someone shows up to fix them.
Tab center reborn support gnomeTheme.extensions.tabCenterReborn
Enable the vertical tab trough the extension : Tab Center Reborn.
Note: You also need to copy the contents of the file
configuration/extensions/tab-center-reborn.css
into the settings page of Tabcenter-reborn..\ Note2: You can also maintain the vertical tab always open withgnomeTheme.extensions.tabCenterReborn.alwaysOpen
Note2: You can disable animation by disabling animation into the extension and adding the flagsgnomeTheme.extensions.tabCenterReborn.animationDisabled
See upstream bug.
about:config
pagelayers.acceleration.force-enabled
preference and set it to true.about:config
pagemozilla.widget.use-argb-visuals
boolean
and click on the add buttonIcons might appear black where they should be white on some systems. I have no idea why, but you can adjust them directly in the system-icons.css
file, look for --gnome-icons-hack-filter
& --gnome-window-icons-hack-filter
vars and play with css filters.
If you wanna mess around the styles and change something, you might find these things useful.
To use the Inspector to debug the UI, open the developer tools (F12) on any page, go to options, check both of those:
Now you can close those tools and press Ctrl+Alt+Shift+I to Inspect the browser UI.
Also you can inspect any GTK3 application, for example type this into a terminal and it will run Epiphany with the GTK Inspector, so you can check the CSS styles of its elements too.
GTK_DEBUG=interactive epiphany
Feel free to use any parts of my code to develop your own themes, I don't force any specific license on your code.
Developed by Rafael Mardojai CM and contributors. Based on Luna Kurame's original work.
If you want to support development, consider donating via PayPal. Also consider donating upstream, Firefox & GNOME.