{ pkgs, config, ... }: let inherit (pkgs) nur; in { programs.firefox = { enable = true; policies.SearchEngines.Add = [ # Forges { Name = "GitHub"; Alias = "@gh"; IconURL = "https://github.com/favicon.ico"; Description = "Your code yum yum"; URLTemplate = "https://github.com/search?q={searchTerms}&type=repositories"; } { Name = "GitHub (Code Search)"; Alias = "@ghc"; IconURL = "https://github.com/favicon.ico"; Description = "Your code yum yum"; URLTemplate = "https://github.com/search?q={searchTerms}&type=code"; } { Name = "Codeberg"; Alias = "@cb"; IconURL = "https://codeberg.org/favicon.ico"; Description = "Software development, but free!"; URLTemplate = "https://codeberg.org/explore/repos?q={searchTerms}"; } { Name = "?C"; Alias = "@cc"; IconURL = "https://git.confusedcompiler.org/favicon.ico"; URLTemplate = "https://git.confusedcompiler.org/explore/repos?q={searchTerms}"; } # Nix{,OS,pkgs} { Name = "NixOS Search (Package)"; Alias = "@np"; IconURL = "https://nixos.org/favicon.ico"; Description = "Search in nixpkgs"; URLTemplate = "https://search.nixos.org/packages?query={searchTerms}"; } { Name = "NixOS Search (Options)"; Alias = "@no"; IconURL = "https://nixos.org/favicon.ico"; Description = "Search in NixOS options"; URLTemplate = "https://search.nixos.org/options?query={searchTerms}"; } # Haskell { Name = "Flora"; Alias = "@hs"; IconURL = "https://flora.pm/static/icons/favicon-32x32.png"; URLTemplate = "https://flora.pm/search?q={searchTerms}"; } # Discourse { Name = "NixOS Discourse"; Alias = "@nd"; IconURL = "https://nixos.org/favicon.ico"; URLTemplate = "https://discourse.nixos.org/search?q={searchTerms}"; } { Name = "Framework Discourse"; Alias = "@fd"; IconURL = "https://frame.work/favicon.ico"; URLTemplate = "https://community.frame.work/search?q={searchTerms}"; } # Misc { Name = "YouTube"; Alias = "@yt"; IconURL = "https://youtube.com/favicon.ico"; SuggestURLTemplate = "http://suggestqueries.google.com/complete/search?q={searchTerms}&ds=yt"; URLTemplate = "https://www.youtube.com/results?search_query={searchTerms}"; } { Name = "Genius"; Alias = "@geni"; IconURL = "https://genius.com/favicon.ico"; URLTemplate = "https://genius.com/search?q={searchTerms}"; } ]; profiles = { default = { settings = { # "full-screen-api.ignore-widgets" = true; # limit fullscreen mode to window }; userChrome = '' /* monofont tweak */ #statuspanel-label { font-family: monospace; } .urlbar-input-box { font-family: monospace; } ''; extensions.packages = let addons = nur.repos.rycee.firefox-addons; in [ addons.sponsorblock addons.return-youtube-dislikes addons.consent-o-matic ]; }; junk = { id = 1; inherit (config.programs.firefox.profiles.default) settings userChrome ; extensions.packages = let addons = nur.repos.rycee.firefox-addons; in [ addons.multi-account-containers ]; containers = { raisin = { color = "purple"; icon = "fruit"; id = 1; }; pomme = { color = "red"; icon = "fruit"; id = 2; }; }; }; # Isolate it because it's proprietary tampermonkey = { id = 2; inherit (config.programs.firefox.profiles.default) settings userChrome ; extensions.packages = let addons = nur.repos.rycee.firefox-addons; in [ addons.tampermonkey ]; }; }; }; }