diff --git a/home/browsers/mullvad-browser.nix b/home/browsers/mullvad-browser.nix index 17b6154..d5d5bf2 100644 --- a/home/browsers/mullvad-browser.nix +++ b/home/browsers/mullvad-browser.nix @@ -47,6 +47,132 @@ let "media.ffmpeg.vaapi.enabled" = true; }; + commonSearch = { + force = true; + # TODO defaults don't work + default = "Qwant"; + privateDefault = "Qwant"; + order = [ + "Qwant" + "Ecosia" + "DuckDuckGo" + "Startpage" + "kagi" + ]; + engines = { + # builtin + "Startpage".metaData.alias = "@s"; + "DuckDuckGo".metaData.alias = "@d"; + + # extra + "Qwant" = { + urls = [ { template = "https://www.qwant.com/?q={searchTerms}"; } ]; + iconURL = "https://www.qwant.com/favicon.ico"; + definedAliases = [ "@q" ]; + }; + "Ecosia" = { + urls = [ { template = "https://www.ecosia.org/search?q={searchTerms}"; } ]; + iconURL = "https://www.ecosia.org/favicon.ico"; + definedAliases = [ "@e" ]; + }; + "kagi" = { + urls = [ { template = "https://kagi.com/search?q={searchTerms}"; } ]; + iconURL = "https://kagi.com/favicon.ico"; + definedAliases = [ "@k" ]; + }; + "GitHub" = { + urls = [ { template = "https://github.com/search?q={searchTerms}"; } ]; + iconURL = "https://github.com/favicon.ico"; + definedAliases = [ "@gh" ]; + }; + "GitLab" = { + urls = [ { template = "https://gitlab.com/search?search={searchTerms}"; } ]; + iconURL = "https://gitlab.com/favicon.ico"; + definedAliases = [ "@gl" ]; + }; + "Codeberg" = { + urls = [ { template = "https://codeberg.org/explore/repos?q={searchTerms}"; } ]; + iconURL = "https://codeberg.org/favicon.ico"; + definedAliases = [ "@cb" ]; + }; + "Nix Packages" = { + urls = [ { template = "https://search.nixos.org/packages?query={searchTerms}"; } ]; + icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + }; + "NixOS Options" = { + urls = [ { template = "https://search.nixos.org/options?query={searchTerms}"; } ]; + icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@no" ]; + }; + "Nix Flakes: Packages" = { + urls = [ { template = "https://search.nixos.org/flakes?type=packages&query={searchTerms}"; } ]; + icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@nfp" ]; + }; + "Nix Flakes: Options" = { + urls = [ { template = "https://search.nixos.org/flakes?type=options&query={searchTerms}"; } ]; + icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@nfo" ]; + }; + "NixOS Wiki" = { + urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; + icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@nw" ]; + }; + "Crates.io" = { + urls = [ { template = "https://crates.io/search?q={searchTerms}"; } ]; + iconURL = "https://crates.io/favicon.ico"; + definedAliases = [ "@rc" ]; + }; + "Docs.rs" = { + urls = [ { template = "https://docs.rs/releases/search?query={searchTerms}"; } ]; + iconURL = "https://docs.rs/favicon.ico"; + definedAliases = [ "@rd" ]; + }; + "Rust Book" = { + urls = [ { template = "https://doc.rust-lang.org/book/?search={searchTerms}"; } ]; + iconURL = "https://doc.rust-lang.org/book/favicon.svg"; + definedAliases = [ "@rb" ]; + }; + "Rust std" = { + urls = [ { template = "https://doc.rust-lang.org/stable/std/?search={searchTerms}"; } ]; + iconURL = "https://www.rust-lang.org/static/images/favicon.svg"; + definedAliases = [ "@rs" ]; + }; + "npm" = { + urls = [ { template = "https://www.npmjs.com/search?q={searchTerms}"; } ]; + iconURL = "https://static-production.npmjs.com/da3ab40fb0861d15c83854c29f5f2962.png"; + definedAliases = [ "@npm" ]; + }; + "PyPI" = { + urls = [ { template = "https://pypi.org/search/?q={searchTerms}"; } ]; + iconURL = "https://pypi.org/favicon.ico"; + definedAliases = [ "@pypi" ]; + }; + "Stack Overflow" = { + urls = [ { template = "https://stackoverflow.com/search?q={searchTerms}"; } ]; + iconURL = "https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico"; + definedAliases = [ "@so" ]; + }; + "Wikipedia" = { + urls = [ { template = "https://en.wikipedia.org/wiki/{searchTerms}"; } ]; + iconURL = "https://en.wikipedia.org/favicon.ico"; + definedAliases = [ "@w" ]; + }; + "Wolfram Alpha" = { + urls = [ { template = "https://www.wolframalpha.com/input?i={searchTerms}"; } ]; + iconURL = "https://www.wolframalpha.com/_next/static/images/favicon_1zbE9hjk.ico"; + definedAliases = [ "@wa" ]; + }; + "Reddit" = { + urls = [ { template = "https://www.reddit.com/search/?q={searchTerms}"; } ]; + iconURL = "https://www.reddit.com/favicon.ico"; + definedAliases = [ "@r" ]; + }; + }; + }; + commonExtensions = with firefox-addons; [ dictionary-german proton-pass @@ -64,11 +190,13 @@ in private = { id = 0; settings = commonSettings; + search = commonSearch; extensions = commonExtensions; }; work = { id = 1; settings = commonSettings; + search = commonSearch; extensions = commonExtensions ++ (with firefox-addons; [