summaryrefslogtreecommitdiff
path: root/modules/nixos/firefox/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/firefox/default.nix')
-rw-r--r--modules/nixos/firefox/default.nix576
1 files changed, 0 insertions, 576 deletions
diff --git a/modules/nixos/firefox/default.nix b/modules/nixos/firefox/default.nix
deleted file mode 100644
index 881e9ad..0000000
--- a/modules/nixos/firefox/default.nix
+++ /dev/null
@@ -1,576 +0,0 @@
-{
- config,
- inputs,
- lib,
- pkgs,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.firefox;
-in
-{
- options.nixfiles.modules.firefox.enable = mkEnableOption "Firefox";
-
- config = mkIf cfg.enable {
- nixfiles.modules.common.xdg.defaultApplications.firefox = [
- "text/html"
- "x-scheme-handler/http"
- "x-scheme-handler/https"
- ];
-
- hm = {
- imports = [ inputs.arkenfox.hmModules.arkenfox ];
-
- home.packages = with pkgs; [ profile-cleaner ];
-
- stylix.targets.firefox = {
- enable = true;
- profileNames = [ "default" ];
- };
-
- programs.firefox = {
- enable = true;
-
- package = pkgs.firefox;
-
- arkenfox.enable = true;
-
- profiles.default =
- let
- mkCssWithRoot =
- css:
- mkMerge [
- # https://github.com/tinted-theming/base24/blob/master/styling.md
- (with config.colors.withHashtag; ''
- :root {
- --black: ${base01};
- --red: ${base08};
- --green: ${base0B};
- --yellow: ${base09};
- --blue: ${base0D};
- --magenta: ${base0E};
- --cyan: ${base0C};
- --white: ${base06};
- --bright-black: ${base02};
- --bright-red: ${base12};
- --bright-green: ${base14};
- --bright-yellow: ${base13};
- --bright-blue: ${base16};
- --bright-magenta: ${base17};
- --bright-cyan: ${base15};
- --bright-white: ${base07};
- --background: ${base00};
- --foreground: ${base05};
- '')
- (
- let
- mapFonts = concatMapStringsSep ", " (font: ''"${font}"'');
- size = toString config.stylix.fonts.sizes.applications;
- in
- with config.fonts.fontconfig.defaultFonts;
- ''
- --serif-font-family: ${mapFonts serif}, serif;
- --serif-font-size: ${size};
- --sans-serif-font-family: ${mapFonts sansSerif}, sans-serif;
- --sans-serif-font-size: ${size};
- --monospace-font-family: ${mapFonts monospace}, monospace;
- --monospace-font-size: ${size};
- }
- ''
- )
- (builtins.readFile css)
- ];
- in
- {
- id = 0;
-
- isDefault = true;
-
- userChrome = mkCssWithRoot ./userChrome.css;
-
- userContent = mkCssWithRoot ./userContent.css;
-
- extensions =
- let
- # This was done using the incredible addon generator[1]. All credit
- # goes to Robert Helgesson.
- #
- # [1]: https://sr.ht/~rycee/mozilla-addons-to-nix/
- buildFirefoxXpiAddon = makeOverridable (
- {
- stdenv ? pkgs.stdenv,
- fetchurl ? pkgs.fetchurl,
- pname,
- version,
- addonId,
- url,
- sha256,
- meta,
- ...
- }:
- stdenv.mkDerivation {
- name = "${pname}-${version}";
- inherit meta;
- src = fetchurl { inherit url sha256; };
- preferLocalBuild = true;
- allowSubstitutes = true;
- buildCommand = ''
- dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
- mkdir -p "$dst"
- install -v -m644 "$src" "$dst/${addonId}.xpi"
- '';
- }
- );
-
- addons = import ./addons.nix { inherit buildFirefoxXpiAddon lib; };
- in
- with addons;
- [
- bypass-paywalls
- consent-o-matic
- darkreader
- furiganaize
- languagetool
- no-pdf-download
- redirector
- rikaichamp
- skip-redirect
- ublock-origin
- user-agent-switcher
- violentmonkey
- ]
- ++ optional config.nixfiles.modules.ipfs.enable ipfs-companion;
-
- search = {
- force = true;
-
- default = "DuckDuckGo";
- order = [
- "DuckDuckGo"
- "Yahoo"
- "Google"
- ];
-
- engines =
- let
- getIcon = url: sha256: pkgs.fetchurl { inherit url sha256; };
- in
- {
- "Amazon.com".metaData.hidden = true;
- "Bing".metaData.hidden = true;
- "Ebay".metaData.hidden = true;
-
- "2GIS" = {
- urls = [ { template = "https://2gis.ru/kazan/search/{searchTerms}"; } ];
- icon = getIcon "https://d-assets.2gis.ru/favicon.png" "sha256-BlSaYRcUx9zhfJnVK5V7rsyft4qaueIEOONiCg+6aLE=";
- definedAliases = [ "@2gis" ];
- };
-
- "AliExpress" = {
- urls = [ { template = "https://aliexpress.ru/wholesale?SearchText={searchTerms}"; } ];
- icon = getIcon "https://ae01.alicdn.com/images/eng/wholesale/icon/aliexpress.ico" "sha256-7xgem2pY2PNuv8as1YnS+U03GvDLLGjhcDLt69rtmaA=";
- definedAliases = [
- "@aliexpress"
- "@ali"
- ];
- };
-
- "Ansible Galaxy" = {
- urls = [ { template = "https://galaxy.ansible.com/search?keywords={searchTerms}"; } ];
- icon = getIcon "https://galaxy.ansible.com/assets/favicon.ico" "sha256-oAolpZhdKbVTraes6dDlafpvq/Vypu264vgKN4jzJk8=";
- definedAliases = [
- "@ansible"
- "@galaxy"
- "@ag"
- ];
- };
-
- "Arch Wiki" = {
- urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ];
- icon = getIcon "https://wiki.archlinux.org/favicon.ico" "sha256-0uxMtT8myzTT7p9k6v5UxsguPKu+vHPlglNTMbnN1T0=";
- definedAliases = [
- "@archwiki"
- "@aw"
- ];
- };
-
- "crates.io" = {
- urls = [ { template = "https://crates.io/search?q={searchTerms}"; } ];
- icon = getIcon "https://crates.io/favicon.ico" "sha256-upooA/+m5KMUD1t4WFY3EOmytdpUFgNqUj12Auta1mM=";
- definedAliases = [ "@crates" ];
- };
-
- "Discogs" = {
- urls = [ { template = "https://www.discogs.com/search?q={searchTerms}"; } ];
- icon = getIcon "https://st.discogs.com/d56dcb7367720ea20f1b11a4385705517c7e7702/images/favicon.ico" "sha256-zEDrbmcUf8XHUyYzNc6JsWzBioX8sm8tjScGHim5VTk=";
- definedAliases = [ "@discogs" ];
- };
-
- "Docker Hub" = {
- urls = [ { template = "https://hub.docker.com/search?q={searchTerms}"; } ];
- icon = getIcon "https://www.docker.com/wp-content/uploads/2023/04/cropped-Docker-favicon-32x32.png" "sha256-4NmHGMaq31qoIvdlmy7fI3qTbkcp1/tJhqQu/9Ci4/c=";
- definedAliases = [
- "@dockerhub"
- "@docker"
- ];
- };
-
- "Ecosia" = {
- urls = [ { template = "https://www.ecosia.org/search?q={searchTerms}"; } ];
- icon = getIcon "https://cdn-static.ecosia.org/static/icons/favicon.ico" "sha256-uvPShG1yVh4C4zaJmGuhhr96V/NredB1Wte9O3U6QxA=";
- definedAliases = [ "@ecosia" ];
- };
-
- "Genius" = {
- urls = [ { template = "https://genius.com/search?q={searchTerms}"; } ];
- icon = getIcon "https://assets.genius.com/images/apple-touch-icon.png" "sha256-M9YQEVg3T7hMO/xPfihR1aXfG+/pNiVOBCOtzx3GrkE=";
- definedAliases = [ "@genius" ];
- };
-
- "GitHub" = {
- urls = [ { template = "https://github.com/search?q={searchTerms}"; } ];
- icon = getIcon "https://github.githubassets.com/favicons/favicon-dark.svg" "sha256-qu/d9ftvsntplFuxw9RFL8BpI9b2g5b6xfeGw6Ekh6w=";
- definedAliases = [
- "@github"
- "@gh"
- ];
- };
-
- "godocs.io" = {
- urls = [ { template = "https://godocs.io/?q={searchTerms}"; } ];
- icon = getIcon "https://go.dev/images/favicon-gopher.svg" "sha256-OlKpUUeYF8TtMoX4e0ERK1ocIb53OJ8ZDxvwJaQVM/0=";
- definedAliases = [ "@godocs" ];
- };
-
- "pkgs.go.dev" = {
- urls = [ { template = "https://pkg.go.dev/search?q={searchTerms}"; } ];
- icon = getIcon "https://go.dev/images/favicon-gopher.svg" "sha256-OlKpUUeYF8TtMoX4e0ERK1ocIb53OJ8ZDxvwJaQVM/0=";
- definedAliases = [ "@gopkgs" ];
- };
-
- "Hackage" = {
- urls = [ { template = "https://hackage.haskell.org/packages/search?terms={searchTerms}"; } ];
- icon = getIcon "https://hackage.haskell.org/static/favicon.png" "sha256-+6WAv93yaA3L2eheGKxklY/uRAvbKD1q/WcmufmhKxY=";
- definedAliases = [ "@hackage" ];
- };
-
- "Hoogle" = {
- urls = [ { template = "https://hoogle.haskell.org/?hoogle={searchTerms}"; } ];
- icon = getIcon "https://hoogle.haskell.org/favicon.png" "sha256-6qmjRYDDRUwm6EdLoZB6o9XtoujsfDEQJ9xOu3Knei8=";
- definedAliases = [ "@hoogle" ];
- };
-
- "Jisho" = {
- urls = [ { template = "https://jisho.org/search/{searchTerms}"; } ];
- icon = getIcon "https://assets.jisho.org/assets/favicon-062c4a0240e1e6d72c38aa524742c2d558ee6234497d91dd6b75a182ea823d65.ico" "sha256-BixKAkDh5tcsOKpSR0LC1VjuYjRJfZHda3WhguqCPWU=";
- definedAliases = [ "@jisho" ];
- };
-
- "コトバンク" = {
- urls = [ { template = "https://kotobank.jp/gs/?q={searchTerms}"; } ];
- icon = getIcon "https://kotobank.jp/favicon.ico" "sha256-t+EzqURlQwznuBqa0GcBbqumvZqtU7HrEAjGUlqp1tg=";
- definedAliases = [ "@kotobank" ];
- };
-
- "Kubernetes" = {
- urls = [ { template = "https://kubernetes.io/search/?q={searchTerms}"; } ];
- icon = getIcon "https://kubernetes.io/images/favicon.png" "sha256-YI5QvGQXoaTG3uUGQ/R99Xl2r+VqBAA1qqthzPbf8nQ=";
- definedAliases = [
- "@kubernetes"
- "@k8s"
- ];
- };
-
- "Last.fm" = {
- urls = [ { template = "https://www.last.fm/search?q={searchTerms}"; } ];
- icon = getIcon "https://www.last.fm/static/images/favicon.702b239b6194.ico" "sha256-ID+DfF+dZ5CzKiBp/psQPRD6r/06PZ0rVYiELWUt5Mw=";
- definedAliases = [ "@lastfm" ];
- };
-
- "MDN" = {
- urls = [ { template = "https://developer.mozilla.org/en-US/search?q={searchTerms}"; } ];
- icon = getIcon "https://developer.mozilla.org/favicon-48x48.cbbd161b.png" "sha256-Wnd0BqQIKgroGmV+R8vqV9uNBwDvcxBrQ8hXOLOFeKY=";
- definedAliases = [ "@mdn" ];
- };
-
- "MELPA" = {
- urls = [ { template = "https://melpa.org/#/?q={searchTerms}"; } ];
- icon = getIcon "https://melpa.org/favicon.ico" "sha256-bmlydqXBM8MUMC6cOTGSHPx6zN8tZFqmQ+srbXkSCA4=";
- definedAliases = [ "@melpa" ];
- };
-
- "MusicBrainz" = {
- urls = [ { template = "https://musicbrainz.org/search?type=artist&query={searchTerms}"; } ];
- icon = getIcon "https://musicbrainz.org/static/images/favicons/favicon-16x16.png" "sha256-M5mKQurmO9AP0gfC+5OLwi8k4XWQy759eQrrKAeytl0=";
- definedAliases = [
- "@musicbrainz"
- "@mb"
- ];
- };
-
- "NixOS Packages" = {
- urls = [ { template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; } ];
- icon = getIcon "https://nixos.org/favicon.png" "sha256-awcsDbbpRcDJnJpRavj/IcKMReEektRcqKbE35IJTKQ=";
- definedAliases = [
- "@nixpkgs"
- "@np"
- ];
- };
-
- "NixOS Options" = {
- urls = [ { template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; } ];
- icon = getIcon "https://nixos.org/favicon.png" "sha256-awcsDbbpRcDJnJpRavj/IcKMReEektRcqKbE35IJTKQ=";
- definedAliases = [
- "@nixopts"
- "@no"
- ];
- };
-
- "NixOS Wiki" = {
- urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ];
- icon = getIcon "https://nixos.wiki/favicon.png" "sha256-DE8IgVninF6Aq3iNMgerhvF1dpoXqDUSibtWSpf/dN4=";
- definedAliases = [
- "@nixoswiki"
- "@nw"
- ];
- };
-
- "OpenStreetMap" = {
- urls = [ { template = "https://www.openstreetmap.org/search?query={searchTerms}"; } ];
- icon = getIcon "https://www.openstreetmap.org/assets/favicon-32x32-99b88fcadeef736889823c8a886b89d8cada9d4423a49a27de29bacc0a6bebd1.png" "sha256-dt4QVbQPdb4neS/fwH3yOWOSbEdkjMZtAYnIeCfr7qI=";
- definedAliases = [
- "@openstreetmap"
- "@osm"
- "@maps"
- ];
- };
-
- "ProtonDB" = {
- urls = [ { template = "https://www.protondb.com/search?q={searchTerms}"; } ];
- icon = getIcon "https://www.protondb.com/sites/protondb/images/favicon.ico" "sha256-oauOp0EASNjMcThfzYJ2TfbaOYHBPL8LOp+9lmp4pmc=";
- definedAliases = [ "@protondb" ];
- };
-
- "PyPI" = {
- urls = [ { template = "https://pypi.org/search/?q={searchTerms}"; } ];
- icon = getIcon "https://pypi.org/static/images/logo-small.2a411bc6.svg" "sha256-+fcSfcNxAMLIFkp+gh52c48lQORoyhcegUIFtuq/zYs=";
- definedAliases = [ "@pypi" ];
- };
-
- "Python Docs" = {
- urls = [ { template = "https://docs.python.org/3/search.html?q={searchTerms}"; } ];
- icon = getIcon "https://docs.python.org/3/_static/py.svg" "sha256-WGW+i8wK+IhZSQPqARL2yNkjxXJsQIHoyFYRDMcznO8=";
- definedAliases = [ "@pydocs" ];
- };
-
- "Rate Your Music" = {
- urls = [ { template = "https://rateyourmusic.com/search?searchterm={searchTerms}"; } ];
- icon = getIcon "https://e.snmc.io/3.0/img/logo/sonemic-32.png" "sha256-JpTt1tjBkUvDMTGrG7Hg2EiE8PR3RL7McodeZk1EpZA=";
- definedAliases = [ "@rym" ];
- };
-
- "Rust Std" = {
- urls = [ { template = "https://doc.rust-lang.org/std/?search={searchTerms}"; } ];
- icon = getIcon "https://www.rust-lang.org/static/images/favicon-32x32.png" "sha256-l2y4jpnODbua4dyLvXTMBlHVkoDPM9y00l6L61so7eA=";
- definedAliases = [
- "@ruststd"
- "@rust"
- ];
- };
-
- "SourceHut" = {
- urls = [ { template = "https://sr.ht/projects?search={searchTerms}"; } ];
- icon = getIcon "https://sr.ht/static/logo.png" "sha256-NBzKZhqE9//zVJlOwYiwyW/jRFh8+nS2YvC3zMCQ1fU=";
- definedAliases = [
- "@sourcehut"
- "@srht"
- ];
- };
-
- "SteamDB" = {
- urls = [ { template = "https://steamdb.info/search/?a=app&q={searchTerms}"; } ];
- icon = getIcon "https://steamdb.info/static/logos/32px.png" "sha256-IUBiB5JUSvyDa+m/wecmHB8s3Wfu0JK98bJ+ZRZ5ybQ=";
- definedAliases = [ "@steamdb" ];
- };
-
- "WolframAlpha" = {
- urls = [ { template = "https://www.wolframalpha.com/input?i={searchTerms}"; } ];
- icon = getIcon "https://www.wolframalpha.com/_next/static/images/favicon_1zbE9hjk.ico" "sha256-S9k7AlBQiDElBCGopJ8xfBD6dIhGU+EBh8t1QYbP2S4=";
- definedAliases = [
- "@wolframalpha"
- "@wa"
- ];
- };
-
- "Yahoo" = {
- urls = [ { template = "https://yahoo.com/search/?text={searchTerms}"; } ];
- icon = getIcon "https://yahoostatic.net/s3/web4static/_/v2/oxjfXL1EO-B5Arm80ZrL00p0al4.png" "sha256-gvYh4oCZEO7BL2QZ6QvQFlmFiP2L4SLJrxAsKFcG6G4=";
- definedAliases = [
- "@yahoo"
- "@ya"
- ];
- };
-
- "YouTube" = {
- urls = [ { template = "https://yewtu.be/search?q={}"; } ];
- icon = getIcon "https://www.youtube.com/s/desktop/280a3f09/img/favicon.ico" "sha256-i7HQ+kOhdDbVndVG9vdMdtxEc13vdSLCLYAxFm24kR0=";
- definedAliases = [
- "@youtube"
- "@yt"
- ];
- };
- };
- };
-
- # NOTE This silently overrides all other bookmarks.
- bookmarks = [
- {
- name = "Bookmarks Toolbar";
- toolbar = true;
- bookmarks = with config.nixfiles.modules; [
- (mkIf syncthing.enable {
- name = "Syncthing";
- url = "http://${config.services.syncthing.guiAddress}";
- })
- (mkIf ipfs.enable {
- name = "IPFS";
- url = "http://127.0.0.1:${toString ipfs.apiPort}/webui";
- })
- ];
- }
- ];
-
- # https://github.com/arkenfox/user.js/blob/master/user.js
- arkenfox = {
- enable = true;
- "0000".enable = true;
- "0100" = {
- enable = true;
- "0103"."browser.startup.homepage".value = "about:blank";
- };
- "0200".enable = true;
- "0300".enable = true;
- "0400" = {
- enable = true;
- "0401"."browser.safebrowsing.phishing.enabled".enable = true;
- "0402"."browser.safebrowsing.downloads.enabled".enable = true;
- "0404" = {
- "browser.safebrowsing.downloads.remote.block_potentially_unwanted".enable = true;
- "browser.safebrowsing.downloads.remote.block_uncommon".enable = true;
- };
- "0405"."browser.safebrowsing.allowOverride".enable = true;
- };
- "0600".enable = true;
- "0700" = {
- enable = true;
- "0710"."network.trr.mode" = {
- enable = true;
- value = 5;
- };
- };
- "0800" = {
- enable = true;
- "0830" = {
- "browser.search.separatePrivateDefault" = {
- enable = true;
- value = false;
- };
- "browser.search.separatePrivateDefault.ui.enabled" = {
- enable = true;
- value = false;
- };
- };
- };
- "0900".enable = true;
- "1000" = {
- enable = true;
- "1001".enable = false;
- };
- "1200".enable = true;
- "1600".enable = true;
- "1700".enable = true;
- "2000".enable = true;
- "2400".enable = true;
- "2600" = {
- enable = true;
- "2615"."permissions.default.shortcuts".enable = true;
- };
- "2700".enable = true;
- "2800" = {
- enable = true;
- "2811"."privacy.clearOnShutdown.history".value = false;
- };
- "4500" = {
- enable = true;
- "4502".enable = false;
- "4504".enable = false;
- };
- "5000" = {
- enable = true;
- "5003"."signon.rememberSignons".enable = true;
- "5017" = {
- "extensions.formautofill.addresses.enabled".enable = true;
- "extensions.formautofill.creditCards.enabled".enable = true;
- };
- "5019"."browser.pagethumbnails.capturing_disabled".enable = true;
- };
- "5500" = {
- enable = true;
- "5508"."media.eme.enabled".enable = true;
- "5508"."browser.eme.ui.enabled".enable = true;
- };
- "6000".enable = true;
- "7000".enable = true;
- "8000".enable = true;
- "9000".enable = true;
- };
-
- settings = {
- "app.update.auto" = false;
- "browser.backspace_action" = 0;
- "browser.disableResetPrompt" = true;
- "browser.download.autohideButton" = false;
- "browser.newtabpage.introShown" = true;
- "browser.newtabpage.pinned" = "";
- "browser.onboarding.enabled" = false;
- "browser.open.lastDir" = config.my.home;
- "browser.protections_panel.infoMessage.seen" = true;
- "browser.region.update.region" = "US";
- "browser.search.region" = "US";
- "browser.search.update" = false;
- "browser.shell.checkDefaultBrowser" = false;
- "browser.tabs.closeWindowWithLastTab" = true;
- "browser.tabs.firefox-view" = false;
- "browser.tabs.firefox-view-next" = false;
- "browser.tabs.inTitlebar" = 0;
- "browser.tabs.tabmanager.enabled" = false;
- "browser.tabs.warnOnClose" = false;
- "browser.tabs.warnOnCloseOtherTabs" = false;
- "browser.tabs.warnOnOpen" = false;
- "browser.toolbars.bookmarks.visibility" = "newtab";
- "browser.translations.enable" = false;
- "browser.urlbar.decodeURLsOnCopy" = true;
- "browser.urlbar.suggest.engines" = false;
- "browser.warnOnQuitShortcut" = false;
- "devtools.everOpened" = true;
- "doh-rollout.home-region" = "US";
- "extensions.pocket.enabled" = false;
- "extensions.update.autoUpdateDefault" = false;
- "extensions.update.enabled" = false;
- "full-screen-api.warning.delay" = 0;
- "full-screen-api.warning.timeout" = 0;
- "general.autoScroll" = true;
- "general.smoothScroll" = true;
- "identity.fxaccounts.enabled" = false;
- "media.autoplay.blocking_policy" = 2;
- "media.autoplay.default" = 5;
- "media.hardwaremediakeys.enabled" = false;
- "reader.parse-on-load.enabled" = false;
- "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
- };
- };
- };
- };
- };
-}