summaryrefslogtreecommitdiffstats
path: root/modules/desktop/apps/browsers/librewolf.nix
blob: 17007548ea13022f6c5789de9b67ace564900dd5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{
    config,
    options,
    lib,
    pkgs,
    ...
}: let
    librewolfConf = config.modules.desktop.apps.browsers.librewolf;
in
{
    options.modules.desktop.apps.browsers.librewolf = {
        enable = lib.mkOption {
            type = lib.types.bool;
            default = false;
        };
    };
    config = lib.mkIf (librewolfConf.enable) {
        home.manager.programs.librewolf = {
            enable = true;
            profiles = {
                "user" = {
                    id = 0;
                    isDefault = true;

                    search.engines = {
                        "Nix Packages" = {
                            urls = [{
                                template = "https://search.nixos.org/packages";
                                params = [
                                    { 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 = "query"; value = "{searchTerms}"; }
                                ];
                            }];
                            definedAliases = [ "@no" ];
                        };
                        "Nix Wiki" = {
                            urls = [{
                                template = "https://wiki.nixos.org/w/index.php";
                                params = [
                                    { name = "search"; value = "{searchTerms}"; }
                                ];
                            }];
                            definedAliases = [ "@nw" ];
                        };
                    };
                };
            };
        };

        modules.desktop.defaultApplications.apps.browser = rec {
            package = pkgs.librewolf;
            install = false;
            cmd = "${package}/bin/librewolf";
            desktop = "librewolf";
        };
    };
}