1{ config, lib, pkgs, ... }:
2
3with lib;
4
5{
6
7 options.programs.browserpass.enable = mkEnableOption (lib.mdDoc "Browserpass native messaging host");
8
9 config = mkIf config.programs.browserpass.enable {
10 environment.etc = let
11 appId = "com.github.browserpass.native.json";
12 source = part: "${pkgs.browserpass}/lib/browserpass/${part}/${appId}";
13 in {
14 # chromium
15 "chromium/native-messaging-hosts/${appId}".source = source "hosts/chromium";
16 "chromium/policies/managed/${appId}".source = source "policies/chromium";
17
18 # chrome
19 "opt/chrome/native-messaging-hosts/${appId}".source = source "hosts/chromium";
20 "opt/chrome/policies/managed/${appId}".source = source "policies/chromium";
21
22 # vivaldi
23 "opt/vivaldi/native-messaging-hosts/${appId}".source = source "hosts/chromium";
24 "opt/vivaldi/policies/managed/${appId}".source = source "policies/chromium";
25
26 # brave
27 "opt/brave/native-messaging-hosts/${appId}".source = source "hosts/chromium";
28 "opt/brave/policies/managed/${appId}".source = source "policies/chromium";
29 };
30 nixpkgs.config.firefox.enableBrowserpass = true;
31 };
32}