{ inputs, outputs, config, pkgs, lib, ... }: with inputs; { home.sessionVariables.DEFAULT_BROWSER = if (config.os == "linux") then "${pkgs.firefox}/bin/firefox" else "firefox"; programs.firefox = lib.mkIf (config.os == "linux") { enable = true; package = pkgs.firefox.override {cfg = {enableGnomeExtensions = true;};}; profiles.xqtc = { isDefault = true; extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ ublock-origin sponsorblock dearrow pronoundb tabcenter-reborn firefox-color unpaywall bitwarden sidebery leechblock-ng darkreader ipvfoo stylus shinigami-eyes violentmonkey vimium-c noscript ]; bookmarks = [ { toolbar = true; bookmarks = [ { name = "heroin.trade"; bookmarks = [ { name = "Forgejo"; url = "https://git.heroin.trade"; } { name = "Grafana"; url = "https://grafana.heroin.trade"; } { name = "Jellyfin"; url = "https://jellyfin.heroin.trade"; } { name = "Uptime"; url = "https://uptime.heroin.trade"; } { name = "Lanraragi"; url = "https://calibre.heroin.trade"; } { name = "Paperless"; url = "https://paperless.heroin.trade"; } { name = "Nextcloud"; url = "https://cloud.heroin.trade"; } ]; } { name = "piracy"; bookmarks = [ { name = "slskd"; url = "http://seraphim.fritz.box:5030"; } { name = "Sonarr"; url = "http://seraphim.fritz.box:8989"; } { name = "Radarr"; url = "http://seraphim.fritz.box:7878"; } { name = "Prowlarr"; url = "http://seraphim.fritz.box:9696"; } { name = "qBittorrent"; url = "http://seraphim.fritz.box:8085"; } ]; } ]; } ]; search = { default = "DuckDuckGo"; force = true; engines = { "SearX" = { urls = [ { template = "https://searx.org/search"; params = [ { name = "q"; value = "{searchTerms}"; } ]; } ]; iconUpdateURL = "https://searx.org/favicon.ico"; definedAliases = ["@sx"]; }; "Nix Packages" = { urls = [ { template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = ["@np"]; }; "Nix Options" = { urls = [ { # template = "https://search.nixos.org/options"; template = "https://searchix.alanpearce.eu/all/search"; params = [ # { # name = "type"; # value = "options"; # } { name = "query"; value = "{searchTerms}"; } ]; } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = ["@no"]; }; "Nix Dev" = { urls = [ { template = "https://nix.dev/search.html"; params = [ { name = "q"; value = "{searchTerms}"; } ]; } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = ["@nd"]; }; "NixOS Wiki" = { urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ]; iconUpdateURL = "https://nixos.wiki/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@nw"]; }; "nixpkgs PR Tracker" = { urls = [ { template = "https://nixpk.gs/pr-tracker.html?pr={searchTerms}"; } ]; iconUpdateURL = "https://nixos.wiki/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@npr"]; }; "Reddit" = { urls = [ { template = "https://reddit.com/r/{searchTerms}"; } ]; iconUpdateURL = "https://reddit.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@r"]; }; "Github Repos" = { urls = [ { template = "https://github.com/search?q={searchTerms}&type=repositories"; } ]; iconUpdateURL = "https://github.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@ghr"]; }; "Github Code" = { urls = [ { template = "https://github.com/search?q={searchTerms}&type=code"; } ]; iconUpdateURL = "https://github.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@ghc"]; }; "Github PRs" = { urls = [ { template = "https://github.com/search?q={searchTerms}&type=pullrequests"; } ]; iconUpdateURL = "https://github.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@ghpr"]; }; "Github Users" = { urls = [ { template = "https://github.com/search?q={searchTerms}&type=users"; } ]; iconUpdateURL = "https://github.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@ghu"]; }; "Hackage" = { urls = [ { template = "https://hackage.haskell.org/packages/browse?terms={searchTerms}"; } ]; iconUpdateURL = "https://hackage.haskell.org/static/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@hak"]; }; "crates.io" = { urls = [ { template = "https://crates.io/search?q={searchTerms}"; } ]; iconUpdateURL = "https://crates.io/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@cio"]; }; "OSDev Wiki" = { urls = [ { template = "https://wiki.osdev.org/index.php?search={searchTerms}"; } ]; iconUpdateURL = "https://wiki.osdev.org/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@osdev"]; }; "YouTube" = { urls = [ { template = "https://youtube.com/results?search_query={searchTerms}"; } ]; iconUpdateURL = "https://youtube.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = ["@yt"]; }; "Bing".metaData.hidden = true; "Google".metaData.hidden = true; "DuckDuckGo".metaData.alias = "@ddg"; }; }; settings = { "app.normandy.first_run" = false; "app.shield.optoutstudies.enabled" = false; "privacy.donotttrackheader.enabled" = true; "browser.startup.homepage" = "https://duckduckgo.com"; "browser.search.region" = "DE"; "browser.search.isUS" = false; "browser.theme.content-theme" = "0"; "browser.theme.toolbar-theme" = "0"; "browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "media.eme.enabled" = true; "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" = false; "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.toolbars.bookmarks.visibility" = "always"; "general.useragent.locale" = "de-DE"; "distribution.searchplugins.defaultLocale" = "de-DE"; "signon.rememberSignons" = false; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Needed to allow userChrome.css }; # userChrome = '' # #TabsToolbar { # display: none; !important # } # #sidebar-header { # display: none; # } # ''; userChrome = builtins.readFile ../config-files/catpuccin-firefox.css; }; }; }