1{ lib, config, pkgs, helpers, ... }:
2
3with lib;
4let
5 cfg = config.modules.apps;
6in {
7 options.modules.apps.zen-browser = {
8 enable = mkOption {
9 default = false;
10 description = "Whether to enable Zen.";
11 type = types.bool;
12 };
13 };
14
15 config.modules.apps.zen-browser = {
16 enable = if helpers.isLinux then (mkDefault false) else (mkForce false);
17 };
18} // helpers.linuxAttrs {
19 config = mkIf (cfg.enable && cfg.zen-browser.enable) {
20 home.packages = [ pkgs.zen-browser ];
21
22 systemd.user.sessionVariables = {
23 MOZ_ENABLE_WAYLAND = 1;
24 MOZ_WEBRENDER = 1;
25 NIXOS_OZONE_WL = mkDefault 1;
26 };
27
28 xdg = {
29 mimeApps = {
30 enable = mkDefault true;
31 defaultApplications = let
32 browser = [ "zen-beta.desktop" ];
33 in {
34 "application/json" = browser;
35 "application/pdf" = browser;
36 "application/xml" = browser;
37 "application/xhtml+xml" = browser;
38 "application/xhtml_xml" = browser;
39 "application/x-extension-htm" = browser;
40 "application/x-extension-html" = browser;
41 "x-scheme-handler/about" = browser;
42 "x-scheme-handler/ftp" = browser;
43 "x-scheme-handler/http" = browser;
44 "x-scheme-handler/https" = browser;
45 "x-scheme-handler/unknown" = browser;
46 "text/html" = browser;
47 "text/xml" = browser;
48 };
49 };
50 };
51 };
52}