{"id":13479825,"url":"https://github.com/Frewacom/pywalfox","last_synced_at":"2025-03-27T10:30:49.652Z","repository":{"id":40655712,"uuid":"195444731","full_name":"Frewacom/pywalfox","owner":"Frewacom","description":"Dynamic theming of Firefox (and Thunderbird) using your Pywal colors ","archived":false,"fork":false,"pushed_at":"2024-04-08T11:33:44.000Z","size":33001,"stargazers_count":710,"open_issues_count":34,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-19T21:53:44.512Z","etag":null,"topics":["browser-theme","css","duckduckgo","firefox","firefox-addon","linux","pywal","pywal-firefox","thunderbird","unixporn"],"latest_commit_sha":null,"homepage":"https://addons.mozilla.org/en-US/firefox/addon/pywalfox/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Frewacom.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-07-05T17:16:38.000Z","updated_at":"2025-03-18T12:16:19.000Z","dependencies_parsed_at":"2024-10-30T13:43:26.544Z","dependency_job_id":null,"html_url":"https://github.com/Frewacom/pywalfox","commit_stats":{"total_commits":472,"total_committers":13,"mean_commits":36.30769230769231,"dds":0.5741525423728814,"last_synced_commit":"52db99ab5ac21e3da5e14c2952c689247ff87d7e"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frewacom%2Fpywalfox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frewacom%2Fpywalfox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frewacom%2Fpywalfox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frewacom%2Fpywalfox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Frewacom","download_url":"https://codeload.github.com/Frewacom/pywalfox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245826720,"owners_count":20678846,"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":["browser-theme","css","duckduckgo","firefox","firefox-addon","linux","pywal","pywal-firefox","thunderbird","unixporn"],"created_at":"2024-07-31T16:02:23.540Z","updated_at":"2025-03-27T10:30:49.054Z","avatar_url":"https://github.com/Frewacom.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\" - click me!\u003e\n  \u003ca name=\"logo\"\u003e\u003cimg src=\"images/logo.svg\" alt=\"Pywalfox icon\" width=\"150\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  Pywalfox\n\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003e🎨 Dynamic theming of Firefox 🦊 (and Thunderbird 🐦) using your Pywal colors\u003c/h4\u003e\n\u003cdiv align=\"center\"\u003e\n     \u003ca href=\"https://addons.mozilla.org/en-US/firefox/addon/pywalfox\"\u003e\u003cimg src=\"https://img.shields.io/amo/v/pywalfox\"/\u003e\u003c/a\u003e\n     \u003ca href=\"https://addons.mozilla.org/en-US/firefox/addon/pywalfox\"\u003e\u003cimg src=\"https://img.shields.io/amo/stars/pywalfox\"/\u003e\u003c/a\u003e\n     \u003ca href=\"https://addons.mozilla.org/en-US/firefox/addon/pywalfox\"\u003e\u003cimg src=\"https://img.shields.io/amo/users/pywalfox\"/\u003e\u003c/a\u003e\n     \u003ca href=\"https://addons.mozilla.org/en-US/firefox/addon/pywalfox\"\u003e\u003cimg src=\"https://img.shields.io/amo/dw/pywalfox\"/\u003e\u003c/a\u003e\n     \u003ca href=\"https://aur.archlinux.org/packages/python-pywalfox\"\u003e\u003cimg src=\"https://img.shields.io/aur/version/python-pywalfox\"/\u003e\u003c/a\u003e\n     \u003ca href=\"https://www.mozilla.org/en-US/MPL/2.0/FAQ\"\u003e\u003cimg src=\"https://img.shields.io/github/license/frewacom/pywalfox\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n- Tired of Firefox and Thunderbird not respecting your gorgeous Pywal colors like the rest of your system?\n- Looking to rack up some karma :arrow_up: on [/r/unixporn](https://reddit.com/r/unixporn)?\n\nIntroducing **Pywalfox**, an add-on that themes [Firefox](https://addons.mozilla.org/firefox/addon/pywalfox/) and [Thunderbird](https://addons.thunderbird.net/thunderbird/addon/pywalfox/) with your [Pywal](https://github.com/dylanaraps/pywal) colors using the official [Theme API](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme) from Mozilla!\n\nWith Pywalfox you can:\n- [x] Customize the colors of almost every UI element\n- [x] Easily update the theme using the add-on GUI and/or the command line\n- [x] Automatically theme DuckDuckGo :duck: searches in Firefox *(optional)*\n- [x] Have bold text, styled dropdowns and much more *(optional)*\n- [x] Automatically switch between a dark and a light theme based on the time of day\n\n![](images/demo_v207_ffproton.gif)\n\n## ✅ Requirements\n- Firefox and/or Thunderbird\n- Python (version `2.7.X` or `3.X`)\n- [Pywal](https://github.com/dylanaraps/pywal)\n\n\u003e **Note** \u003cbr\u003e\n\u003e Pywalfox is supported on GNU/Linux, MacOS and Windows.\n\n## 👨‍💻 Installation\n\n1. Install the [Pywalfox native messaging application](https://github.com/Frewacom/pywalfox-native) using one of two methods below (depending on your operating system).\n\u003cdetails align=center\u003e\n\u003csummary\u003e\n\u003cimg height=15 src=\"https://upload.wikimedia.org/wikipedia/commons/a/a5/Archlinux-icon-crystal-64.svg\"/\u003e \u003cb\u003eArch Linux only (AUR) - click me!\u003c/b\u003e\n\u003c/summary\u003e\n\u003ctable align=center\u003e\u003ctr\u003e\u003ctd\u003e\n\nInstall from the \u003ca href=\"https://aur.archlinux.org/packages/python-pywalfox/\"\u003eArch User Repository (AUR)\u003ca\u003e, e.g.\n\nParu: \u003cbr\u003e\n`paru -S python-pywalfox`\n\nYay: \u003cbr\u003e\n`yay -S python-pywalfox`\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/details\u003e\n\n\u003cdetails align=center\u003e\n\u003csummary\u003e\n\u003cb\u003eGNU/Linux, MacOS, Windows - click me!\u003c/b\u003e\n\u003c/summary\u003e\n\u003ctable align=center\u003e\u003ctr\u003e\u003ctd\u003e\n\nInstall from [PyPi](https://pypi.org/project/pywalfox/) with [`pip`](https://github.com/pypa/pip), i.e.\n\n`pip install pywalfox`\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003c/details\u003e\n\n2. Run `pywalfox install` in your terminal.\n3. Get the Pywalfox add-on for\n   - [Firefox](https://addons.mozilla.org/firefox/addon/pywalfox/)\n   - [Thunderbird](https://addons.thunderbird.net/thunderbird/addon/pywalfox/)\n4. Restart Firefox and/or Thunderbird.\n5. Generate Pywal colors with your preferred method, use e.g. [this guide](https://github.com/dylanaraps/pywal/wiki/Getting-Started).\n6. Click the Pywalfox icon in the Firefox/Thunderbird UI and click \"Fetch Pywal colors\". This should apply a theme that uses your Pywal colors to the Firefox/Thunderbird GUI!\n\n\u003e **Note** \u003cbr\u003e\n\u003e If you have problems: please review the Troubleshooting section below before opening a Github issue.\n\n## 🤔 Usage\n\n### 🗔 Update the theme through your terminal\nRun `pywalfox update` in your terminal to trigger an update of the browser theme.\nThis command allows you to integrate Pywalfox into e.g. system theming scripts.\nIt is functionally equivalent to clicking \"Fetch Pywal colors\" in the add-on settings GUI (accessible from your toolbar).\n\n### 🎨 Customization\nThe add-on settings GUI comes with extensive customization options divided into the following sections:\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003e\n💧 Palette (click for details)\n\u003c/b\u003e\n\u003c/summary\u003e\n\n\u003cbr\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\n\nThe palette in the \"Palette\" section is used to temporarily customize one or more colors from the Pywal palette.\nYou can use one of the generated colors, or choose any color from a colorwheel.\n\n\u003e **Warning** \u003cbr\u003e\n\u003e Changes to the palette will be reset when you click \"Fetch Pywal colors\" and when you run `pywalfox update`.\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003e\n📝 Palette template (click for details)\n\u003c/b\u003e\n\u003c/summary\u003e\n\n\u003cbr\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\n\nIf you want your palette customizations to be persistent (unlike the regular palette) you must save your current palette as a *palette template*:\n\n1. Click \"Fetch Pywal colors\" in the add-on settings GUI or run `pywalfox update`\n2. Customize the colors to your liking in the \"Palette\" section\n   - ❗ *Colors from outside the Pywal palette (i.e. from the colorwheel) cannot be used in a template*.\n3. Click \"Load from current\" in the \"Palette template\" section below.\n   - ❗ *The colors can also be set directly in the \"Palette template\" section using Pywal color indices.*\n4. Click \"Save palette\"\n\nYour custom palette will now be applied whenever you update the browser theme.\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cb\u003e\n🗂 ️Theme template (click for details)\n\u003c/b\u003e\n\u003c/summary\u003e\n\n\u003cbr\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\n\nThe theme template assigns colors (from your palette template) to different browser elements.\n\nTo create a palette template, go through the items in the \"Theme template\" section and assign a color to each item.\nThe colors are identified by their names as seen in the \"Palette template\" section.\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003c/details\u003e\n\n\u003e **Note** \u003cbr\u003e\n\u003e Every browser element currently supported by the [Theme API](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme) can be customized.\n\n\n### 🌗 Theme modes\nThere are three different theme modes: \"Dark\" (🌙), \"Light\" (☀) and \"Auto\" (👁)️. Selecting \"Auto\" will automatically switch between the other two modes based on a time interval found in the \"General\" section of the add-on settings GUI.\n\n\u003e **Note** \u003cbr\u003e\n\u003e The dark and light modes have *separate* theme and palette templates. You will always modifiy the template for the currently selected mode.\n\n### 🖺 Further theming with the included userChrome.css and userContent.css in Firefox\nSome browser elements (e.g. the context menus) are not available through the [Theme API](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme). Pywalfox includes two custom CSS stylesheets (for Firefox) which apply your theme to some of these browser elements.\n\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\nBefore you enable the custom CSS sheets in the add-on settings GUI you must navigate to \u003ccode\u003eabout:config\u003c/code\u003e and set \u003ccode\u003etoolkit.legacyUserProfileCustomizations.stylesheets\u003c/code\u003e to \u003ccode\u003etrue\u003c/code\u003e.\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n## ❎ Uninstall\nTo uninstall Pywalfox from your system, run\n```bash\npywalfox uninstall # Removes the manifest from native-messaging-hosts\n```\nand then\n```bash\npip uninstall pywalfox # if you installed with pip\n```\nor\n```bash\nparu -R python-pywalfox # if you installed with paru (only Arch Linux)\n```\ndepending on your chosen installation method.\n\n## 🔧 Troubleshooting\nThis section lists some common problems and how to (hopefully) fix them.\nThis [troubleshooting guide from Mozilla](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/Native_messaging#Troubleshooting) may be of use if you encounter an error that is not listed here.\n\n- Librewolf users must use an experimental version of `pywalfox-native` for now, see [#68](https://github.com/Frewacom/pywalfox/issues/68#issuecomment-873381669).\n\nYou should also\n- check the log in the Debugging section at the bottom of the Pywalfox settings page for any errors;\n- verify that `~/.cache/wal/colors` exists and contains the colors generated by Pywal;\n- verify that `path` in `~/\u003cnative-messaging-hosts-folder\u003e/pywalfox.json` is a valid path.\n\n### 🚫 Common errors in the browser console\nIt is a good idea to check the Firefox browser console (`Tools \u003e Web developer \u003e Browser console`) for errors.\nCommon errors include:\n\n\u003cdetails\u003e\u003csummary\u003e\n\u003cb\u003e\u003ccode\u003eExtensionError: No such native application pywalfox\u003c/code\u003e\u003c/b\u003e\n\u003c/summary\u003e\n\n\u003cbr\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\n\n   The manifest is not installed properly. Try installing the manifest manually by following the instructions [here](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/Native_manifests.).\n\n   The manifest is located at `\u003cpath-to-python-site-packages\u003e/pywalfox/assets/manifest.json`.\n\n   After you have copied over the manifest to the correct path, make sure to also update the `path` property in the copied manifest. The `path` should point to `\u003cpath-to-python-site-packages\u003e/pywalfox/bin/main.sh` (or `win.bat` if you are on Windows).\n\n   If it still does not work, you can try to reinstall Firefox, see [#14](https://github.com/Frewacom/pywalfox/issues/14).\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\n\u003cb\u003e\u003ccode\u003estderr output from native app pywalfox: \u003cinstallation-path\u003e/main.sh: line 3: pywalfox: command not found\u003c/code\u003e\u003c/b\u003e\n\u003c/summary\u003e\n\n\u003cbr\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\n\n  Pywalfox assumes that the `pywalfox` executable is in your `PATH`.\n\n  If you can not run `pywalfox` from the command line (without specifying an absolute path), you must either add the path to the execuatable to your `PATH` variable, or move the executable to a path that already is in your `PATH`.\n\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/details\u003e\n\n\u003e **Note** \u003cbr\u003e\n\u003e The errors in the `Browser Console` are not limited to just Pywalfox!\n\n## 🚧 Development setup\nDo you want to hack on Pywalfox? Start here:\n```bash\ngit clone git@github.com/frewacom/pywalfox.git # or use your own fork\ncd pywalfox\nyarn install # or npm if you do not have yarn installed\nyarn run debug\n```\n\nTo build the extension into a zip:\n```bash\nyarn run build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFrewacom%2Fpywalfox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFrewacom%2Fpywalfox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFrewacom%2Fpywalfox/lists"}