230 lines
6.4 KiB
Nix
230 lines
6.4 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
cfg = config.david.programs.zen-browser;
|
|
in {
|
|
options = {
|
|
david.programs.zen-browser = {
|
|
enable = lib.mkEnableOption "zen-browser";
|
|
};
|
|
};
|
|
config = lib.mkIf cfg.enable {
|
|
stylix.targets.zen-browser.enable = false;
|
|
programs.zen-browser = {
|
|
enable = true;
|
|
profiles.default = {
|
|
name = "default";
|
|
isDefault = true;
|
|
extensions = {
|
|
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
|
immersive-translate
|
|
tridactyl
|
|
redirector
|
|
];
|
|
};
|
|
search = {
|
|
force = true;
|
|
default = "ddg";
|
|
engines = {
|
|
"Guix Packages" = {
|
|
urls = [
|
|
{
|
|
template = "https://packages.guix.gnu.org/search/";
|
|
params = [
|
|
{
|
|
name = "query";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@gp"];
|
|
};
|
|
"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";
|
|
params = [
|
|
{
|
|
name = "channel";
|
|
value = "unstable";
|
|
}
|
|
{
|
|
name = "query";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@no"];
|
|
};
|
|
"Home Manager Options" = {
|
|
urls = [
|
|
{
|
|
template = "https://home-manager-options.extranix.com";
|
|
params = [
|
|
{
|
|
name = "query";
|
|
value = "{searchTerms}";
|
|
}
|
|
{
|
|
name = "release";
|
|
value = "master";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@hm"];
|
|
};
|
|
"Nix Flakes" = {
|
|
urls = [
|
|
{
|
|
template = "https://search.nixos.org/flakes";
|
|
params = [
|
|
{
|
|
name = "channel";
|
|
value = "unstable";
|
|
}
|
|
{
|
|
name = "query";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@nf"];
|
|
};
|
|
"NixOS Wiki" = {
|
|
urls = [
|
|
{
|
|
template = "https://wiki.nixos.org/w/index.php";
|
|
params = [
|
|
{
|
|
name = "search";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@nw"];
|
|
};
|
|
"Rust Stdandard Lib" = {
|
|
urls = [
|
|
{
|
|
template = "https://doc.rust-lang.org/nightly/std/index.html";
|
|
params = [
|
|
{
|
|
name = "search";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@rs"];
|
|
};
|
|
"GitHub" = {
|
|
urls = [
|
|
{
|
|
template = "https://github.com/search";
|
|
params = [
|
|
{
|
|
name = "q";
|
|
value = "{searchTerms}";
|
|
}
|
|
{
|
|
name = "type";
|
|
value = "repositories";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@gh"];
|
|
};
|
|
"Rust Reference" = {
|
|
urls = [
|
|
{
|
|
template = "https://doc.rust-lang.org/nightly/reference";
|
|
params = [
|
|
{
|
|
name = "search";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@rr"];
|
|
};
|
|
"Rust Crates" = {
|
|
urls = [
|
|
{
|
|
template = "https://crates.io/search";
|
|
params = [
|
|
{
|
|
name = "q";
|
|
value = "{searchTerms}";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@rc"];
|
|
};
|
|
"C++ Reference" = {
|
|
urls = [
|
|
{
|
|
template = "https://duckduckgo.com/";
|
|
params = [
|
|
{
|
|
name = "q";
|
|
value = "{searchTerms}";
|
|
}
|
|
{
|
|
name = "sites";
|
|
value = "cppreference.com";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
definedAliases = ["@cr"];
|
|
};
|
|
"bing".metaData.hidden = true;
|
|
"google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
|
|
};
|
|
};
|
|
};
|
|
policies = {
|
|
DisableAppUpdate = true;
|
|
Preferences = let
|
|
mkLockedAttrs = builtins.mapAttrs (_: value: {
|
|
Value = value;
|
|
Status = "locked";
|
|
});
|
|
in
|
|
mkLockedAttrs {
|
|
"browser.tabs.closeTabByDblclick" = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|