about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-08-23 10:09:14 +0000
committerAlyssa Ross <hi@alyssa.is>2023-08-26 09:07:03 +0000
commit63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f (patch)
treed58934cb48f9c953b19a0d0d5cffc0d0c5561471 /nixpkgs/pkgs/desktops
parentc4eef3dacb2a3d359561f30917d9e3cc4e041be9 (diff)
parent91a22f76cd1716f9d0149e8a5c68424bb691de15 (diff)
downloadnixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.gz
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.bz2
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.lz
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.xz
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.tar.zst
nixlib-63dabcc77ef9a56655e1ca2ab2e25e6163a72c1f.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/pkgs/build-support/go/module.nix
	nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
Diffstat (limited to 'nixpkgs/pkgs/desktops')
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-desktop/plugins.patch154
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-desktop/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/budgie/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/budgie/magpie/default.nix163
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/pix/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/expidus/file-manager/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/expidus/file-manager/deps.json292
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/0001-Fix-build-with-Exiv2-0.28.patch73
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch51
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/engrampa/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmateweather/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix24
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/default.nix18
50 files changed, 730 insertions, 294 deletions
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix
index 37e3b231aa2c..989908916689 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "budgie-backgrounds";
-  version = "1.0";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
     repo = "budgie-backgrounds";
     rev = "v${version}";
