firefox-gnome-theme/README.md

256 lines
8.6 KiB
Markdown
Raw Normal View History

2019-06-13 06:54:29 +03:00
<h1 align="center">
2019-06-13 17:03:52 +03:00
<img src="icon.svg" alt="Firefox GNOME theme" width="100" height="100"/><br>
2019-06-13 06:54:29 +03:00
Firefox GNOME theme
</h1>
2019-06-13 06:49:25 +03:00
2019-07-10 01:13:29 +03:00
[![GitHub](https://img.shields.io/github/license/rafaelmardojai/firefox-gnome-theme.svg)](https://github.com/rafaelmardojai/firefox-gnome-theme/blob/master/LICENSE)
2019-07-10 01:10:40 +03:00
[![Donate](https://img.shields.io/badge/PayPal-Donate-gray.svg?style=flat&logo=paypal&colorA=0071bb&logoColor=fff)](https://paypal.me/RafaelMardojaiCM)
2021-05-25 01:36:19 +03:00
[![Liberapay](https://img.shields.io/liberapay/receives/rafaelmardojai.svg?logo=liberapay)](https://liberapay.com/rafaelmardojai/donate)
2019-07-10 01:11:57 +03:00
2019-07-19 15:29:55 +03:00
<p align="center"><strong>A GNOME theme for Firefox</strong></p>
2019-06-02 18:37:29 +03:00
2019-07-19 15:29:55 +03:00
<p align="center">This theme follows lastest GNOME Adwaita style.</p>
2019-06-04 03:00:43 +03:00
2017-12-02 01:18:56 +02:00
![Screenshot of the theme](screenshot.png)
## Description
2019-07-19 15:29:55 +03:00
This is a bunch of CSS code to make Firefox look closer to GNOME's native apps.
2017-12-02 01:18:56 +02:00
This theme is supposed to work with current supported Firefox releases:
2021-04-23 07:41:36 +03:00
- Firefox 89
2021-05-14 16:48:52 +03:00
- Firefox 78 ESR *(Recommended to use the `v78.1` git tag)*
2021-04-23 07:41:36 +03:00
- Firefox 90 Beta *(Recommended to use the `beta` git branch)*
- Firefox 91 Nightly
2017-12-02 01:18:56 +02:00
## Installation
2019-06-13 06:49:25 +03:00
### Installation script
1. Clone this repo and enter folder:
```sh
git clone https://github.com/rafaelmardojai/firefox-gnome-theme && cd firefox-gnome-theme
```
2021-05-14 16:48:52 +03:00
2. Checkout a git branch or tag if needed, otherwise use `master` and ignore this step.
```sh
git checkout beta # Set beta branch
git checkout v78.1 # Set v78.1 tag
```
3. Run installation script
#### Auto install script
This script will lookup Firefox profiles location and enable a theme variant for your GTK theme if it exists.
```sh
./scripts/auto-install.sh
```
#### Install script
```sh
./scripts/install.sh # Standard
./scripts/install.sh -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
```
2019-07-13 08:54:45 +03:00
##### Script options
- `-f <firefox_folder_path>` *optional*
- Set custom Firefox folder path, for example `~/.mozilla/icecat/`.
- Default: `~/.mozilla/firefox/`
- `-p <profile_name>` *optional*
- Set custom profile name, for example `e0j6yb0p.default-nightly`.
2021-05-11 17:22:32 +03:00
- Default: All the profiles found in the firefox folder
- `-t <theme_name>` *optional*
- Set the colors used in the theme.
- Default: Adwaita.
- Options: `adwaita`, `maia`, `yaru`.
2020-10-28 00:30:23 +02:00
### One command curled script
You can also install this theme with one command:
```sh
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
```
2020-10-28 00:30:23 +02:00
2021-05-14 16:48:52 +03:00
It will download the latest version of the theme and run the auto installation script for you.
2019-07-13 08:54:45 +03:00
2019-06-04 18:26:47 +03:00
### Manual installation
1. Go to `about:support` in Firefox.
2019-07-13 08:54:45 +03:00
2019-06-04 18:26:47 +03:00
2. Application Basics > Profile Directory > Open Directory.
2019-07-13 08:54:45 +03:00
3. Open directory in a terminal.
4. Create a `chrome` directory if it doesn't exist:
2019-07-13 08:54:45 +03:00
```sh
mkdir -p chrome
cd chrome
```
5. Clone this repo to a subdirectory:
```sh
git clone https://github.com/rafaelmardojai/firefox-gnome-theme.git
```
6. Create single-line user CSS files if non-existent or empty (at least one line is needed for `sed`):
```sh
[[ -s userChrome.css ]] || echo >> userChrome.css
```
7. Import this theme at the beginning of the CSS files (all `@import`s must come before any existing `@namespace` declarations):
```sh
sed -i '1s/^/@import "firefox-gnome-theme\/userChrome.css";\n/' userChrome.css
```
8. Symlink preferences file:
```sh
cd .. # Go back to the profile directory
ln -fs chrome/firefox-gnome-theme/configuration/user.js user.js
2019-07-13 08:54:45 +03:00
```
9. Restart Firefox.
10. Open Firefox customization panel and move the new tab button to headerbar.
11. Be happy with your new gnomish Firefox.
2019-06-04 18:26:47 +03:00
### Required Firefox preferences
We provide a **user.js** configuration file in `configuration/user.js` that enable some preferences required by this theme to work.
2021-05-15 04:21:30 +03:00
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`
2021-05-15 04:24:06 +03:00
This preference is required to load the custom CSS in Firefox, otherwise the theme wouldn't work.
- `svg.context-properties.content.enabled`
2021-05-15 04:24:06 +03:00
This preference is required to recolor the icons, otherwise you will get black icons everywhere.
> For other non essential preferences checkout `configuration/user.js`.
2019-07-24 21:06:25 +03:00
## Updating
2019-07-27 22:02:06 +03:00
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.
```sh
git pull origin master
```
2019-07-24 21:06:25 +03:00
2020-10-28 00:30:23 +02:00
> Note: You can also run the installation script again to update (after cloning again the repo).
2019-07-24 21:06:25 +03:00
2020-06-05 03:34:49 +03:00
## Uninstalling
2019-10-04 17:33:21 +03:00
1. Go to your profile folder. (Go to `about:support` in Firefox > Application Basics > Profile Directory > Open Directory)
2. Remove `chrome` folder.
2020-02-07 15:45:49 +02:00
## Scrollbars
To achieve Firefox with overlay scrollbars install [firefox-gnome-scrollbars](https://github.com/rafaelmardojai/firefox-gnome-scrollbars).
2019-06-13 06:49:25 +03:00
## Enabling optional features
2021-02-20 18:51:49 +02:00
Optional features can be enabled by creating new `boolean` preferences in `about:config`.
2019-07-17 03:41:53 +03:00
1. Go to the `about:config` page
2. Type the key of the feature you want to enable
3. Set it as a `boolean` and click on the add button
4. Restart Firefox
2019-07-17 03:41:53 +03:00
### Features
2019-07-17 03:41:53 +03:00
2020-09-30 04:06:53 +03:00
- **Hide single tab** `gnomeTheme.hideSingleTab`
2019-07-17 03:41:53 +03:00
2020-09-30 04:06:53 +03:00
Hide 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](https://github.com/rafaelmardojai/firefox-gnome-theme/issues/54).
2019-07-17 03:41:53 +03:00
- **Spinner** `gnomeTheme.spinner`
Use the GNOME spinner for tabs loading.
> **Note:** This is optional because Firefox has issues rendering the spinner SVG:
>
> <img src="theme/icons/process-working-symbolic.svg" alt="GTK Spinner" width="50"/>
2020-09-30 04:06:53 +03:00
- **Normal width tabs** `gnomeTheme.normalWidthTabs`
2020-09-30 04:06:53 +03:00
Use normal width tabs as default Firefox.
2020-09-30 04:06:53 +03:00
- **Active tab contrast** `gnomeTheme.activeTabContrast`
2020-09-30 04:06:53 +03:00
Add more contrast to the active tab.
2020-09-30 04:06:53 +03:00
- **System icons** `gnomeTheme.systemIcons`
2019-07-17 03:41:53 +03:00
2020-09-30 04:06:53 +03:00
Use system theme icons instead of Adwaita icons included by theme.
2019-07-17 03:41:53 +03:00
2020-10-02 17:15:09 +03:00
> **Note:** This feature has a [known color bug](#icons-color-broken-with-system-icons).
2020-10-02 17:14:01 +03:00
2020-09-30 04:06:53 +03:00
- **Symbolic tab icons** `gnomeTheme.symbolicTabIcons`
2020-09-30 04:06:53 +03:00
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.
2020-09-30 04:06:53 +03:00
- **Drag window from headerbar buttons** `gnomeTheme.dragWindowHeaderbarButtons`
2019-07-17 03:41:53 +03:00
2020-09-30 04:06:53 +03:00
Allow draging the window from headerbar buttons.
> **Note:** This feature is BUGGED. It can activate the button with unpleasant behavior.
2019-06-13 06:49:25 +03:00
## Known bugs
### CSD have sharp corners
See upstream [bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1408360).
#### Wayland fix:
1. Go to the `about:config` page
2. Search for the `layers.acceleration.force-enabled` preference and set it to true.
3. Now restart Firefox, and it should look good!
2020-05-11 19:49:32 +03:00
#### X11 fix:
1. Go to the `about:config` page
2. Type `mozilla.widget.use-argb-visuals`
3. Set it as a `boolean` and click on the add button
4. Now restart Firefox, and it should look good!
2020-09-30 04:06:53 +03:00
### Icons color broken with System icons
2019-07-17 03:41:53 +03:00
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.
2017-12-02 01:18:56 +02:00
## Development
If you wanna mess around the styles and change something, you might find these
things useful.
2017-12-02 01:18:56 +02:00
To use the Inspector to debug the UI, open the developer tools (F12) on any
page, go to options, check both of those:
2017-12-02 15:59:57 +02:00
- Enable browser chrome and add-on debugging toolboxes
- Enable remote debugging
2017-12-02 01:18:56 +02:00
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.
2017-12-02 15:59:57 +02:00
```sh
GTK_DEBUG=interactive epiphany
```
2017-12-02 01:18:56 +02:00
Feel free to use any parts of my code to develop your own themes, I don't force
any specific license on your code.
2019-06-02 21:39:11 +03:00
## Credits
2019-07-19 15:29:55 +03:00
Developed by **[Rafael Mardojai CM](https://github.com/rafaelmardojai)** and [contributors](https://github.com/rafaelmardojai/firefox-gnome-theme/graphs/contributors). Based on **[Sai Kurogetsu](https://github.com/kurogetsusai/firefox-gnome-theme)** original work.
2019-07-10 00:39:42 +03:00
2019-07-13 08:54:45 +03:00
## Donate
2019-07-19 15:29:55 +03:00
If you want to support development, consider donating via [PayPal](https://paypal.me/RafaelMardojaiCM). Also consider donating upstream, [Firefox](https://donate.mozilla.org/) & [GNOME](https://www.gnome.org/support-gnome/).