A GNOME materia theme for Firefox
This theme follows the lastest material design scheme and works with the materia theme. Forked from Firefox GNOME theme.
This is a bunch of CSS code to make Firefox look closer to GNOME's native apps.
The master branch of this repo supports the current Firefox stable release 91.
Theme versions complatible with older Firefox releases are preserved as git tags. Use the v78.1 tag for Firefox 78 ESR support.
We also have the beta branch for fixes only aplicable to the current Firefox beta version.
- Light mode needs some work.
-
Clone this repo and enter folder:
git clone https://github.com/rafaelmardojai/firefox-gnome-theme && cd firefox-gnome-theme
-
Checkout a git branch or tag if needed, otherwise use
masterand ignore this step.git checkout beta # Set beta branch git checkout v78.1 # Set v78.1 tag
-
Run installation script
This script will lookup Firefox profiles location and enable a theme variant for your GTK theme if it exists.
./scripts/auto-install.sh
./scripts/install.sh # Standard ./scripts/install.sh -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
-f <firefox_folder_path>optional- Set custom Firefox folder path, for example
~/.mozilla/icecat/. - Default:
~/.mozilla/firefox/
- Set custom Firefox folder path, for example
-p <profile_name>optional- Set custom profile name, for example
e0j6yb0p.default-nightly. - Default: standard default profile
- Set custom profile name, for example
-t <theme_name>optional- Set the colors used in the theme.
- Default: materia.
- Options:
materia,adwaita,maia,yaru.
You can also install this theme with one command:
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
It will download the latest version of the theme and run the installation script for you.
-
Go to
about:supportin Firefox. -
Application Basics > Profile Directory > Open Directory.
-
Open directory in a terminal.
-
Create a
chromedirectory if it doesn't exist:mkdir -p chrome cd chrome -
Clone this repo to a subdirectory:
git clone https://github.com/rafaelmardojai/firefox-gnome-theme.git
-
Create single-line user CSS files if non-existent or empty (at least one line is needed for
sed):[[ -s userChrome.css ]] || echo >> userChrome.css
-
Import this theme at the beginning of the CSS files (all
@imports must come before any existing@namespacedeclarations):sed -i '1s/^/@import "firefox-gnome-theme\/userChrome.css";\n/' userChrome.css -
Symlink preferences file:
cd .. # Go back to the profile directory ln -fs chrome/firefox-gnome-theme/configuration/user.js user.js
-
Restart Firefox.
-
Open Firefox customization panel and move the new tab button to headerbar.
-
Be happy with your new gnomish Firefox.
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.stylesheetsThis preference is required to load the custom CSS in Firefox, otherwise the theme wouldn't work.
-
svg.context-properties.content.enabledThis preference is required to recolor the icons, otherwise you will get black icons everywhere.
For other non essential preferences checkout
configuration/user.js.
Both manual and script installation methods should create a git clone in your-profile-folder-path/chrome/firefox-gnome-theme, so the easiet way to update the theme is to open this folder in terminal and perform a git pull.
git pull origin masterNote: You can also run the installation script again to update (after cloning/pulling the repo).
- Go to your profile folder. (Go to
about:supportin Firefox > Application Basics > Profile Directory > Open Directory) - Remove
chromefolder.
To achieve Firefox with overlay scrollbars install firefox-gnome-scrollbars.
HTML inputs (e.g. boolean inputs) use the default system theme. To override this behaviour change the following setting.
- Go to the
about:configpage - Type in
widget.content.gtk-theme-override - Set it to
Materia - Restart Firefox
Optional features can be enabled by creating new boolean preferences in about:config.
- Go to the
about:configpage - Type the key of the feature you want to enable
- Set it as a
booleanand click on the add button - Restart Firefox
-
Hide single tab
gnomeTheme.hideSingleTabHide the tab bar when only one tab is open.
Note: You should move the new tab button somewhere else for this to work, because by default it is on the tab bar too. See #54.
-
Spinner
gnomeTheme.spinnerUse the GNOME spinner for tabs loading.
Note: This is optional because Firefox has issues rendering the spinner SVG:
-
Normal width tabs
gnomeTheme.normalWidthTabsUse normal width tabs as default Firefox.
-
Bookmarks toolbar under tabs
gnomeTheme.bookmarksToolbarUnderTabsMove Bookmarks toolbar under tabs.
-
Active tab contrast
gnomeTheme.activeTabContrastAdd more contrast to the active tab.
-
System icons
gnomeTheme.systemIconsUse system theme icons instead of Papirus icons included by the theme.
Note: This feature has a known color bug.
-
Symbolic tab icons
gnomeTheme.symbolicTabIconsMake all tab icons look kinda like symbolic icons.
-
Hide WebRTC indicator
gnomeTheme.hideWebrtcIndicatorHide redundant WebRTC indicator since GNOME provides their own privacy icons in the top right.
-
Drag window from headerbar buttons
gnomeTheme.dragWindowHeaderbarButtonsAllow draging the window from headerbar buttons.
Note: This feature is BUGGED. It can activate the button with unpleasant behavior.
See upstream bug.
- Go to the
about:configpage - Search for the
layers.acceleration.force-enabledpreference and set it to true. - Now restart Firefox, and it should look good!
- Go to the
about:configpage - Type
mozilla.widget.use-argb-visuals - Set it as a
booleanand click on the add button - Now restart Firefox, and it should look good!
Icons 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:
- Enable browser chrome and add-on debugging toolboxes
- Enable remote debugging
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 epiphanyFeel 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 Tom Bursch. Based on Rafael Mardojai CM original work. Icons by Papirus Development Team
