diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 494df03e3a36..9fc3af4b1ce6 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -391,9 +391,9 @@
./services/desktops/pipewire/pipewire-media-session.nix
./services/desktops/pipewire/wireplumber.nix
./services/desktops/gnome/at-spi2-core.nix
- ./services/desktops/gnome/chrome-gnome-shell.nix
./services/desktops/gnome/evolution-data-server.nix
./services/desktops/gnome/glib-networking.nix
+ ./services/desktops/gnome/gnome-browser-connector.nix
./services/desktops/gnome/gnome-initial-setup.nix
./services/desktops/gnome/gnome-keyring.nix
./services/desktops/gnome/gnome-online-accounts.nix
diff --git a/nixos/modules/services/desktops/gnome/chrome-gnome-shell.nix b/nixos/modules/services/desktops/gnome/chrome-gnome-shell.nix
deleted file mode 100644
index 7d0ee9ed0221..000000000000
--- a/nixos/modules/services/desktops/gnome/chrome-gnome-shell.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-# Chrome GNOME Shell native host connector.
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-{
- meta = {
- maintainers = teams.gnome.members;
- };
-
- # Added 2021-05-07
- imports = [
- (mkRenamedOptionModule
- [ "services" "gnome3" "chrome-gnome-shell" "enable" ]
- [ "services" "gnome" "chrome-gnome-shell" "enable" ]
- )
- ];
-
- ###### interface
- options = {
- services.gnome.chrome-gnome-shell.enable = mkEnableOption (lib.mdDoc ''
- Chrome GNOME Shell native host connector, a DBus service
- allowing to install GNOME Shell extensions from a web browser.
- '');
- };
-
-
- ###### implementation
- config = mkIf config.services.gnome.chrome-gnome-shell.enable {
- environment.etc = {
- "chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
- "opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
- };
-
- environment.systemPackages = [ pkgs.chrome-gnome-shell ];
-
- services.dbus.packages = [ pkgs.chrome-gnome-shell ];
-
- nixpkgs.config.firefox.enableGnomeExtensions = true;
- };
-}
diff --git a/nixos/modules/services/desktops/gnome/gnome-browser-connector.nix b/nixos/modules/services/desktops/gnome/gnome-browser-connector.nix
new file mode 100644
index 000000000000..5d4ddce94220
--- /dev/null
+++ b/nixos/modules/services/desktops/gnome/gnome-browser-connector.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+let
+ inherit (lib) mdDoc mkEnableOption mkIf mkRenamedOptionModule teams;
+in
+
+{
+ meta = {
+ maintainers = teams.gnome.members;
+ };
+
+ imports = [
+ # Added 2021-05-07
+ (mkRenamedOptionModule
+ [ "services" "gnome3" "chrome-gnome-shell" "enable" ]
+ [ "services" "gnome" "gnome-browser-connector" "enable" ]
+ )
+ # Added 2022-07-25
+ (mkRenamedOptionModule
+ [ "services" "gnome" "chrome-gnome-shell" "enable" ]
+ [ "services" "gnome" "gnome-browser-connector" "enable" ]
+ )
+ ];
+
+ options = {
+ services.gnome.gnome-browser-connector.enable = mkEnableOption (mdDoc ''
+ Native host connector for the GNOME Shell browser extension, a DBus service
+ allowing to install GNOME Shell extensions from a web browser.
+ '');
+ };
+
+ config = mkIf config.services.gnome.gnome-browser-connector.enable {
+ environment.etc = {
+ "chromium/native-messaging-hosts/org.gnome.browser_connector.json".source = "${pkgs.gnome-browser-connector}/etc/chromium/native-messaging-hosts/org.gnome.browser_connector.json";
+ "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";
+ # Legacy paths.
+ "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";
+ "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";
+ };
+
+ environment.systemPackages = [ pkgs.gnome-browser-connector ];
+
+ services.dbus.packages = [ pkgs.gnome-browser-connector ];
+
+ nixpkgs.config.firefox.enableGnomeExtensions = true;
+ };
+}
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix
index d3db98cb4e2a..c91181491fa1 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -389,8 +389,8 @@ in
++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
services.colord.enable = mkDefault true;
- services.gnome.chrome-gnome-shell.enable = mkDefault true;
services.gnome.glib-networking.enable = true;
+ services.gnome.gnome-browser-connector.enable = mkDefault true;
services.gnome.gnome-initial-setup.enable = mkDefault true;
services.gnome.gnome-remote-desktop.enable = mkDefault true;
services.gnome.gnome-settings-daemon.enable = true;
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index e09bbef871b5..eeb72590df23 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -4,7 +4,7 @@
## various stuff that can be plugged in
, ffmpeg_5, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc
, gnome/*.gnome-shell*/
-, browserpass, chrome-gnome-shell, uget-integrator, plasma5Packages, bukubrow, pipewire
+, browserpass, gnome-browser-connector, uget-integrator, plasma5Packages, bukubrow, pipewire
, tridactyl-native
, fx_cast_bridge
, udev
@@ -65,7 +65,7 @@ let
++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
++ lib.optional (cfg.enableBukubrow or false) bukubrow
++ lib.optional (cfg.enableTridactylNative or false) tridactyl-native
- ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell
+ ++ lib.optional (cfg.enableGnomeExtensions or false) gnome-browser-connector
++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator
++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma5Packages.plasma-browser-integration
++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge
diff --git a/pkgs/desktops/gnome/extensions/chrome-gnome-shell/default.nix b/pkgs/desktops/gnome/extensions/chrome-gnome-shell/default.nix
deleted file mode 100644
index 779d7506abf5..000000000000
--- a/pkgs/desktops/gnome/extensions/chrome-gnome-shell/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, cmake
-, ninja
-, jq
-, python3
-, gnome
-, wrapGAppsHook
-, gobject-introspection
-}:
-
-let
- inherit (python3.pkgs) python pygobject3 requests;
-in
-stdenv.mkDerivation rec {
- pname = "chrome-gnome-shell";
- version = "10.1";
-
- src = fetchurl {
- url = "mirror://gnome/sources/chrome-gnome-shell/${version}/${pname}-${version}.tar.xz";
- sha256 = "0f54xyamm383ypbh0ndkza0pif6ljddg2f947p265fkqj3p4zban";
- };
-
- nativeBuildInputs = [
- cmake
- ninja
- jq
- wrapGAppsHook
- gobject-introspection # for setup-hook
- ];
-
- buildInputs = [
- gnome.gnome-shell
- python
- pygobject3
- requests
- gobject-introspection # for Gio typelib
- ];
-
- cmakeFlags = [
- "-DBUILD_EXTENSION=OFF"
- ];
-
- wrapPrefixVariables = [
- "PYTHONPATH"
- ];
-
- # cmake setup hook changes /etc/opt into /var/empty
- dontFixCmake = true;
-
- preConfigure = ''
- substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc"
- '';
-
- passthru = {
- updateScript = gnome.updateScript {
- packageName = "chrome-gnome-shell";
- };
- };
-
- meta = with lib; {
- description = "GNOME Shell integration for Chrome";
- homepage = "https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome";
- longDescription = ''
- To use the integration, install the browser extension, and then set to true.
- '';
- license = licenses.gpl3;
- maintainers = teams.gnome.members;
- platforms = platforms.linux;
- };
-}
diff --git a/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix b/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
new file mode 100644
index 000000000000..57052ddf3c56
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, meson
+, ninja
+, python3
+, gnome
+, wrapGAppsNoGuiHook
+, gobject-introspection
+}:
+
+let
+ inherit (python3.pkgs) buildPythonApplication pygobject3;
+in
+buildPythonApplication rec {
+ pname = "gnome-browser-connector";
+ version = "42.0";
+
+ format = "other";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "nE0sIghT";
+ repo = "gnome-browser-connector";
+ rev = "v${version}";
+ sha256 = "pYbV/qCmSrM2nrrKxbxHnJYMDOiW0aeNbFlsm5kKWdk=";
+ };
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ wrapGAppsNoGuiHook
+ gobject-introspection # for setup-hook
+ ];
+
+ buildInputs = [
+ gnome.gnome-shell
+ gobject-introspection # for Gio typelib
+ ];
+
+ pythonPath = [
+ pygobject3
+ ];
+
+ postPatch = ''
+ patchShebangs contrib/merge_json.py
+ '';
+
+ dontWrapGApps = true;
+
+ # Arguments to be passed to `makeWrapper`, only used by buildPython*
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
+
+ meta = with lib; {
+ description = "Native host connector for the GNOME Shell browser extension";
+ homepage = "https://wiki.gnome.org/Projects/GnomeShellIntegration";
+ longDescription = ''
+ To use the integration, install the browser extension, and then set to true.
+ '';
+ license = licenses.gpl3Plus;
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 2e2e4bf5c79e..5b2dcc492f6d 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -153,6 +153,8 @@ mapAliases ({
catfish = throw "'catfish' has been renamed to/replaced by 'xfce.catfish'"; # Converted to throw 2022-09-24
cde-gtk-theme = throw "cde-gtk-theme has been removed from nixpkgs as it shipped with python2 scripts that didn't work anymore"; # Added 2022-01-12
checkbashism = throw "'checkbashism' has been renamed to/replaced by 'checkbashisms'"; # Converted to throw 2022-02-22
+ chrome-gnome-shell = gnome-browser-connector; # Added 2022-07-27
+ chronos = throw "chronos has been removed from nixpkgs, as it was unmaintained"; # Added 2020-08-15
chunkwm = throw "chunkwm has been removed: abandoned by upstream"; # Added 2022-01-07
cifs_utils = throw "'cifs_utils' has been renamed to/replaced by 'cifs-utils'"; # Converted to throw 2022-02-22
cipherscan = throw "cipherscan was removed from nixpkgs, as it was unmaintained"; # added 2021-12-11
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b38c9c6ec07e..04be96e82960 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -34564,7 +34564,7 @@ with pkgs;
gnome-tour = callPackage ../desktops/gnome/core/gnome-tour { };
- chrome-gnome-shell = callPackage ../desktops/gnome/extensions/chrome-gnome-shell { };
+ gnome-browser-connector = callPackage ../desktops/gnome/extensions/gnome-browser-connector { };
gnome-2048 = callPackage ../desktops/gnome/games/gnome-2048 { };