{"id":16727850,"url":"https://github.com/mattmess1221/firefox-gtk-controls","last_synced_at":"2025-10-31T18:30:38.567Z","repository":{"id":211653973,"uuid":"729665473","full_name":"mattmess1221/firefox-gtk-controls","owner":"mattmess1221","description":"Enable gtk window decorations for firefox themes","archived":true,"fork":false,"pushed_at":"2024-05-15T21:45:49.000Z","size":21,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T13:36:11.651Z","etag":null,"topics":["firefox","firefox-theme","userchrome","window-decorations"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattmess1221.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-10T00:11:42.000Z","updated_at":"2024-09-10T16:20:43.000Z","dependencies_parsed_at":"2023-12-10T01:34:00.124Z","dependency_job_id":"ec39cbbf-6706-4b7a-8ca0-5aeb5c94ddd5","html_url":"https://github.com/mattmess1221/firefox-gtk-controls","commit_stats":null,"previous_names":["killjoy1221/firefox-gtk-controls","mattmess1221/firefox-gtk-controls"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmess1221%2Ffirefox-gtk-controls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmess1221%2Ffirefox-gtk-controls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmess1221%2Ffirefox-gtk-controls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmess1221%2Ffirefox-gtk-controls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattmess1221","download_url":"https://codeload.github.com/mattmess1221/firefox-gtk-controls/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239223671,"owners_count":19602832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firefox","firefox-theme","userchrome","window-decorations"],"created_at":"2024-10-12T23:07:30.050Z","updated_at":"2025-10-31T18:30:38.533Z","avatar_url":"https://github.com/mattmess1221.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firefox GTK Controls\n\n\u003e **NOTE**: This tool is not needed. To get native window controls in unmodified Firefox, open about:config and set the key `widget.gtk.non-native-titlebar-buttons.enabled` to `false`.\n\nOn Linux, if you try to use a theme from an addon, Firefox will use the default Adwaita window control buttons. This is [intentional](https://bugzilla.mozilla.org/show_bug.cgi?id=1832975).\n\nThe only supported way to use your custom window controls (close, maximize, restore, minimize) is to use the System theme. So addon themes are effectively broken on Linux.\n\nBut there's another way!\n\nUsing custom stylesheets, you can enable Firefox to use your configured window decorations.\n\n## Installing\n\nBefore starting, you need to open `about:config` and manually set `toolkit.legacyUserProfileCustomizations.stylesheets` to `true`. This will tell Firefox to look for your stylesheets when starting.\n\n### Installer Script\n\nUsing the `install.sh` script is the recommended way to install. It will copy assets, update the `userChrome.css` file, and create a symbolic link to `~/.config/gtk-3.0`. It will also optionally allow firefox under flatpak to access the gtk assets.\n\nTo run it, simply clone this repo and run the `install.sh` script.\n\n```\n$ ./install.sh\n```\n\n### Manual Installation\n\nFollow these steps in case you want to do a manual install.\n\nYou will need your profile path, so visit `about:profiles` in firefox and write down your profile's root directory.\n\n- If you are using flatpak, it will be relative to `~/.var/app/org.mozilla.firefox`\n- If you are using snap, it will be relative to `~/snap/firefox/common`\n\n#### TL;DR\n\nRun this bash snippet with your own `profilepath` variable, then restart Firefox.\n\n```sh\nprofilepath=\"\u003cpaste path\u003e\"\nmkdir \"$profilepath/chrome\"\nln -s ~/.config/gtk-3.0 \"$profilepath/chrome/gtk-3.0\"\ncp firefox-csd.css \"$profilepath/chrome/\"\necho '@import \"./firefox-csd.css\";' \u003e\u003e \"$profilepath/chrome/userChrome.css\"\n```\n\n#### Steps\n\n1. Create the directory `$profilepath/chrome` if it does not exist.\n\n2. Copy the `firefox-csd.css` file to the newly created directory.\n\n3. Create a symbolic link in the same directory to `~/.config/gtk-3.0` named `gtk-3.0`\n\n4. Create a new file called `userChrome.css` with the following content. If you need to, you can include other imports in the file.\n\n   ```css\n   @import \"./firefox-csd.css\";\n   ```\n\n5. Restart firefox if it is open.\n\n## Troubleshooting\n\n### The installer isn't finding my profile\n\nThe installer looks in the following locations for Firefox profiles.\n\n- `$HOME/.mozilla/firefox`\n- `$HOME/.var/app/org.mozilla.firefox/.mozilla/firefox`\n- `$HOME/snap/firefox/common/.mozilla/firefox`\n\nFix: If your profile isn't located in one of these folders, follow the manual install instructions.\n\nIf you think your profile should be included in the search path, open an issue.\n\n### After running the installer and restarting firefox, nothing changes\n\nFirefox will not pick up the user chrome if you didn't set the correct variable in `about:config`.\n\nFix: Set the variable `toolkit.legacyUserProfileCustomizations.stylesheets` to `true` and restart Firefox.\n\n### The variable `toolkit.legacyUserProfileCustomizations.stylesheets` is set to true, but nothing changes\n\nIf you followed the manual instructions, make sure you wrote down the correct profile path from `about:profiles`. It should be in the `.mozilla/firefox` directory, not `.cache/mozilla/firefox`.\n\nFix: Redo the installation steps with the _correct_ profile path.\n\n### My window control buttons are invisible\n\nThis is either because the assets don't exist, the symbolic link wasn't created, or flatpak doesn't have the correct filesystem override.\n\nFix: Re-run the installer script.\n\nIf you did a manual install with flatpak, run this command to expose the gtk-3.0 configuration to Firefox.\n\n```sh\nflatpak override --user org.mozilla.firefox --filesystem=xdg-config/gtk-3.0:ro\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattmess1221%2Ffirefox-gtk-controls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattmess1221%2Ffirefox-gtk-controls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattmess1221%2Ffirefox-gtk-controls/lists"}