All Projects → Frewacom → Pywalfox

Frewacom / Pywalfox

Licence: mpl-2.0
Dynamic theming of Firefox (and Thunderbird) using your Pywal colors

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Pywalfox

Livemarks
Extension that restores RSS Feed Livemarks in Firefox.
Stars: ✭ 137 (-37.44%)
Mutual labels:  firefox, firefox-addon
Disable Javascript
Adds the ability to disable JavaScript on specific sites.
Stars: ✭ 151 (-31.05%)
Mutual labels:  firefox, firefox-addon
Surfingkeys Conf
A SurfingKeys configuration which adds 130+ key mappings for 20+ sites & OmniBar search suggestions for 50+ sites
Stars: ✭ 137 (-37.44%)
Mutual labels:  firefox, firefox-addon
Web Extension Starter
Typescript, React, Redux, Styled-Component and Webpack based sample extension boilerplate. Runs on Chrome and Firefox. Sample chrome extension.
Stars: ✭ 115 (-47.49%)
Mutual labels:  firefox, firefox-addon
Floccus
☁️ Sync your bookmarks privately across browsers
Stars: ✭ 2,630 (+1100.91%)
Mutual labels:  firefox, firefox-addon
Newtaboverride
New Tab Override allows you to set the page that shows whenever you open a new tab.
Stars: ✭ 120 (-45.21%)
Mutual labels:  firefox, firefox-addon
Alfred Firefox
Search and control Firefox from Alfred
Stars: ✭ 142 (-35.16%)
Mutual labels:  firefox, firefox-addon
Fx cast
Implementation of the Google Cast Chrome Sender SDK within Firefox
Stars: ✭ 1,319 (+502.28%)
Mutual labels:  firefox, firefox-addon
Slick Fox
🦊 A userchrome.css file that has rounded tabs and a url bar that can disappear when not selected on. It works with any themes.
Stars: ✭ 210 (-4.11%)
Mutual labels:  firefox, firefox-addon
Updatescanner
Firefox addon to monitor web pages for updates.
Stars: ✭ 166 (-24.2%)
Mutual labels:  firefox, firefox-addon
Page Translator
One-click in-line page translation for Firefox
Stars: ✭ 114 (-47.95%)
Mutual labels:  firefox, firefox-addon
Treestyletab
Tree Style Tab, Show tabs like a tree.
Stars: ✭ 2,438 (+1013.24%)
Mutual labels:  firefox, firefox-addon
Githubextins
Install Browser Extensions straight from GitHub Repositories.
Stars: ✭ 100 (-54.34%)
Mutual labels:  firefox, firefox-addon
Urql Devtools
A tool for monitoring and debugging urql during development
Stars: ✭ 131 (-40.18%)
Mutual labels:  firefox, firefox-addon
The Tab Of Words
A minimal Chrome / Firefox extension to help you learn Japanese words in each new tab.
Stars: ✭ 94 (-57.08%)
Mutual labels:  firefox, firefox-addon
Synology Download Manager
An open source browser extension for adding/managing download tasks to your Synology DiskStation.
Stars: ✭ 138 (-36.99%)
Mutual labels:  firefox, firefox-addon
Container Tabs Sidebar
Firefox addon aiming to utilize screen estate more efficiently by showing tabs in a sidebar grouped by privacy containers. Inspired by TreeStyleTab.
Stars: ✭ 87 (-60.27%)
Mutual labels:  firefox, firefox-addon
Bookmarks Organizer
With the Bookmarks Organizer it's easy to put order in your bookmarks. The Bookmarks Organizer finds no longer working bookmarks, redirects, duplicates and more!
Stars: ✭ 90 (-58.9%)
Mutual labels:  firefox, firefox-addon
Cleanlinks
Converts obfuscated/nested links to genuine clean links.
Stars: ✭ 157 (-28.31%)
Mutual labels:  firefox, firefox-addon
Azure Mask
A browser extension (Chrome, Firefox) that toggles concealment of sensitive information found in the Azure Portal web page such as Subscription Id's
Stars: ✭ 189 (-13.7%)
Mutual labels:  firefox, firefox-addon
Pywalfox icon

Pywalfox

Dynamic theming of Firefox (and Thunderbird) using your Pywal colors

  • Tired of Firefox and Thunderbird not respecting your gorgeous Pywal colors like the rest of your system?
  • Looking to rack up some karma ⬆️ on /r/unixporn?

Introducing Pywalfox, an add-on that themes Firefox and Thunderbird with your Pywal colors using the official Theme API from Mozilla!

With Pywalfox you can:

  • [x] Customize the colors of almost every UI element
  • [x] Automatically theme DuckDuckGo 🦆 searches in Firefox (optional)
  • [x] Have bold text, styled dropdowns and much more (optional)
  • [x] Easily update the theme using the add-on GUI and/or the command line
  • [x] Automatically switch between a dark and a light theme based on the time of day

Requirements

  • Firefox and/or Thunderbird
  • Python (version 2.7.x or 3.x)
  • Pywal

Pywalfox is supported on GNU/Linux, MacOS and Windows.

