Lehmanator / nix-configs

Personal Nix / NixOS configs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`firefox`: Simplify config

Lehmanator opened this issue · comments

Make Firefox config less complex & reduce number of files config is spread across.

Goals

  • Minimal updating of extension package hashes/versions.
  • home-manager config works as standalone (on non-NixOS systems)
  • home-manager inherits/overrides system config.
  • Profiles: base (to be extended by all other profiles)
  • Profiles: gnome, kde that use DE-specific settings & styles.
  • Profiles: default (to match profile of current desktop)
  • Profiles: hardened (default + hardening settings that might be inconvenient to use in default profile)
  • Profiles: tor-browser (match Tor browser settings)

Profile Features

Default Profile

  • Match profile of current desktop environment.
  • Librewolf-like default config.
  • Extensions installed by default.
  • Disable all "Suggestions" & other annoying 3rd-party shit.
  • Adapt to light/dark mode.
  • Wayland by default.
  • Sidebery tree tab sidebar auto-collapse/expand.
  • Configure default bookmarks, search engines, settings, extensions.

Desktop-specific Profiles

  • UserChrome theme to match toolkit styles.
  • UserChrome themes for extensions to match toolkit styles.
  • UserChrome themes recolor according to desktop wallpaper?
  • UserContent themes recolor according to desktop wallpaper?
  • Enable nativeHostExtensions

Extensions

  • adnauseum | ublock-origin (ad-blocking)
  • behind-the-overlay-revival (click to dismiss all overlay popups that block content)
  • bitwarden | browserpass | gopass-bridge | keepassxc-browser | passff (password manager & autofill)
  • buster-captcha-solver (auto-solve captchas)
  • bypass-paywalls-clean | unpaywall (bypass paywalls for content)
  • cliget (allow using FF to login on behalf of CLI programs)
  • cookies-txt (export cookies for usage in other programs)
  • copy-selected-tabs-to-clipboard | export-tabs-urls-and-titles (tab link saving)
  • don-t-fuck-with-paste | re-enable-right-click (prevent sites from blocking copy/paste)
  • fastforwardteam (skip tracking via URL shorteners)
  • firemonkey | violentmonkey (userScripts)
  • fx_cast (Chromecast Web Sender SDK implementation for FF)
  • hover-zoom-plus | imagus (zoom image thumbnails)
  • ipfs-companion
  • link-gopher (Extract all links from webpage, sort, dedup, & display in new tab)
  • offline-qr-code-generator
  • omnisearch (Supercharge Firefox with commands, shortcuts, and more)
  • overbitewx (Open Gopher protocol in FF. Requires Floodgap Public Gopher Proxy)
  • profile-switcher (Create, manage, switch b/w browser profiles)
  • search-engines-helper
  • sidebery (Tree style tab sidebar)
  • sponsorblock
  • tab-counter-plus
  • tab-session-manager | tab-stash
  • wayback-machine | web-archives

Desktop Integration

  • ff2mpv (Play audio/video in mpv with native client)
  • firenvim (FF into Neovim client)
  • gnome-shell-integration (Use extensions.gnome.org)
  • gsconnect (GSConnect)
  • plasma-integration
  • pywalfox (Dynamic theming using Pywal colors)
  • textern (Edit text in favorite external text editor)
  • tridactyl (Vim in browser)
  • vim-vixen | vimium | vimium-c

Downloading

  • markdownload (Web clipper in Markdown using Turndown & Readability.js)
  • video-downloadhelper

Developer

  • enhanced-github | octotree | refined-github (GitHub QoL improvements)
  • laboratory-by-mozilla (Generate Content Security Policy (CSP) headers for your sites)
  • lovely-forks (Show GitHub forks)
  • penetration-testing-kit
  • react-devtools
  • reduxdevtools
  • rust-search-extension
  • sourcegraph (add code intelligence to GitHub, GitLab, ...)
  • vue-js-devtools
  • wappalyzer
  • widegithub

Language / Translation

  • immersive-translate
  • inkah (Lookup Chinese/Korean words)
  • lingq-importer2 (Auto import foreign language pages, videos, etc. from web & study w/ LingQ's web/mobile apps)
  • simple-translate (Translate selected text using DeepL API or Google Translate)
  • to-deepl

Privacy

  • consent-o-matic (auto dismiss consent popups & minimal acceptance)
  • decentraleyes | localcdn (cache CDN assets)
  • disable-javascript | noscript (disable JS)
  • libredirect (Redirect shitty services to FOSS frontend proxies)
  • mullvad (VPN browser extension)
  • multi-account-containers
  • open-url-in-container
  • privacy-pass (privacy-pass anonymous auth protocol support)
  • privacy-possum (Reduces / falsifies tracking data)
  • private-relay (Generate email address aliases that forward to your real inbox)
  • skip-redirect
  • smart-referer (limit request referer headers)
  • temporary-containers
  • terms-of-service-didnt-read
  • ubo-scope (Measure 3rd-party exposure)
  • umatrix
  • user-agent-string-switcher

Syncing

  • floccus (Bookmark sync via Nextcloud / WebDAV)
  • wallabagger (sync w/ wallabag)
  • xbrowsersync

Theming

  • automatic-dark | dark-mode-webextension | dark-mode-website-switcher | darkreader (dark mode)
  • aw-watcher-web (provide browser status, history, etc. to ActivityWatch)
  • stylus (custom userContent CSS styles)

Unpackaged Extensions

Missing from rycee's NUR repo.

Options

NixOS Options

  • programs.firefox.policies
  • programs.firefox.preferences
  • programs.firefox.preferencesStatus
  • programs.firefox.autoConfig

home-manager Options

  • programs.firefox.policies
  • programs.firefox.profiles.<name>.extensions
  • programs.firefox.profiles.<name>.settings (Nix-based user.js attrs)
  • programs.firefox.profiles.<name>.extraConfig (Raw user.js lines)

nix-darwin Options

WSL Options