-    hash = "sha256-TdtgOYHO2QH4W2jWBuAzYQwxwAPya2lC3VrIi7kvi+M=";
+    hash = "sha256-L6y9YVS0NFsycS90AmUJJd9HFMJ/Ge99pI426tC05jA=";
   };
 
   nativeBuildInputs = [
@@ -25,11 +25,6 @@ stdenv.mkDerivation rec {
     ninja
   ];
 
-  preConfigure = ''
-    chmod +x ./scripts/optimizeImage.sh
-    patchShebangs ./scripts/optimizeImage.sh
-  '';
-
   meta = with lib; {
     description = "The default background set for the Budgie Desktop";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-backgrounds";
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix
index 1a51c3dfc1f1..7c11fe7933e5 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix
@@ -39,6 +39,7 @@
 , libwacom
 , libxml2
 , libxslt
+, magpie
 , meson
 , modemmanager
 , networkmanager
@@ -108,7 +109,6 @@ stdenv.mkDerivation rec {
     gnome.gnome-remote-desktop
     gnome.gnome-settings-daemon
     gnome.gnome-user-share
-    gnome.mutter
     gsettings-desktop-schemas
     gsound
     gtk3
@@ -126,6 +126,7 @@ stdenv.mkDerivation rec {
     libsecret
     libwacom
     libxml2
+    magpie
     modemmanager
     networkmanager
     polkit
@@ -158,7 +159,7 @@ stdenv.mkDerivation rec {
       --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
       --prefix XDG_DATA_DIRS : "${librsvg}/share"
       # WM keyboard shortcuts
-      --prefix XDG_DATA_DIRS : "${gnome.mutter}/share"
+      --prefix XDG_DATA_DIRS : "${magpie}/share"
     )
   '';
 
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix
index 787389c7576c..43a68e54beed 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix
@@ -23,6 +23,7 @@
 , libpulseaudio
 , libuuid
 , libwnck
+, magpie
 , mesa
 , meson
 , ninja
@@ -36,14 +37,14 @@
 
 stdenv.mkDerivation rec {
   pname = "budgie-desktop";
-  version = "10.7.2";
+  version = "10.8";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-fd3B2DMZxCI4Gb9mwdACjIPydKghXx8IkhFpMS/Clps=";
+    hash = "sha256-fOsTBnKtwBGQSPkBBrzwHEB3+OcJYtPIdvZsV31oi6g=";
   };
 
   patches = [
@@ -70,7 +71,6 @@ stdenv.mkDerivation rec {
     gnome-menus
     gnome.gnome-bluetooth_1_0
     gnome.gnome-settings-daemon
-    gnome.mutter
     gnome.zenity
     graphene
     gtk3
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
     libpulseaudio
     libuuid
     libwnck
+    magpie
     mesa
     polkit
     sassc
@@ -101,6 +102,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/BuddiesOfBudgie/budgie-desktop";
     platforms = platforms.linux;
     maintainers = [ maintainers.federicoschonborn ];
-    license = with licenses; [ gpl2Plus lgpl21Plus cc-by-sa-30];
+    license = with licenses; [ gpl2Plus lgpl21Plus cc-by-sa-30 ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/plugins.patch b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/plugins.patch
index af03fb635140..ca23edc42cee 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/plugins.patch
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/plugins.patch
@@ -1,21 +1,153 @@
+diff --git a/meson.build b/meson.build
+index 48aeeb38..31e4c24b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -88,11 +88,6 @@ datadir = join_paths(prefix, get_option('datadir'))
+ localedir = join_paths(prefix, get_option('localedir'))
+ podir = join_paths(meson.source_root(), 'po')
+ 
+-cdata.set_quoted('DATADIR', datadir)
+-cdata.set_quoted('SYSCONFDIR', confdir)
+-cdata.set_quoted('LOCALEDIR', localedir)
+-cdata.set_quoted('PACKAGE_URL', 'https://buddiesofbudgie.org')
+-
+ # Handle i18n on the .desktop file
+ # Originally stolem from TingPing:
+ # https://github.com/vinszent/gnome-twitch/blob/master/data/meson.build
+@@ -111,23 +106,10 @@ cdata.set_quoted('MODULEDIR', plugin_libdir)
+ cdata.set_quoted('MODULE_DATA_DIR', plugin_datadir)
+ cdata.set_quoted('RAVEN_PLUGIN_LIBDIR', raven_plugin_libdir)
+ cdata.set_quoted('RAVEN_PLUGIN_DATADIR', raven_plugin_datadir)
+-
+-if prefix == '/usr' or prefix == '/usr/local'
+-    cdata.set('HAS_SECONDARY_PLUGIN_DIRS', true)
+-
+-    if prefix == '/usr'
+-        secondary_libdir_root = join_paths(prefix, 'local', get_option('libdir'), meson.project_name())
+-        secondary_datadir_root = join_paths(prefix, 'local', get_option('datadir'), meson.project_name())
+-    else
+-        secondary_libdir_root = join_paths('/usr', get_option('libdir'), meson.project_name())
+-        secondary_datadir_root = join_paths('/usr', get_option('datadir'), meson.project_name())
+-    endif
+-
+-    cdata.set_quoted('MODULEDIR_SECONDARY', join_paths(secondary_libdir_root, 'plugins'))
+-    cdata.set_quoted('MODULE_DATA_DIR_SECONDARY', join_paths(secondary_datadir_root, 'plugins'))
+-    cdata.set_quoted('RAVEN_PLUGIN_LIBDIR_SECONDARY', join_paths(secondary_libdir_root, 'raven-plugins'))
+-    cdata.set_quoted('RAVEN_PLUGIN_DATADIR_SECONDARY', join_paths(secondary_datadir_root, 'raven-plugins'))
+-endif
++cdata.set_quoted('DATADIR', datadir)
++cdata.set_quoted('SYSCONFDIR', confdir)
++cdata.set_quoted('LOCALEDIR', localedir)
++cdata.set_quoted('PACKAGE_URL', 'https://buddiesofbudgie.org')
+ 
+ with_bluetooth = get_option('with-bluetooth')
+ if with_bluetooth == true
+diff --git a/src/config/budgie-config.c b/src/config/budgie-config.c
+index fc531f59..0a21b690 100644
+--- a/src/config/budgie-config.c
++++ b/src/config/budgie-config.c
+@@ -11,7 +11,6 @@
+ 
+ #ifndef CONFIG_H_INCLUDED
+ #include "config.h"
+-#include <stdbool.h>
+ 
+ /**
+  * All this is to keep Vala happy & configured..
+@@ -20,21 +19,6 @@ const char* BUDGIE_MODULE_DIRECTORY = MODULEDIR;
+ const char* BUDGIE_MODULE_DATA_DIRECTORY = MODULE_DATA_DIR;
+ const char* BUDGIE_RAVEN_PLUGIN_LIBDIR = RAVEN_PLUGIN_LIBDIR;
+ const char* BUDGIE_RAVEN_PLUGIN_DATADIR = RAVEN_PLUGIN_DATADIR;
+-
+-#ifdef HAS_SECONDARY_PLUGIN_DIRS
+-const bool BUDGIE_HAS_SECONDARY_PLUGIN_DIRS = true;
+-const char* BUDGIE_MODULE_DIRECTORY_SECONDARY = MODULEDIR_SECONDARY;
+-const char* BUDGIE_MODULE_DATA_DIRECTORY_SECONDARY = MODULE_DATA_DIR_SECONDARY;
+-const char* BUDGIE_RAVEN_PLUGIN_LIBDIR_SECONDARY = RAVEN_PLUGIN_LIBDIR_SECONDARY;
+-const char* BUDGIE_RAVEN_PLUGIN_DATADIR_SECONDARY = RAVEN_PLUGIN_DATADIR_SECONDARY;
+-#else
+-const bool BUDGIE_HAS_SECONDARY_PLUGIN_DIRS = false;
+-const char* BUDGIE_MODULE_DIRECTORY_SECONDARY = NULL;
+-const char* BUDGIE_MODULE_DATA_DIRECTORY = NULL;
+-const char* BUDGIE_RAVEN_PLUGIN_LIBDIR = NULL;
+-const char* BUDGIE_RAVEN_PLUGIN_DATADIR = NULL;
+-#endif
+-
+ const char* BUDGIE_DATADIR = DATADIR;
+ const char* BUDGIE_VERSION = PACKAGE_VERSION;
+ const char* BUDGIE_WEBSITE = PACKAGE_URL;
+diff --git a/src/config/budgie-config.h b/src/config/budgie-config.h
+index 720379a5..c5774820 100644
+--- a/src/config/budgie-config.h
++++ b/src/config/budgie-config.h
+@@ -12,8 +12,6 @@
+ #ifndef _BUDGIE_CONFIG_H_
+ #define _BUDGIE_CONFIG_H_
+ 
+-#include <stdbool.h>
+-
+ /* i.e. /usr/lib/budgie-desktop */
+ extern const char* BUDGIE_MODULE_DIRECTORY;
+ 
+@@ -26,12 +24,6 @@ extern const char* BUDGIE_RAVEN_PLUGIN_LIBDIR;
+ /* i.e. /usr/share/budgie-desktop/raven-plugins */
+ extern const char* BUDGIE_RAVEN_PLUGIN_DATADIR;
+ 
+-extern const bool BUDGIE_HAS_SECONDARY_PLUGIN_DIRS;
+-extern const char* BUDGIE_MODULE_DIRECTORY_SECONDARY;
+-extern const char* BUDGIE_MODULE_DATA_DIRECTORY_SECONDARY;
+-extern const char* BUDGIE_RAVEN_PLUGIN_LIBDIR_SECONDARY;
+-extern const char* BUDGIE_RAVEN_PLUGIN_DATADIR_SECONDARY;
+-
+ /* i.e. /usr/share/ */
+ extern const char* BUDGIE_DATADIR;
+ 
+diff --git a/src/config/budgie-config.vapi b/src/config/budgie-config.vapi
+index 5eb445d1..7d27e348 100644
+--- a/src/config/budgie-config.vapi
++++ b/src/config/budgie-config.vapi
+@@ -22,21 +22,6 @@ namespace Budgie {
+ 	[CCode (cheader_filename="budgie-config.h")]
+ 	public extern const string RAVEN_PLUGIN_DATADIR;
+ 
+-	[CCode (cheader_filename="budgie-config.h")]
+-	public extern const bool HAS_SECONDARY_PLUGIN_DIRS;
+-
+-	[CCode (cheader_filename="budgie-config.h")]
+-	public extern const string? MODULE_DIRECTORY_SECONDARY;
+-
+-	[CCode (cheader_filename="budgie-config.h")]
+-    public extern const string? MODULE_DATA_DIRECTORY_SECONDARY;
+-
+-	[CCode (cheader_filename="budgie-config.h")]
+-	public extern const string? RAVEN_PLUGIN_LIBDIR_SECONDARY;
+-
+-	[CCode (cheader_filename="budgie-config.h")]
+-	public extern const string? RAVEN_PLUGIN_DATADIR_SECONDARY;
+-
+     [CCode (cheader_filename="budgie-config.h")]
+     public extern const string DATADIR;
+ 
 diff --git a/src/panel/plugin_manager.vala b/src/panel/plugin_manager.vala
-index d3cdb65c..9d569bd1 100644
+index f4f2e4da..9d569bd1 100644
 --- a/src/panel/plugin_manager.vala
 +++ b/src/panel/plugin_manager.vala
-@@ -40,10 +40,26 @@ namespace Budgie {
+@@ -40,13 +40,26 @@ namespace Budgie {
  			}
  
  			/* System path */
 -			var dir = Environment.get_user_data_dir();
 -			engine.add_search_path(Budgie.MODULE_DIRECTORY, Budgie.MODULE_DATA_DIRECTORY);
+-			if (Budgie.HAS_SECONDARY_PLUGIN_DIRS) {
+-				engine.add_search_path(Budgie.MODULE_DIRECTORY_SECONDARY, Budgie.MODULE_DATA_DIRECTORY_SECONDARY);
 +			var libdir = Environment.get_variable("BUDGIE_PLUGIN_LIBDIR");
 +			if (libdir != null) {
 +				debug("BUDGIE_PLUGIN_LIBDIR is set to %s", libdir);
 +			} else {
 +				debug("BUDGIE_PLUGIN_LIBDIR is unset, defaulting to %s", Budgie.MODULE_DIRECTORY);
 +				libdir = Budgie.MODULE_DIRECTORY;
-+			}
-+
+ 			}
+ 
 +			var datadir = Environment.get_variable("BUDGIE_PLUGIN_DATADIR");
 +			if (datadir != null) {
 +				debug("BUDGIE_PLUGIN_DATADIR is set to %s", datadir);
@@ -25,22 +157,24 @@ index d3cdb65c..9d569bd1 100644
 +			}
 +
 +			engine.add_search_path(libdir, datadir);
- 
++
  			/* User path */
 +			var dir = Environment.get_user_data_dir();
  			var user_mod = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "plugins");
  			var hdata = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "data");
  			engine.add_search_path(user_mod, hdata);
 diff --git a/src/raven/plugin_manager.vala b/src/raven/plugin_manager.vala
-index b0814693..d671109a 100644
+index 01f32553..d671109a 100644
 --- a/src/raven/plugin_manager.vala
 +++ b/src/raven/plugin_manager.vala
-@@ -51,10 +51,26 @@ namespace Budgie {
+@@ -51,13 +51,26 @@ namespace Budgie {
  			}
  
  			/* System path */
 -			var dir = Environment.get_user_data_dir();
 -			engine.add_search_path(Budgie.RAVEN_PLUGIN_LIBDIR, Budgie.RAVEN_PLUGIN_DATADIR);
+-			if (Budgie.HAS_SECONDARY_PLUGIN_DIRS) {
+-				engine.add_search_path(Budgie.RAVEN_PLUGIN_LIBDIR_SECONDARY, Budgie.RAVEN_PLUGIN_DATADIR_SECONDARY);
 +			var libdir = Environment.get_variable("RAVEN_PLUGIN_LIBDIR");
 +			if (libdir != null) {
 +				debug("RAVEN_PLUGIN_LIBDIR is set to %s", libdir);
@@ -55,10 +189,10 @@ index b0814693..d671109a 100644
 +			} else {
 +				debug("RAVEN_PLUGIN_DATADIR is unset, defaulting to %s", Budgie.RAVEN_PLUGIN_DATADIR);
 +				datadir = Budgie.RAVEN_PLUGIN_DATADIR;
-+			}
-+
-+			engine.add_search_path(libdir, datadir);
+ 			}
  
++			engine.add_search_path(libdir, datadir);
++
  			/* User path */
 +			var dir = Environment.get_user_data_dir();
  			var user_mod = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "raven-plugins");
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/wrapper.nix b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/wrapper.nix
index 88c8d132bf12..99b33b68cb0e 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/wrapper.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/wrapper.nix
@@ -4,7 +4,7 @@
 , xorg
 , wrapGAppsHook
 , budgie-desktop
-, plugins ? []
+, plugins ? [ ]
 }:
 
 stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
index 6516498dea89..411d8a1f6f63 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
@@ -3,7 +3,6 @@
 , budgie-desktop
 , budgie-desktop-view
 , glib
-, gnome
 , gsettings-desktop-schemas
 , mate
 , nixos-artwork
@@ -57,7 +56,6 @@ let
       budgie-desktop
       budgie-desktop-view
       gsettings-desktop-schemas
-      gnome.mutter
   ] ++ extraGSettingsOverridePackages;
 
 in
diff --git a/nixpkgs/pkgs/desktops/budgie/default.nix b/nixpkgs/pkgs/desktops/budgie/default.nix
index afe954610fff..73eca3942023 100644
--- a/nixpkgs/pkgs/desktops/budgie/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/default.nix
@@ -8,4 +8,5 @@ lib.makeScope pkgs.newScope (self: with self; {
   budgie-desktop-with-plugins = callPackage ./budgie-desktop/wrapper.nix { };
   budgie-gsettings-overrides = callPackage ./budgie-gsettings-overrides { };
   budgie-screensaver = callPackage ./budgie-screensaver { };
+  magpie = callPackage ./magpie { };
 })
diff --git a/nixpkgs/pkgs/desktops/budgie/magpie/default.nix b/nixpkgs/pkgs/desktops/budgie/magpie/default.nix
new file mode 100644
index 000000000000..15e59f801a23
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/budgie/magpie/default.nix
@@ -0,0 +1,163 @@
+{ fetchFromGitHub
+, runCommand
+, lib
+, fetchpatch
+, stdenv
+, pkg-config
+, gnome
+, gettext
+, gobject-introspection
+, cairo
+, colord
+, lcms2
+, pango
+, json-glib
+, libstartup_notification
+, libcanberra
+, ninja
+, xvfb-run
+, xkeyboard_config
+, libxcvt
+, libxkbfile
+, libXdamage
+, libxkbcommon
+, libXtst
+, libinput
+, libdrm
+, gsettings-desktop-schemas
+, glib
+, gtk3
+, gnome-desktop
+, pipewire
+, libgudev
+, libwacom
+, mesa
+, meson
+, xorgserver
+, python3
+, wrapGAppsHook
+, gi-docgen
+, sysprof
+, libsysprof-capture
+, desktop-file-utils
+, libcap_ng
+, graphene
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "magpie";
+  version = "0.9.2";
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  src = fetchFromGitHub {
+    owner = "BuddiesOfBudgie";
+    repo = "magpie";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-GoilHdESFgpwt8+Uqzrnf8jBpeaSak1uHTlkNcQdgtk=";
+  };
+
+  patches = [
+    # Fix build with separate sysprof.
+    # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2572
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/mutter/-/commit/285a5a4d54ca83b136b787ce5ebf1d774f9499d5.patch";
+      sha256 = "/npUE3idMSTVlFptsDpZmGWjZ/d2gqruVlJKq4eF4xU=";
+    })
+  ];
+
+  mesonFlags = [
+    "-Degl_device=true"
+    "-Dprofiler=true"
+    "-Ddocs=true"
+    "-Dwith_shared_components=true"
+  ];
+
+  propagatedBuildInputs = [
+    # required for pkg-config to detect magpie-clutter
+    json-glib
+    libXtst
+    libcap_ng
+    graphene
+  ];
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gettext
+    libxcvt
+    mesa # needed for gbm
+    meson
+    ninja
+    xvfb-run
+    pkg-config
+    python3
+    wrapGAppsHook
+    gi-docgen
+    xorgserver
+  ];
+
+  buildInputs = [
+    cairo
+    glib
+    gnome-desktop
+    gnome.gnome-settings-daemon
+    gobject-introspection
+    gsettings-desktop-schemas
+    gtk3
+    libcanberra
+    libdrm
+    libgudev
+    libinput
+    libstartup_notification
+    libwacom
+    libxkbcommon
+    libxkbfile
+    libXdamage
+    colord
+    lcms2
+    pango
+    pipewire
+    sysprof # for D-Bus interfaces
+    libsysprof-capture
+    xkeyboard_config
+  ];
+
+  postPatch = ''
+    patchShebangs src/backends/native/gen-default-modes.py
+    # Magpie doesn't install any .desktop files
+    substituteInPlace meson/meson-postinstall.sh --replace "update-desktop-database" "# update-desktop-database"
+  '';
+
+  postFixup = ''
+    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
+    # TODO: Move this into a directory devhelp can find.
+    moveToOutput "share/magpie-0/doc" "$devdoc"
+  '';
+
+  # Install udev files into our own tree.
+  PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
+
+  separateDebugInfo = true;
+
+  passthru = {
+    libdir = "${finalAttrs.finalPackage}/lib/magpie-0";
+
+    tests = {
+      libdirExists = runCommand "magpie-libdir-exists" {} ''
+        if [[ ! -d ${finalAttrs.finalPackage.libdir} ]]; then
+          echo "passthru.libdir should contain a directory, “${finalAttrs.finalPackage.libdir}” is not one."
+          exit 1
+        fi
+        touch $out
+      '';
+    };
+  };
+
+  meta = with lib; {
+    description = "Softish fork of Mutter 43.x";
+    homepage = "https://github.com/BuddiesOfBudgie/magpie";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ federicoschonborn ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
index 8077e29316a8..2d7fd0c6c022 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
@@ -26,11 +26,11 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
     gsettings-desktop-schemas
     gettext
+    gobject-introspection
   ];
 
   buildInputs = [
     (python3.withPackages (p: with p; [ pygobject3 magic setproctitle ]))
-    gobject-introspection
     gsettings-desktop-schemas
     gtk3
     glib
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 93888dd1179f..3ff56b18d255 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -9,6 +9,7 @@
 , cjs
 , evolution-data-server
 , fetchFromGitHub
+, fetchpatch
 , gdk-pixbuf
 , gettext
 , libgnomekbd
@@ -84,6 +85,13 @@ stdenv.mkDerivation rec {
   patches = [
     ./use-sane-install-dir.patch
     ./libdir.patch
+
+    # Backport pillow 10.0.0 support.
+    # https://github.com/linuxmint/cinnamon/issues/11746
+    (fetchpatch {
+      url = "https://github.com/linuxmint/cinnamon/commit/fce9aad1ebb290802dc550e8dae6344dddf9dec1.patch";
+      hash = "sha256-flt7CblfXlLieAVNeC8TBnv1TX0Zca1obPWusBMnIxE=";
+    })
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index 5e736ea1fdc8..e42e5a6069b9 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -41,7 +41,6 @@ stdenv.mkDerivation rec {
     xorg.libxkbfile
     xorg.libXext
     xorg.libXrandr
-    gobject-introspection
   ];
 
   nativeBuildInputs = [
@@ -51,6 +50,7 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
     intltool
     pkg-config
+    gobject-introspection
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 1b5dbeb8d085..444a68778664 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -22,7 +22,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gobject-introspection
   ];
 
   nativeBuildInputs = [
@@ -30,6 +29,7 @@ stdenv.mkDerivation rec {
     ninja
     wrapGAppsHook
     pkg-config
+    gobject-introspection
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 6692aac628fd..956a87773d6d 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -48,11 +48,11 @@ stdenv.mkDerivation rec {
     libtool
     meson
     ninja
+    gobject-introspection
   ];
 
   buildInputs = [
     # from meson.build
-    gobject-introspection
     gtk3
     glib
 
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
index 0c07b46822a7..681d6afd4ead 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
@@ -33,10 +33,10 @@ stdenv.mkDerivation rec {
     pkg-config
     which # for locale detection
     libxml2 # for xml-stripblanks
+    gobject-introspection
   ];
 
   buildInputs = [
-    gobject-introspection
     cairo
     readline
     spidermonkey_102
diff --git a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
index d3046830f012..c2ad10f97ac0 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
     python3
     wrapGAppsHook
     xorgserver # for cvt command
+    gobject-introspection
   ];
 
   buildInputs = [
@@ -69,7 +70,6 @@ stdenv.mkDerivation rec {
     cinnamon-desktop
     dbus
     glib
-    gobject-introspection
     gtk3
     libcanberra
     libdrm
diff --git a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
index 0b4e3be1a325..f82c00f4a9d1 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
@@ -49,7 +49,6 @@ stdenv.mkDerivation rec {
     libexif
     exempi
     gvfs
-    gobject-introspection
     libgsf
   ];
 
@@ -60,6 +59,7 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
     intltool
     shared-mime-info
+    gobject-introspection
   ];
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix b/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
index 10e6c4e96bf2..ef434171d914 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , lib
-, fetchurl
 , fetchFromGitHub
+, fetchpatch
 , pkg-config
 , meson
 , ninja
@@ -43,6 +43,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-iNUhcHG4nCZ4WNELodyLdztzfNg9g+F0eQrZHXS6Zj0=";
   };
 
+  patches = [
+    # Fix build with exiv2 0.28, can be removed on next update
+    # https://github.com/linuxmint/pix/pull/178
+    (fetchpatch {
+      url = "https://github.com/linuxmint/pix/commit/46e19703a973d51fa97e6a22121560f5ba200eea.patch";
+      sha256 = "sha256-Z+pUxoy0m/agXW++YxEUhRuax0qvuGVXNhU8d9mvGh4=";
+    })
+  ];
+
   nativeBuildInputs = [
     bison
     desktop-file-utils
diff --git a/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix b/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix
index 7139dce15c79..5b38d0662ea5 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix
@@ -44,10 +44,10 @@ stdenv.mkDerivation rec {
     python3
     vala
     wrapGAppsHook
+    gobject-introspection
   ];
 
   buildInputs = [
-    gobject-introspection
     (python3.withPackages (ps: with ps; [
       pygobject3
       setproctitle # mate applet
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
index 55c1f4d4f293..ae628827a2b6 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
@@ -14,18 +14,19 @@
 , wrapQtAppsHook
 , minizip
 , libzip
+, libuuid
 , libarchive
 }:
 
 stdenv.mkDerivation rec {
   pname = "deepin-compressor";
-  version = "5.12.15";
+  version = "5.12.17";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-6grnbv9hMKntOmpVcmU5IpAbHM7r0dQWb+SoQYtc5YY=";
+    hash = "sha256-eg9JcuBTKoaEuoph0rvy0VRH28sFOdYWN9sGbduUwcM=";
   };
 
   postPatch = ''
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
     karchive
     minizip
     libzip
+    libuuid
     libarchive
   ];
 
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
index 5caa37bfeadd..1aa9ffdf0855 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-terminal";
-  version = "6.0.5";
+  version = "6.0.6";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-pRTdvR3hyiJVpi38Ex58X74ns+rSWuytsOXemvdW1Rk=";
+    hash = "sha256-LzCbh+BErgh7Ojbw314oHB8QvyS6UeJkDUkNngzVm+A=";
   };
 
   cmakeFlags = [ "-DVERSION=${version}" ];
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
index 7f377d2a6e74..eecdbeb990ba 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
@@ -21,11 +21,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkg-config
     go
+    gobject-introspection
   ];
 
   buildInputs = [
     libgudev
-    gobject-introspection
   ];
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix
index 6133d38aff22..005474c19694 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , dtkwidget
 , cmake
 , qttools
@@ -16,28 +15,15 @@
 
 stdenv.mkDerivation rec {
   pname = "image-editor";
-  version = "1.0.24";
+  version = "1.0.32";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0p/aicuBfaEyvfZomnz49IJLospWIdl23ZreDe+Bzqc=";
+    hash = "sha256-mA2pqWXa3i19jCymvUXnG6YUVezDSfRkHx2EoxAhnqU=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "feat_check_PREFIX_value_before_set.patch";
-      url = "https://github.com/linuxdeepin/image-editor/commit/dae86e848cf53ba0ece879d81e8d5335d61a7473.patch";
-      sha256 = "sha256-lxmR+nIrMWVyhl1jpA17x2yqJ40h5vnpqKKcjd8j9RY=";
-    })
-    (fetchpatch {
-      name = "feat_use_FULL_install_path.patch";
-      url = "https://github.com/linuxdeepin/image-editor/commit/855ae53a0444ac628aa0fe893932df6263b82e2e.patch";
-      sha256 = "sha256-3Dynlwl/l/b6k6hOHjTdoDQ/VGBDfyRz9b8QY8FEsCc=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace libimageviewer/service/ffmpegvideothumbnailer.cpp \
         --replace 'libPath("libffmpegthumbnailer.so")'  'QString("${ffmpegthumbnailer.out}/lib/libffmpegthumbnailer.so")'
@@ -57,7 +43,9 @@ stdenv.mkDerivation rec {
     pcre
   ];
 
-  cmakeFlags = [ "-DVERSION=${version}" ];
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+  ];
 
   meta = with lib; {
     description = "Image editor lib for dtk";
diff --git a/nixpkgs/pkgs/desktops/expidus/file-manager/default.nix b/nixpkgs/pkgs/desktops/expidus/file-manager/default.nix
index ab22441984ee..6c3285e1eb10 100644
--- a/nixpkgs/pkgs/desktops/expidus/file-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/expidus/file-manager/default.nix
@@ -1,17 +1,17 @@
 { lib, flutter, fetchFromGitHub }:
 flutter.buildFlutterApplication rec {
   pname = "expidus-file-manager";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "ExpidusOS";
     repo = "file-manager";
     rev = version;
-    sha256 = "sha256-aAPmwzNPgu08Ov9NyRW5bcj3jQzG9rpWwrABRyK2Weg=";
+    hash = "sha256-p/bKVC1LpvVcyI3NYjQ//QL/6UutjVg649IZSmz4w9g=";
   };
 
   depsListFile = ./deps.json;
-  vendorHash = "sha256-mPGrpMUguM9XAYWH8lBQuytxZ3J0gS2XOMPkKyFMLbc=";
+  vendorHash = "sha256-m2GCLC4ZUvDdBVKjxZjelrZZHY3+R7DilOOT84Twrxg=";
 
   postInstall = ''
     rm $out/bin/file_manager
@@ -37,5 +37,6 @@ flutter.buildFlutterApplication rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ RossComputerGuy ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
+    mainProgram = "expidus-file-manager";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/expidus/file-manager/deps.json b/nixpkgs/pkgs/desktops/expidus/file-manager/deps.json
index eb6c23b4e672..e1b391147a21 100644
--- a/nixpkgs/pkgs/desktops/expidus/file-manager/deps.json
+++ b/nixpkgs/pkgs/desktops/expidus/file-manager/deps.json
@@ -1,7 +1,7 @@
 [
   {
     "name": "file_manager",
-    "version": "0.1.2+1",
+    "version": "0.2.0+65656565656565",
     "kind": "root",
     "source": "root",
     "dependencies": [
@@ -29,6 +29,9 @@
       "intl",
       "provider",
       "flutter_markdown",
+      "flutter_adaptive_scaffold",
+      "package_info_plus",
+      "pub_semver",
       "flutter_test",
       "flutter_lints"
     ]
@@ -263,6 +266,124 @@
     "dependencies": []
   },
   {
+    "name": "pub_semver",
+    "version": "2.1.4",
+    "kind": "direct",
+    "source": "hosted",
+    "dependencies": [
+      "collection",
+      "meta"
+    ]
+  },
+  {
+    "name": "package_info_plus",
+    "version": "3.1.2",
+    "kind": "direct",
+    "source": "hosted",
+    "dependencies": [
+      "ffi",
+      "flutter",
+      "flutter_web_plugins",
+      "http",
+      "meta",
+      "path",
+      "package_info_plus_platform_interface",
+      "win32"
+    ]
+  },
+  {
+    "name": "win32",
+    "version": "3.1.4",
+    "kind": "direct",
+    "source": "hosted",
+    "dependencies": [
+      "ffi"
+    ]
+  },
+  {
+    "name": "ffi",
+    "version": "2.0.2",
+    "kind": "direct",
+    "source": "hosted",
+    "dependencies": []
+  },
+  {
+    "name": "package_info_plus_platform_interface",
+    "version": "2.0.1",
+    "kind": "transitive",
+    "source": "hosted",
+    "dependencies": [
+      "flutter",
+      "meta",
+      "plugin_platform_interface"
+    ]
+  },
+  {
+    "name": "plugin_platform_interface",
+    "version": "2.1.4",
+    "kind": "transitive",
+    "source": "hosted",
+    "dependencies": [
+      "meta"
+    ]
+  },
+  {
+    "name": "http",
+    "version": "0.13.6",
+    "kind": "transitive",
+    "source": "hosted",
+    "dependencies": [
+      "async",
+      "http_parser",
+      "meta"
+    ]
+  },
+  {
+    "name": "http_parser",
+    "version": "4.0.2",
+    "kind": "transitive",
+    "source": "hosted",
+    "dependencies": [
+      "collection",
+      "source_span",
+      "string_scanner",
+      "typed_data"
+    ]
+  },
+  {
+    "name": "typed_data",
+    "version": "1.3.2",
+    "kind": "transitive",
+    "source": "hosted",
+    "dependencies": [
+      "collection"
+    ]
+  },
+  {
+    "name": "flutter_web_plugins",
+    "version": "0.0.0",
+    "kind": "transitive",
+    "source": "sdk",
+    "dependencies": [
+      "flutter",
+      "js",
+      "characters",
+      "collection",
+      "material_color_utilities",
+      "meta",
+      "vector_math"
+    ]
+  },
+  {
+    "name": "flutter_adaptive_scaffold",
+    "version": "0.1.5",
+    "kind": "direct",
+    "source": "hosted",
+    "dependencies": [
+      "flutter"
+    ]
+  },
+  {
     "name": "flutter_markdown",
     "version": "0.6.15",
     "kind": "direct",
@@ -286,7 +407,7 @@
   },
   {
     "name": "args",
-    "version": "2.4.1",
+    "version": "2.4.2",
     "kind": "transitive",
     "source": "hosted",
     "dependencies": []
@@ -372,16 +493,6 @@
     ]
   },
   {
-    "name": "pub_semver",
-    "version": "2.1.4",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "collection",
-      "meta"
-    ]
-  },
-  {
     "name": "sentry_flutter",
     "version": "7.7.0",
     "kind": "direct",
@@ -395,105 +506,6 @@
     ]
   },
   {
-    "name": "package_info_plus",
-    "version": "3.1.2",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "ffi",
-      "flutter",
-      "flutter_web_plugins",
-      "http",
-      "meta",
-      "path",
-      "package_info_plus_platform_interface",
-      "win32"
-    ]
-  },
-  {
-    "name": "win32",
-    "version": "3.1.4",
-    "kind": "direct",
-    "source": "hosted",
-    "dependencies": [
-      "ffi"
-    ]
-  },
-  {
-    "name": "ffi",
-    "version": "2.0.2",
-    "kind": "direct",
-    "source": "hosted",
-    "dependencies": []
-  },
-  {
-    "name": "package_info_plus_platform_interface",
-    "version": "2.0.1",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "flutter",
-      "meta",
-      "plugin_platform_interface"
-    ]
-  },
-  {
-    "name": "plugin_platform_interface",
-    "version": "2.1.4",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "meta"
-    ]
-  },
-  {
-    "name": "http",
-    "version": "0.13.6",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "async",
-      "http_parser",
-      "meta"
-    ]
-  },
-  {
-    "name": "http_parser",
-    "version": "4.0.2",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "collection",
-      "source_span",
-      "string_scanner",
-      "typed_data"
-    ]
-  },
-  {
-    "name": "typed_data",
-    "version": "1.3.2",
-    "kind": "transitive",
-    "source": "hosted",
-    "dependencies": [
-      "collection"
-    ]
-  },
-  {
-    "name": "flutter_web_plugins",
-    "version": "0.0.0",
-    "kind": "transitive",
-    "source": "sdk",
-    "dependencies": [
-      "flutter",
-      "js",
-      "characters",
-      "collection",
-      "material_color_utilities",
-      "meta",
-      "vector_math"
-    ]
-  },
-  {
     "name": "sentry",
     "version": "7.7.0",
     "kind": "transitive",
@@ -543,7 +555,7 @@
   },
   {
     "name": "path_provider_windows",
-    "version": "2.1.6",
+    "version": "2.1.7",
     "kind": "direct",
     "source": "hosted",
     "dependencies": [
@@ -556,7 +568,7 @@
   },
   {
     "name": "permission_handler",
-    "version": "10.2.0",
+    "version": "10.3.0",
     "kind": "direct",
     "source": "hosted",
     "dependencies": [
@@ -570,7 +582,7 @@
   },
   {
     "name": "permission_handler_platform_interface",
-    "version": "3.9.0",
+    "version": "3.10.0",
     "kind": "transitive",
     "source": "hosted",
     "dependencies": [
@@ -591,7 +603,7 @@
   },
   {
     "name": "permission_handler_apple",
-    "version": "9.0.8",
+    "version": "9.1.0",
     "kind": "transitive",
     "source": "hosted",
     "dependencies": [
@@ -601,7 +613,7 @@
   },
   {
     "name": "permission_handler_android",
-    "version": "10.2.2",
+    "version": "10.2.3",
     "kind": "transitive",
     "source": "hosted",
     "dependencies": [
@@ -621,7 +633,7 @@
   },
   {
     "name": "shared_preferences",
-    "version": "2.1.1",
+    "version": "2.1.2",
     "kind": "direct",
     "source": "hosted",
     "dependencies": [
@@ -977,9 +989,32 @@
       "flutter",
       "material_theme_builder",
       "libtokyo",
+      "flutter_localizations",
       "path",
       "intl",
-      "filesize"
+      "filesize",
+      "bitsdojo_window",
+      "shared_preferences",
+      "pubspec",
+      "url_launcher"
+    ]
+  },
+  {
+    "name": "flutter_localizations",
+    "version": "0.0.0",
+    "kind": "direct",
+    "source": "sdk",
+    "dependencies": [
+      "flutter",
+      "intl",
+      "characters",
+      "clock",
+      "collection",
+      "js",
+      "material_color_utilities",
+      "meta",
+      "path",
+      "vector_math"
     ]
   },
   {
@@ -989,7 +1024,8 @@
     "source": "git",
     "dependencies": [
       "meta",
-      "path"
+      "path",
+      "pubspec"
     ]
   },
   {
@@ -1001,23 +1037,5 @@
       "flutter",
       "material_color_utilities"
     ]
-  },
-  {
-    "name": "flutter_localizations",
-    "version": "0.0.0",
-    "kind": "direct",
-    "source": "sdk",
-    "dependencies": [
-      "flutter",
-      "intl",
-      "characters",
-      "clock",
-      "collection",
-      "js",
-      "material_color_utilities",
-      "meta",
-      "path",
-      "vector_math"
-    ]
   }
 ]
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
index 36aad3edaac3..d0d032b6ec3c 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ghex";
-  version = "44.1";
+  version = "44.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/ghex/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "QEvfZJ6qE5IqgK4y8Z/kDnHw7g9GHEXtrHKIigDq1sI=";
+    sha256 = "6+y0xoo30zk3uewmPIV23x2MaascHT4S1WaP0gB+kws=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
index d66efad0728d..5c5aba52704d 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
@@ -58,7 +58,6 @@ python3.pkgs.buildPythonApplication rec {
     glib
     libmediaart
     gnome-online-accounts
-    gobject-introspection
     gdk-pixbuf
     python3
     grilo
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
index 6eddefc7c452..0e88bb20914e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-bluetooth";
-  version = "42.5";
+  version = "42.6";
 
   # TODO: split out "lib"
   outputs = [ "out" "dev" "devdoc" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "pPXxrC27e3uS99bStCwDD2Ku2bVCa53BFpRgQfPLqPc=";
+    sha256 = "WGT+bx5xhxXbJrYiAbdaWQIM9CR/7DdkWzVZzS26WdA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/0001-Fix-build-with-Exiv2-0.28.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/0001-Fix-build-with-Exiv2-0.28.patch
new file mode 100644
index 000000000000..96688c8d8086
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/0001-Fix-build-with-Exiv2-0.28.patch
@@ -0,0 +1,73 @@
+From 0417f60c7e760e1ebc6acd3dc23818b38c3929e7 Mon Sep 17 00:00:00 2001
+From: Weijia Wang <contact@weijia.wang>
+Date: Mon, 7 Aug 2023 21:51:30 +0200
+Subject: [PATCH] Fix build with Exiv2 0.28
+
+---
+ src/gcm-helper-exiv.cpp | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/src/gcm-helper-exiv.cpp b/src/gcm-helper-exiv.cpp
+index 7ec69948..23c8b320 100644
+--- a/src/gcm-helper-exiv.cpp
++++ b/src/gcm-helper-exiv.cpp
+@@ -22,6 +22,10 @@
+ #include <exiv2/image.hpp>
+ #include <exiv2/exif.hpp>
+ 
++#if EXIV2_MAJOR_VERSION >= 1 || (EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION >= 28)
++#define HAVE_EXIV2_0_28
++#endif
++
+ #if EXIV2_MAJOR_VERSION >= 1 || (EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION >= 27)
+ #define HAVE_EXIV2_ERROR_CODE
+ #include <exiv2/error.hpp>
+@@ -33,7 +37,11 @@
+ int
+ main (int argc, char* const argv[])
+ {
++#ifdef HAVE_EXIV2_0_28
++	Exiv2::Image::UniquePtr image;
++#else
+ 	Exiv2::Image::AutoPtr image;
++#endif
+ 	Exiv2::ExifData exifData;
+ 	std::string filename;
+ 	std::string make;
+@@ -57,7 +65,9 @@ main (int argc, char* const argv[])
+ 		if (argc == 2)
+ 			filename = argv[1];
+ 		if (filename.empty())
+-#ifdef HAVE_EXIV2_ERROR_CODE
++#ifdef HAVE_EXIV2_0_28
++			throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, "No filename specified");
++#elif defined(HAVE_EXIV2_ERROR_CODE)
+ 			throw Exiv2::Error(Exiv2::kerErrorMessage, "No filename specified");
+ #else
+ 			throw Exiv2::Error(1, "No filename specified");
+@@ -70,7 +80,9 @@ main (int argc, char* const argv[])
+ 		if (exifData.empty()) {
+ 			std::string error(argv[1]);
+ 			error += ": No Exif data found in the file";
+-#ifdef HAVE_EXIV2_ERROR_CODE
++#ifdef HAVE_EXIV2_0_28
++			throw Exiv2::Error(Exiv2::ErrorCode::kerErrorMessage, error);
++#elif defined(HAVE_EXIV2_ERROR_CODE)
+ 			throw Exiv2::Error(Exiv2::kerErrorMessage, error);
+ #else
+ 			throw Exiv2::Error(1, error);
+@@ -89,7 +101,11 @@ main (int argc, char* const argv[])
+ 		std::cout << model << "\n";
+ 		std::cout << make << "\n";
+ 		std::cout << serial << "\n";
++#ifdef HAVE_EXIV2_0_28
++	} catch (Exiv2::Error& e) {
++#else
+ 	} catch (Exiv2::AnyError& e) {
++#endif
+ 		std::cout << "Failed to load: " << e << "\n";
+ 		retval = -1;
+ 	}
+-- 
+2.39.2 (Apple Git-143)
+
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
index dae367f1d5ba..7c9d3df9f1c0 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
@@ -28,6 +28,10 @@ stdenv.mkDerivation rec {
     sha256 = "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w";
   };
 
+  patches = [
+    ./0001-Fix-build-with-Exiv2-0.28.patch
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 7528f1bc3a5d..dfc986f06b6a 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -80,8 +80,10 @@ stdenv.mkDerivation rec {
     # Hardcode paths to various dependencies so that they can be found at runtime.
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit libgnomekbd unzip;
+      gkbd_keyboard_display = "${lib.getBin libgnomekbd}/bin/gkbd-keyboard-display";
+      glib_compile_schemas = "${glib.dev}/bin/glib-compile-schemas";
       gsettings = "${glib.bin}/bin/gsettings";
+      unzip = "${lib.getBin unzip}/bin/unzip";
     })
 
     # Use absolute path for libshew installation to make our patched gobject-introspection
@@ -120,6 +122,7 @@ stdenv.mkDerivation rec {
     desktop-file-utils
     libxslt.bin
     asciidoc
+    gobject-introspection
   ];
 
   buildInputs = [
@@ -153,7 +156,6 @@ stdenv.mkDerivation rec {
     ibus
     gnome-desktop
     gnome-settings-daemon
-    gobject-introspection
     mesa
 
     # recording
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
index 8b35736ecfcd..e70c4851e9d5 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
@@ -10,27 +10,62 @@ index de91167c5..1c9965678 100644
 +ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
  Restart=no
 diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
-index 8bf4646a6..59e88bb4c 100644
+index 197cc1c1c..dd74aa167 100644
 --- a/js/ui/extensionDownloader.js
 +++ b/js/ui/extensionDownloader.js
-@@ -114,7 +114,7 @@ async function extractExtensionArchive(bytes, dir) {
+@@ -110,7 +110,7 @@ async function extractExtensionArchive(bytes, dir) {
      stream.close_async(GLib.PRIORITY_DEFAULT, null);
  
      const unzip = Gio.Subprocess.new(
 -        ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
-+        ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
++        ['@unzip@', '-uod', dir.get_path(), '--', file.get_path()],
          Gio.SubprocessFlags.NONE);
      await unzip.wait_check_async(null);
- }
+ 
+@@ -132,7 +132,7 @@ async function extractExtensionArchive(bytes, dir) {
+     }
+ 
+     const compileSchema = Gio.Subprocess.new(
+-        ['glib-compile-schemas', '--strict', schemasPath.get_path()],
++        ['@glib_compile_schemas@', '--strict', schemasPath.get_path()],
+         Gio.SubprocessFlags.NONE);
+ 
+     try {
 diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
-index bc50f3d37..868eb5abf 100644
+index fff4e73c2..92859b099 100644
 --- a/js/ui/status/keyboard.js
 +++ b/js/ui/status/keyboard.js
-@@ -1080,6 +1080,6 @@ class InputSourceIndicator extends PanelMenu.Button {
+@@ -1092,6 +1092,6 @@ class InputSourceIndicator extends PanelMenu.Button {
          if (xkbVariant.length > 0)
-             description = '%s\t%s'.format(description, xkbVariant);
+             description = `${description}\t${xkbVariant}`;
  
 -        Util.spawn(['gkbd-keyboard-display', '-l', description]);
-+        Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
++        Util.spawn(['@gkbd_keyboard_display@', '-l', description]);
      }
  });
+diff --git a/subprojects/extensions-tool/src/command-install.c b/subprojects/extensions-tool/src/command-install.c
+index 11fb4b6b7..e00e4807b 100644
+--- a/subprojects/extensions-tool/src/command-install.c
++++ b/subprojects/extensions-tool/src/command-install.c
+@@ -158,7 +158,7 @@ install_extension (const char *bundle,
+ 
+       schemapath = g_file_get_path (schemadir);
+       proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDERR_SILENCE, &error,
+-                               "glib-compile-schemas", "--strict", schemapath,
++                               "@glib_compile_schemas@", "--strict", schemapath,
+                                NULL);
+ 
+       if (!g_subprocess_wait_check (proc, NULL, &error))
+diff --git a/subprojects/extensions-tool/src/command-pack.c b/subprojects/extensions-tool/src/command-pack.c
+index f2cfcd51a..2a9a7efdf 100644
+--- a/subprojects/extensions-tool/src/command-pack.c
++++ b/subprojects/extensions-tool/src/command-pack.c
+@@ -168,7 +168,7 @@ extension_pack_add_schemas (ExtensionPack  *pack,
+ #else
+   dstpath = g_file_get_path (dstdir);
+   proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDERR_SILENCE, error,
+-                           "glib-compile-schemas", "--strict", dstpath, NULL);
++                           "@glib_compile_schemas@", "--strict", dstpath, NULL);
+ 
+   if (!g_subprocess_wait_check (proc, NULL, error))
+     return FALSE;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 11b9606908fc..0fa7a713ce0c 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -29,14 +29,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.48.1";
+  version = "3.48.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gnome-terminal";
     rev = version;
-    sha256 = "sha256-1t48JRESjAQubOmyK+QOhlp57iE5Ml0cqgy/2wjrLjE=";
+    sha256 = "sha256-WvFKFh5BK6AS+Lqyh27xIfH1rxs1+YTkywX4w9UashQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix
index 0f864c6f3497..2202e94881c1 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix
@@ -102,6 +102,7 @@ stdenv.mkDerivation (finalAttrs: {
     wrapGAppsHook
     gi-docgen
     xorgserver
+    gobject-introspection
   ];
 
   buildInputs = [
@@ -110,7 +111,6 @@ stdenv.mkDerivation (finalAttrs: {
     glib
     gnome-desktop
     gnome-settings-daemon
-    gobject-introspection
     gsettings-desktop-schemas
     gtk3
     libcanberra
diff --git a/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
index 360095a8ad1d..4c0960eb25e3 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
@@ -108,6 +108,7 @@ stdenv.mkDerivation (finalAttrs: {
     wrapGAppsHook4
     gi-docgen
     xorgserver
+    gobject-introspection
   ];
 
   buildInputs = [
@@ -116,7 +117,6 @@ stdenv.mkDerivation (finalAttrs: {
     glib
     gnome-desktop
     gnome-settings-daemon
-    gobject-introspection
     gsettings-desktop-schemas
     atk
     fribidi
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
index 835fa31dd29b..1b09d4da0ef1 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
@@ -32,7 +32,6 @@ buildPythonApplication rec {
 
   buildInputs = [
     gnome.gnome-shell
-    gobject-introspection # for Gio typelib
   ];
 
   pythonPath = [
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
index 559b5edf0a3f..5d56d6756855 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, glib }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "gnome-shell-extension-impatience";
-  version = "unstable-2022-03-26";
+  version = "unstable-2023-04-04";
 
   src = fetchFromGitHub {
     owner = "timbertson";
     repo = "gnome-shell-impatience";
-    rev = "cf7c0bb8776af9a16e4ae114df0cc65869fb669d";
-    sha256 = "sha256-z/pZxSEFELtg7kueS2i6gN1+VbN0m4mxc34pOCMak5g=";
+    rev = "0f961b860040ba0f7bbb51ebbaece7db29787313";
+    hash = "sha256-c15zZC9xc0nq8NdnP0gjayMmnD8GyHFV8oZaD4LyR7w=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix
index 1a6189e6c3ef..3a89f83cb697 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix
@@ -47,11 +47,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "44.0";
+  version = "44.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "gBSsWorTxURMpWl32a0QBr1vTvXJLkNzXFEw3o7ckJ0=";
+    sha256 = "fRHLbhxQThCMLckaoiVqRATcq+fRyHPY1glOLfM1onc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
index b781251a7ca7..bdac030ed341 100644
--- a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
@@ -6,11 +6,12 @@
 , itstool
 , libxml2
 , gtk3
-, file
 , mate
 , hicolor-icon-theme
 , wrapGAppsHook
 , mateUpdateScript
+# can be defaulted to true once engrampa builds with meson (version > 1.27.0)
+, withMagic ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, file
 }:
 
 stdenv.mkDerivation rec {
@@ -26,20 +27,22 @@ stdenv.mkDerivation rec {
     pkg-config
     gettext
     itstool
+    libxml2  # for xmllint
     wrapGAppsHook
   ];
 
   buildInputs = [
-    libxml2
     gtk3
-    file #libmagic
     mate.caja
     hicolor-icon-theme
     mate.mate-desktop
+  ] ++ lib.optionals withMagic [
+    file
   ];
 
   configureFlags = [
     "--with-cajadir=$$out/lib/caja/extensions-2.0"
+  ] ++ lib.optionals withMagic [
     "--enable-magic"
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
index 91223601dc4d..5ae845b104f4 100644
--- a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
@@ -3,6 +3,8 @@
 , fetchurl
 , pkg-config
 , gettext
+, glib
+, libxml2
 , gtk3
 , libsoup
 , tzdata
@@ -18,9 +20,13 @@ stdenv.mkDerivation rec {
     sha256 = "wgCZD0uOnU0OLG99MaWHY3TD0qNsa4y1kEQAQ6hg7zo=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     pkg-config
     gettext
+    glib # glib-compile-schemas
+    libxml2 # xmllint
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index fb413d539a44..9d01f85e0efe 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pkg-config
 , meson
@@ -39,6 +40,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-s4Df2eLnr+RnbTwPzjt9bVA+xZ9xca2hiFdGlRUZRfU=";
   };
 
+  patches = [
+    # Fix log spam with new GLib
+    # https://github.com/elementary/files/pull/2257
+    (fetchpatch {
+      url = "https://github.com/elementary/files/commit/7bd542fa0a646b5cb0972f5575c56a9ee4d9dce7.patch";
+      hash = "sha256-C+oSx0xn3YPuwEC0K+3ZmKeQrroKreJo1tfcpLGQ1S4=";
+    })
+  ];
+
   nativeBuildInputs = [
     desktop-file-utils
     meson
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 7bdcd1dbac98..6411971fdb05 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -6,40 +6,34 @@
 , meson
 , ninja
 , vala
-, python3
 , gtk3
 , granite
 , libgee
 , libhandy
-, clutter-gst
-, clutter-gtk
 , gst_all_1
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-videos";
-  version = "2.9.1";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "videos";
     rev = version;
-    sha256 = "sha256-G961ndONwHiqdeO26Ulxkg71ByfdFMAV35VFzu4TQ3M=";
+    sha256 = "sha256-O98478E3NlY2NYqjyy8mcXZ3lG+wIV+VrPzdzOp44yA=";
   };
 
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
-    python3
     vala
     wrapGAppsHook
   ];
 
   buildInputs = [
-    clutter-gst
-    clutter-gtk
     granite
     gtk3
     libgee
@@ -48,16 +42,12 @@ stdenv.mkDerivation rec {
     gst-libav
     gst-plugins-bad
     gst-plugins-base
-    gst-plugins-good
+    # https://github.com/elementary/videos/issues/356
+    (gst-plugins-good.override { gtkSupport = true; })
     gst-plugins-ugly
     gstreamer
   ]);
 
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
   passthru = {
     updateScript = nix-update-script { };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index 8fbf7ccde4ff..ff93bb62379d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -13,13 +13,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "elementary-icon-theme";
-  version = "7.3.0";
+  version = "7.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "icons";
     rev = version;
-    sha256 = "sha256-4ZXqIMXyb9MLd6EHmPn672Dbw992GYYU64oB+4p6jXY=";
+    sha256 = "sha256-3qvbpY1O8E3sX+66yBoZXEOeWQrgyNu2rOT6PPbli58=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 6958547899fa..9b832ccde44a 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -10,18 +10,17 @@
 , dbus
 , polkit
 , accountsservice
-, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-default-settings";
-  version = "7.0.2";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "default-settings";
     rev = version;
-    sha256 = "sha256-YFI1UM7CxjYkoIhSg9Fn81Ze6DX7D7p89xibk7ik8bI=";
+    sha256 = "sha256-j4K8qYwfu6/s4qnTSzwv6KRsk9f+Qr/l1bhLywKMHMU=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +31,6 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     polkit
-    python3
   ];
 
   mesonFlags = [
@@ -41,11 +39,6 @@ stdenv.mkDerivation rec {
     "-Dplank-dockitems=false"
   ];
 
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
   preInstall = ''
     # Install our override for plank dockitems as the desktop file path is different.
     schema_dir=$out/share/glib-2.0/schemas
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index e5a90d8f4f0a..439d434488ef 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -5,7 +5,6 @@
 , meson
 , ninja
 , pkg-config
-, python3
 , vala
 , wrapGAppsHook4
 , appcenter
@@ -19,20 +18,19 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-onboarding";
-  version = "7.1.0";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "onboarding";
     rev = version;
-    sha256 = "sha256-OWALEcVOOh7wjEEvysd+MQhB/iK3105XCIVp5pklMwY=";
+    sha256 = "sha256-5vEKQUGg5KQSheM6tSK8uieEfCqlY6pABfPb/333FHU=";
   };
 
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
-    python3
     vala
     wrapGAppsHook4
   ];
@@ -47,11 +45,6 @@ stdenv.mkDerivation rec {
     libgee
   ];
 
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
   passthru = {
     updateScript = nix-update-script { };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
index 745f8b6c0149..ebf99d6ed0fa 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gala";
-  version = "7.1.1";
+  version = "7.1.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-s63znprGrMvitefAKlbL3r1s0kbo7NA9bhrNH8w0h2o=";
+    sha256 = "sha256-g+Zcdl6SJ4uO6I1x3Ru6efZkf+O3UaW790n/zxmGkHU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix
index 95050843d073..f35ce8f1d0bd 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix
@@ -1,5 +1,5 @@
 { lib
-, mkDerivation
+, stdenv
 , fetchFromGitHub
 , kcoreaddons
 , kwindowsystem
@@ -7,17 +7,19 @@
 , systemsettings
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation(finalAttrs: {
   pname = "kzones";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "gerritdevriese";
     repo = "kzones";
-    rev = "v${version}";
-    sha256 = "sha256-0f7Fv5cvRvqNrKjHpU/tLpjiBPN0ExwTDq1p9sdLd4o=";
+    rev = "v${finalAttrs.version}";
+    sha256 = "sha256-OAgzuX05dvotjRWiyPPeUieVJbQoy/opGYu6uVKQM60=";
   };
 
+  nativeBuildInputs = [ plasma-framework ];
+
   buildInputs = [
     kcoreaddons
     kwindowsystem
@@ -27,13 +29,16 @@ mkDerivation rec {
 
   dontBuild = true;
 
+  # we don't have anything to wrap anyway
+  dontWrapQtApps = true;
+
   # 1. --global still installs to $HOME/.local/share so we use --packageroot
   # 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
   installPhase = ''
     runHook preInstall
 
-    plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
-    install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-kzones.desktop
+    plasmapkg2 --type kwinscript --install ${finalAttrs.src} --packageroot $out/share/kwin/scripts
+    install -Dm644 ${finalAttrs.src}/metadata.desktop $out/share/kservices5/kwin-script-kzones.desktop
 
     runHook postInstall
   '';
@@ -42,8 +47,7 @@ mkDerivation rec {
     description = "KWin Script for snapping windows into zones";
     maintainers = with maintainers; [ matthiasbeyer ];
     license = licenses.gpl3Plus;
-    inherit (src.meta) homepage;
+    inherit (finalAttrs.src.meta) homepage;
     inherit (kwindowsystem.meta) platforms;
   };
-}
-
+})
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index f4ab7969cfea..28dfa434f7b0 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -58,7 +58,14 @@
 , runCommandLocal
 , makeWrapper
 }:
-
+let
+  # run gsettings with desktop schemas for using in "kcm_access" kcm
+  # and in kaccess
+  gsettings-wrapper = runCommandLocal "gsettings-wrapper" { nativeBuildInputs = [ makeWrapper ]; } ''
+    mkdir -p $out/bin
+    makeWrapper ${glib}/bin/gsettings $out/bin/gsettings --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas.out}/share/gsettings-schemas/${gsettings-desktop-schemas.name}
+  '';
+in
 mkDerivation {
   pname = "plasma-desktop";
   nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ];
@@ -122,19 +129,16 @@ mkDerivation {
     ./kcm-access.patch
   ];
   CXXFLAGS =
-    let
-      # run gsettings with desktop schemas for using in kcm_accces kcm
-      gsettings-wrapper = runCommandLocal "gsettings-wrapper" { nativeBuildInputs = [ makeWrapper ]; } ''
-        makeWrapper ${glib}/bin/gsettings $out --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas.out}/share/gsettings-schemas/${gsettings-desktop-schemas.name}
-      '';
-    in
     [
       ''-DNIXPKGS_HWCLOCK=\"${lib.getBin util-linux}/bin/hwclock\"''
-      ''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}\"''
+      ''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}/bin/gsettings\"''
     ];
   postInstall = ''
     # Display ~/Desktop contents on the desktop by default.
     sed -i "''${!outputBin}/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \
         -e 's/Containment=org.kde.desktopcontainment/Containment=org.kde.plasma.folder/'
   '';
+
+  # wrap kaccess with wrapped gsettings so it can access accessibility schemas
+  qtWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ gsettings-wrapper ]}" ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 7cc615355663..1526694581c6 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -65,6 +65,7 @@
 , polkit-qt
 , pipewire
 , libdrm
+, fetchpatch
 }:
 
 let inherit (lib) getBin getLib; in
@@ -147,6 +148,13 @@ mkDerivation {
   patches = [
     ./0001-startkde.patch
     ./0002-absolute-wallpaper-install-dir.patch
+
+    # backport patch fixing a Wayland crash
+    # FIXME: remove in next release
+    (fetchpatch {
+      url = "https://invent.kde.org/plasma/plasma-workspace/-/commit/fc01a7f837d06ee9e92d02f13acb79c2b06e9e3c.diff";
+      hash = "sha256-cHupiD6fKZ7ICFb4AcuUErrA4646sNGxeGiACPs8IHQ=";
+    })
   ];
 
   # QT_INSTALL_BINS refers to qtbase, and qdbus is in qttools
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
index 2f16352f8ca0..9c5d44ade85f 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
@@ -16,14 +16,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "catfish";
-  version = "4.16.4";
+  version = "4.18.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.xfce.org";
     owner = "apps";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-hdrEFdBa/4i/PF7VyEI7ObiJXLIRW+RFSe8yGnUpqRc=";
+    sha256 = "sha256-hfbIgSFn48++eGrJXzhXRxhWkrjgTYsr7BX/n0EXhGo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/xfce/default.nix b/nixpkgs/pkgs/desktops/xfce/default.nix
index 5dc21338a72c..4aec72ea334b 100644
--- a/nixpkgs/pkgs/desktops/xfce/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/default.nix
@@ -2,19 +2,12 @@
 , lib
 , pkgs
 , generateSplicesForMkScope
-, makeScopeWithSplicing
+, makeScopeWithSplicing'
 }:
 
-let
-  keep = _self: { };
-  extra = _spliced0: { };
-
-in
-makeScopeWithSplicing
-  (generateSplicesForMkScope "xfce")
-  keep
-  extra
-  (self:
+makeScopeWithSplicing' {
+  otherSplices = generateSplicesForMkScope "xfce";
+  f = (self:
     let
       inherit (self) callPackage;
     in
@@ -177,4 +170,5 @@ makeScopeWithSplicing
       thunar-bare = self.thunar.override { thunarPlugins = [ ]; }; # added 2019-11-04
 
       xfce4-hardware-monitor-plugin = throw "xfce.xfce4-hardware-monitor-plugin has been removed: abandoned by upstream and does not build"; # added 2023-01-15
-    })
+    });
+}