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