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