1{ config, lib, pkgs, ... }:
2
3let
4 inherit (lib) mdDoc mkEnableOption mkIf mkRenamedOptionModule teams;
5in
6
7{
8 meta = {
9 maintainers = teams.gnome.members;
10 };
11
12 imports = [
13 # Added 2021-05-07
14 (mkRenamedOptionModule
15 [ "services" "gnome3" "chrome-gnome-shell" "enable" ]
16 [ "services" "gnome" "gnome-browser-connector" "enable" ]
17 )
18 # Added 2022-07-25
19 (mkRenamedOptionModule
20 [ "services" "gnome" "chrome-gnome-shell" "enable" ]
21 [ "services" "gnome" "gnome-browser-connector" "enable" ]
22 )
23 ];
24
25 options = {
26 services.gnome.gnome-browser-connector.enable = mkEnableOption (mdDoc ''
27 native host connector for the GNOME Shell browser extension, a DBus service
28 allowing to install GNOME Shell extensions from a web browser
29 '');
30 };
31
32 config = mkIf config.services.gnome.gnome-browser-connector.enable {
33 environment.etc = {
34 "chromium/native-messaging-hosts/org.gnome.browser_connector.json".source = "${pkgs.gnome-browser-connector}/etc/chromium/native-messaging-hosts/org.gnome.browser_connector.json";
35 "opt/chrome/native-messaging-hosts/org.gnome.browser_connector.json".source = "${pkgs.gnome-browser-connector}/etc/opt/chrome/native-messaging-hosts/org.gnome.browser_connector.json";
36 # Legacy paths.
37 "chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.gnome-browser-connector}/etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
38 "opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.gnome-browser-connector}/etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
39 };
40
41 environment.systemPackages = [ pkgs.gnome-browser-connector ];
42
43 services.dbus.packages = [ pkgs.gnome-browser-connector ];
44
45 programs.firefox.nativeMessagingHosts.packages = [ pkgs.gnome-browser-connector ];
46 };
47}