Installation

  1. pip install pywalfox
  2. pywalfox install
  3. Get the Pywalfox add-on for
  4. Restart Firefox and/or Thunderbird
  5. Click the Pywalfox icon in the Firefox/Thunderbird UI to access the theme settings and click "Fetch Pywal colors". A theme matching your Pywal colors should now be applied.

The Python package installed through pip is the Pywalfox native messaging application, which fetches your Pywal colors for the Pywalfox add-on to use with the Theme API.

Please review the Troubleshooting section if something is not working correctly.

Usage

Updating the theme using the terminal

Run pywalfox update in your terminal to trigger an update of the browser theme. This command allows integration of Pywalfox into e.g. system theming scripts and is functionally equivalent to clicking "Fetch Pywal colors" in the add-on settings GUI.

Customization

Pywalfox comes with extensive customization options divided into the "Palette", "Palette template" and "Theme template" sections in the add-on settings GUI.

The palette

The palette in the "Palette" section is used to temporarily customize one or more colors from the Pywal palette. You can use one of the generated colors, or choose any color from a colorwheel. Changes to the palette will be reset when clicking "Fetch Pywal colors" or when running pywalfox update.

Palette templates

If you want your palette customizations to be persistent (unlike the regular palette) you must save your current palette as a so-called palette template.

Saving a palette template is quite simple:

  1. Click "Fetch Pywal colors" (or run pywalfox update) in the add-on settings GUI.
  2. Use the regular "Palette" at the top of the page to customize the colors to your liking.
    • Colors from outside the Pywal palette (i.e. from the colorwheel) cannot be used in a template.
  3. Click "Load from current" in the "Palette template" section below.
    • The colors can also be set directly in the "Palette template" section using Pywal color indices.
  4. Click "Save palette" to save the palette template.

Your custom palette will now be applied whenever you update the browser theme.

Theme templates

The theme template assigns colors (from your palette template) to different browser elements.

Every element of the browser that is currently supported by the Theme API can be customized.

To create a palette template, go through the items in the "Theme template" section and assign a color to each item. The colors are identified by their names as seen in the "Palette template" section.

Theme modes

There are three different theme modes, Dark, Light and Auto. Selecting Auto will automatically switch between the dark and light modes based on a selected time interval in the "General" section of the extension.

Note that the dark and light modes have separate theme and palette templates. When modifying a template, you are always modifiying the template for the currently selected mode.

Further theming with the included userChrome.css and userContent.css in Firefox

Pywalfox includes custom CSS sheets that you can enable for Firefox. The custom CSS sheets applies your Pywal colors to the context menus and other elements of the browser that are not available using the Theme API. The scrollbar can also be hidden for a cleaner look.

To enable the custom CSS sheets:

  1. Navigate to about:config in Firefox
  2. Set toolkit.legacyUserProfileCustomizations.stylesheets to true
  3. Under "General" in the Pywalfox settings:
    • Enable "Use included userChrome.css" to theme context menus and other details
    • Enable "Use included userContent.css" to hide the scrollbar

Uninstall

pywalfox uninstall      # Removes the manifest from native-messaging-hosts
pip uninstall pywalfox  # Removes the pywalfox executable

Troubleshooting

  • If you updated from pywalfox-native <= v2.6, re-run the installation using pywalfox install

  • If you updated Pywalfox and have issues, try re-running the setup script as described in Installation above.

  • Check the log in the Debugging section at the bottom of the Pywalfox settings page

  • If you have a permission error when running pywalfox install, you can (probably) fix it by doing one of the following:

    • chown <username> ~/.mozilla/native-messaging-hosts

      or

    • rm -r ~/.mozilla/native-messaging-hosts; the setup script will then recreate it with the correct permissions.

      Make sure to use the path from the setup output!

    • If you get Received unhandled message action: invalidMessage, you are using an outdated daemon version. Install the newest one using pip by following the instructions in the Installation.

  • Verify that ~/.cache/wal/colors exists and contains the colors generated by Pywal

  • Verify that path in ~/<native-messaging-hosts-folder>/pywalfox.json is a valid path

  • Check the Firefox browser console for errors (Tools > Web developer > Browser console)

Errors in the browser console

  • ExtensionError: No such native application pywalfox:

    The manifest is not installed properly. Try installing the manifest manually by following the instructions here.

    The manifest is located at <path-to-python-site-packages>/pywalfox/assets/manifest.json.

    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 <path-to-python-site-packages>/pywalfox/bin/main.sh (or win.bat if you are on Windows).

    If it still does not work, try reinstalling Firefox, see #14.

  • stderr output from native app pywalfox: <installation-path>/main.sh: line 3: pywalfox: command not found Pywalfox assumes that the pywalfox executable is in your PATH.

    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.

If you encounter any other errors this troubleshooting guide from Mozilla may be of use.

Note that the errors in the Browser Console is not limited to just Pywalfox.

Development setup

git clone [email protected]/frewacom/pywalfox.git
cd pywalfox
yarn install # or npm if you do not have yarn installed
yarn run debug

To build the extension into a zip:

yarn run build
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].