From 317b0d1dbb343d1e64609f2e1eb9e12ff51a1b14 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:26 +0000 Subject: [PATCH 01/26] xfce.exo: 4.18.0 -> 4.20.0 https://gitlab.xfce.org/xfce/exo/-/compare/exo-4.18.0...exo-4.20.0 --- pkgs/desktops/xfce/core/exo/default.nix | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pkgs/desktops/xfce/core/exo/default.nix b/pkgs/desktops/xfce/core/exo/default.nix index e5d34969d4c8..8567100f076b 100644 --- a/pkgs/desktops/xfce/core/exo/default.nix +++ b/pkgs/desktops/xfce/core/exo/default.nix @@ -4,9 +4,9 @@ mkXfceDerivation { category = "xfce"; pname = "exo"; - version = "4.18.0"; + version = "4.20.0"; - sha256 = "sha256-oWlKeUD1v2qqb8vY+2Cu9VJ1iThFPVboP12m/ob5KSQ="; + sha256 = "sha256-mlGsFaKy96eEAYgYYqtEI4naq5ZSEe3V7nsWGAEucn0="; nativeBuildInputs = [ libxslt @@ -18,13 +18,9 @@ mkXfceDerivation { glib libxfce4ui libxfce4util - (perl.withPackages(ps: with ps; [ URI ])) # for $out/lib/xfce4/exo/exo-compose-mail ]; - # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825 - env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; - meta = with lib; { description = "Application library for Xfce"; maintainers = with maintainers; [ ] ++ teams.xfce.members; From 801228d75e0e2d08004f6c4c294f8a63592b76b8 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:30 +0000 Subject: [PATCH 02/26] xfce.garcon: 4.18.2 -> 4.20.0 https://gitlab.xfce.org/xfce/garcon/-/compare/garcon-4.18.2...garcon-4.20.0 --- pkgs/desktops/xfce/core/garcon/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/garcon/default.nix b/pkgs/desktops/xfce/core/garcon/default.nix index ec0d76bfe7ff..6f40696c3d44 100644 --- a/pkgs/desktops/xfce/core/garcon/default.nix +++ b/pkgs/desktops/xfce/core/garcon/default.nix @@ -3,9 +3,9 @@ mkXfceDerivation { category = "xfce"; pname = "garcon"; - version = "4.18.2"; + version = "4.20.0"; - sha256 = "sha256-J9f9MzZ1I9XIyvwuyINkvXDuXY6/MkjlH2Ct4yaEXsY="; + sha256 = "sha256-MeZkDb2QgGMaloO6Nwlj9JmZByepd6ERqpAWqrVv1xw="; nativeBuildInputs = [ gobject-introspection ]; From dab5aedbc6ce6261daef1d1eca1af7c95f3170de Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:36 +0000 Subject: [PATCH 03/26] xfce.libxfce4ui: 4.18.6 -> 4.20.0 https://gitlab.xfce.org/xfce/libxfce4ui/-/compare/libxfce4ui-4.18.6...libxfce4ui-4.20.0 --- .../desktops/xfce/core/libxfce4ui/default.nix | 48 +++++++++++++++---- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/pkgs/desktops/xfce/core/libxfce4ui/default.nix index 862d4f8cbc94..780c3ca990f8 100644 --- a/pkgs/desktops/xfce/core/libxfce4ui/default.nix +++ b/pkgs/desktops/xfce/core/libxfce4ui/default.nix @@ -1,16 +1,45 @@ -{ lib, mkXfceDerivation, gobject-introspection, vala, gtk3, libICE, libSM -, libstartup_notification, libgtop, libepoxy, libxfce4util, xfconf }: +{ + mkXfceDerivation, + lib, + gobject-introspection, + vala, + libICE, + libSM, + libepoxy, + libgtop, + libgudev, + libstartup_notification, + xfconf, + gtk3, + libxfce4util, +}: mkXfceDerivation { category = "xfce"; pname = "libxfce4ui"; - version = "4.18.6"; + version = "4.20.0"; - sha256 = "sha256-ojmI745tKLHv26uL1qS/v6hAcLmAV/WF2NAtAhQRUkg="; + sha256 = "sha256-M+OapPHQ/WxlkUzHPx+ELstVyGoZanCxCL0N8hDWSN8="; - nativeBuildInputs = [ gobject-introspection vala ]; - buildInputs = [ gtk3 libstartup_notification libgtop libepoxy xfconf ]; - propagatedBuildInputs = [ libxfce4util libICE libSM ]; + nativeBuildInputs = [ + gobject-introspection + vala + ]; + + buildInputs = [ + libICE + libSM + libepoxy + libgtop + libgudev + libstartup_notification + xfconf + ]; + + propagatedBuildInputs = [ + gtk3 + libxfce4util + ]; configureFlags = [ "--with-vendor-info=NixOS" @@ -19,7 +48,10 @@ mkXfceDerivation { meta = with lib; { description = "Widgets library for Xfce"; mainProgram = "xfce4-about"; - license = with licenses; [ lgpl2Plus lgpl21Plus ]; + license = with licenses; [ + lgpl2Plus + lgpl21Plus + ]; maintainers = with maintainers; [ ] ++ teams.xfce.members; }; } From c81b372ed3cf2414765cd4a1e86108bb1276b243 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:41 +0000 Subject: [PATCH 04/26] xfce.libxfce4util: 4.18.2 -> 4.20.0 https://gitlab.xfce.org/xfce/libxfce4util/-/compare/libxfce4util-4.18.2...libxfce4util-4.20.0 --- .../xfce/core/libxfce4util/default.nix | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/xfce/core/libxfce4util/default.nix b/pkgs/desktops/xfce/core/libxfce4util/default.nix index 02a4b98309a3..d2486d2fd256 100644 --- a/pkgs/desktops/xfce/core/libxfce4util/default.nix +++ b/pkgs/desktops/xfce/core/libxfce4util/default.nix @@ -1,13 +1,26 @@ -{ lib, mkXfceDerivation, gobject-introspection, vala }: +{ + mkXfceDerivation, + lib, + gobject-introspection, + vala, + glib, +}: mkXfceDerivation { category = "xfce"; pname = "libxfce4util"; - version = "4.18.2"; + version = "4.20.0"; - sha256 = "sha256-JQ6biE1gxtB6+LWxRGfbUhgJhhITGhLr+8BxFW4/8SU="; + sha256 = "sha256-0qbJSCXHsVz3XILHICFhciyz92LgMZiR7XFLAESHRGQ="; - nativeBuildInputs = [ gobject-introspection vala ]; + nativeBuildInputs = [ + gobject-introspection + vala + ]; + + propagatedBuildInputs = [ + glib + ]; meta = with lib; { description = "Extension library for Xfce"; From b957fc96b4301e494b3213f60c20fc3db253a046 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:48 +0000 Subject: [PATCH 05/26] xfce.thunar: 4.18.11 -> 4.20.0 https://gitlab.xfce.org/xfce/thunar/-/compare/thunar-4.18.11...thunar-4.20.0 --- pkgs/desktops/xfce/core/thunar/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index e7c5c30089c2..74318b3622d3 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -23,9 +23,9 @@ let unwrapped = mkXfceDerivation { category = "xfce"; pname = "thunar"; - version = "4.18.11"; + version = "4.20.0"; - sha256 = "sha256-B417gkrU9EG4ZsEdeuH8P2v4FqYUiTwqgKcO4cSi4SI="; + sha256 = "sha256-TCroFesFD0IKGdfuootd1BwEsWVECE2XQfUovJqPEh0="; nativeBuildInputs = [ docbook_xsl From 894df7b8aa780f26f19a1d68aca6ffc25b61d067 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 1 Nov 2024 15:41:49 +0000 Subject: [PATCH 06/26] xfce.thunar-volman: 4.18.0 -> 4.20.0 https://gitlab.xfce.org/xfce/thunar-volman/-/compare/thunar-volman-4.18.0...thunar-volman-4.20.0 --- pkgs/desktops/xfce/core/thunar-volman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/thunar-volman/default.nix b/pkgs/desktops/xfce/core/thunar-volman/default.nix index 33b34e5beee8..ec2f37f31cec 100644 --- a/pkgs/desktops/xfce/core/thunar-volman/default.nix +++ b/pkgs/desktops/xfce/core/thunar-volman/default.nix @@ -3,11 +3,11 @@ mkXfceDerivation { category = "xfce"; pname = "thunar-volman"; - version = "4.18.0"; + version = "4.20.0"; buildInputs = [ exo gtk3 libgudev libxfce4ui libxfce4util xfconf ]; - sha256 = "sha256-NRVoakU8jTCJVe+iyJQwW1xPti2vjd/8n8CYrIYGII0="; + sha256 = "sha256-XIVs/vRwy3QJQW/U7eLBvGdzplWlhdxn3f1lyTQsmpE="; odd-unstable = false; From 6ba618f66e4fbec98be9f25299cdd746e017b037 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:53 +0000 Subject: [PATCH 07/26] xfce.tumbler: 4.18.2 -> 4.20.0 https://gitlab.xfce.org/xfce/tumbler/-/compare/tumbler-4.18.2...tumbler-4.20.0 --- pkgs/desktops/xfce/core/tumbler/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix index fd0e375033c0..98c94858be2b 100644 --- a/pkgs/desktops/xfce/core/tumbler/default.nix +++ b/pkgs/desktops/xfce/core/tumbler/default.nix @@ -19,9 +19,9 @@ mkXfceDerivation { category = "xfce"; pname = "tumbler"; - version = "4.18.2"; + version = "4.20.0"; - sha256 = "sha256-thioE0q2qnV4weJFPz8OWoHIRuUcXnQEviwBtCWsSV4="; + sha256 = "sha256-GmEMdG8Ikd4Tq/1ntCHiN0S7ehUXqzMX7OtXsycLd6E="; buildInputs = [ libxfce4util From b14431bdb746a04293e1128e912a3e2d1f572c99 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:14:57 +0000 Subject: [PATCH 08/26] xfce.xfce4-appfinder: 4.18.1 -> 4.20.0 https://gitlab.xfce.org/xfce/xfce4-appfinder/-/compare/xfce4-appfinder-4.18.1...xfce4-appfinder-4.20.0 --- pkgs/desktops/xfce/core/xfce4-appfinder/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix b/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix index e716fab959a0..da32f4cda098 100644 --- a/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix @@ -3,9 +3,9 @@ mkXfceDerivation { category = "xfce"; pname = "xfce4-appfinder"; - version = "4.18.1"; + version = "4.20.0"; - sha256 = "sha256-CZEX1PzFsVt72Fkb4+5PiZjAcDisvYnbzFGFXjFL4sc="; + sha256 = "sha256-HovQnkfv5BOsRPowgMkMEWQmESkivVK0Xb7I15ZaOMc="; nativeBuildInputs = [ exo ]; buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ]; From f4b88df89df98ac7aa142b1f193f651579b2f4ae Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:03 +0000 Subject: [PATCH 09/26] xfce.xfce4-dev-tools: 4.18.1 -> 4.20.0 https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/compare/xfce4-dev-tools-4.18.1...xfce4-dev-tools-4.20.0 The xdt-autogen script now explicitly sets aclocal macro search path via ACLOCAL_FLAGS, referencing ${datarootdir}/aclocal, which is previously in the $dev output. Since pointing datarootdir to $dev will result in circular dependency, I dropped the $dev output. --- .../xfce/core/xfce4-dev-tools/default.nix | 74 ++++++++++++++----- pkgs/desktops/xfce/default.nix | 6 +- 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix b/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix index 7504c8e09d4c..f2a8e6fcd1ee 100644 --- a/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix @@ -1,27 +1,48 @@ -{ lib -, mkXfceDerivation -, autoreconfHook -, libxslt -, docbook_xsl -, autoconf -, automake -, glib -, gtk-doc -, intltool -, libtool +{ + stdenv, + lib, + fetchFromGitLab, + autoreconfHook, + docbook_xsl, + libxslt, + meson, + pkg-config, + wrapGAppsHook3, + python3, + autoconf, + automake, + glib, + gtk-doc, + libtool, + intltool, + gitUpdater, }: -mkXfceDerivation { - category = "xfce"; +stdenv.mkDerivation (finalAttrs: { pname = "xfce4-dev-tools"; - version = "4.18.1"; + version = "4.20.0"; - sha256 = "sha256-JUyFlifNVhSnIMaI9qmgCtGIgkpmzYybMfuhPgJiDOg="; + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "xfce"; + repo = "xfce4-dev-tools"; + rev = "xfce4-dev-tools-${finalAttrs.version}"; + hash = "sha256-eUfNa/9ksLCKtVwBRtHaVl7Yl95tukUaDdoLNfeR+Ew="; + }; nativeBuildInputs = [ autoreconfHook - libxslt docbook_xsl + libxslt # for xsltproc + # x-d-t itself is not a meson project, but the xfce-do-release script wants + # `meson rewrite kwargs`, thus this is checked by `AC_CHECK_PROGS`. + meson + pkg-config + wrapGAppsHook3 + ]; + + buildInputs = [ + python3 # for xdt-gen-visibility ]; propagatedBuildInputs = [ @@ -33,10 +54,23 @@ mkXfceDerivation { libtool ]; + dontUseMesonConfigure = true; + configureFlags = [ "--enable-maintainer-mode" ]; + + enableParallelBuilding = true; + setupHook = ./setup-hook.sh; - meta = with lib; { - description = "Autoconf macros and scripts to augment app build systems"; - maintainers = with maintainers; [ ] ++ teams.xfce.members; + passthru.updateScript = gitUpdater { + rev-prefix = "xfce4-dev-tools-"; + odd-unstable = true; }; -} + + meta = with lib; { + homepage = "https://gitlab.xfce.org/xfce/xfce4-dev-tools"; + description = "Autoconf macros and scripts to augment app build systems"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ] ++ teams.xfce.members; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index 5d0efd28bfe9..dabfe761a7ba 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -61,11 +61,7 @@ makeScopeWithSplicing' { xfce4-appfinder = callPackage ./core/xfce4-appfinder { }; - xfce4-dev-tools = callPackage ./core/xfce4-dev-tools { - mkXfceDerivation = self.mkXfceDerivation.override { - xfce4-dev-tools = null; - }; - }; + xfce4-dev-tools = callPackage ./core/xfce4-dev-tools { }; #### APPLICATIONS From 1671de743d4f90ec58dae2be37737c7cf4bd4f3e Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:09 +0000 Subject: [PATCH 10/26] xfce.libxfce4windowing: 4.19.3 -> 4.20.0 https://gitlab.xfce.org/xfce/libxfce4windowing/-/compare/libxfce4windowing-4.19.3...libxfce4windowing-4.20.0 --- pkgs/desktops/xfce/core/libxfce4windowing/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/libxfce4windowing/default.nix b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix index c83cf06d4384..8dddaf866637 100644 --- a/pkgs/desktops/xfce/core/libxfce4windowing/default.nix +++ b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix @@ -4,18 +4,21 @@ , wayland-scanner , glib , gtk3 +, libdisplay-info , libwnck , libX11 +, libXrandr , wayland +, wayland-protocols , wlr-protocols }: mkXfceDerivation { category = "xfce"; pname = "libxfce4windowing"; - version = "4.19.3"; + version = "4.20.0"; - sha256 = "sha256-nsobRyGeagUq1WHzYBq6vd9g5A65KEQC4cX+m7w0pqg="; + sha256 = "sha256-t/GbsGipc0Ts2tZJaDJBuDF+9XMp8+Trq78NPAuHEpU="; nativeBuildInputs = [ gobject-introspection @@ -25,9 +28,12 @@ mkXfceDerivation { buildInputs = [ glib gtk3 + libdisplay-info libwnck libX11 + libXrandr wayland + wayland-protocols wlr-protocols ]; From e57a1d1bd7bd8753460932cc69d9e34e98f45079 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:19 +0000 Subject: [PATCH 11/26] xfce.xfce4-panel: 4.18.6 -> 4.20.0 https://gitlab.xfce.org/xfce/xfce4-panel/-/compare/xfce4-panel-4.18.6...xfce4-panel-4.20.0 --- .../xfce/core/xfce4-panel/default.nix | 16 +++++++++---- .../xfce4-panel/xfce4-panel-datadir.patch | 24 ------------------- 2 files changed, 11 insertions(+), 29 deletions(-) delete mode 100644 pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch diff --git a/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/pkgs/desktops/xfce/core/xfce4-panel/default.nix index 3d96f682dbca..cf664c9c6e7d 100644 --- a/pkgs/desktops/xfce/core/xfce4-panel/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-panel/default.nix @@ -1,24 +1,28 @@ { lib , mkXfceDerivation +, cairo , exo , garcon , gobject-introspection +, gtk-layer-shell , gtk3 , libdbusmenu-gtk3 , libwnck , libxfce4ui , libxfce4util +, libxfce4windowing , tzdata , vala +, wayland , xfconf }: mkXfceDerivation { category = "xfce"; pname = "xfce4-panel"; - version = "4.18.6"; + version = "4.20.0"; - sha256 = "sha256-eQLz/LJIx2WkzcSLytRdJdhtGv0woT48mdqG7eHB0U4="; + sha256 = "sha256-oB7mlU7RZtRuCQAKgv5I7ZRRu703Za7Ki9+AkHSELRE="; nativeBuildInputs = [ gobject-introspection @@ -26,13 +30,17 @@ mkXfceDerivation { ]; buildInputs = [ + cairo exo garcon + gtk-layer-shell libdbusmenu-gtk3 libxfce4ui + libxfce4windowing libwnck - xfconf tzdata + wayland + xfconf ]; propagatedBuildInputs = [ @@ -40,8 +48,6 @@ mkXfceDerivation { libxfce4util ]; - patches = [ ./xfce4-panel-datadir.patch ]; - postPatch = '' substituteInPlace plugins/clock/clock.c \ --replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" diff --git a/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch b/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch deleted file mode 100644 index ed9df9ef36f3..000000000000 --- a/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/panel/panel-module-factory.c b/panel/panel-module-factory.c -index 529fe85..8c792b7 100644 ---- a/panel/panel-module-factory.c -+++ b/panel/panel-module-factory.c -@@ -39,6 +39,7 @@ - #include - #include - -+#define DATADIR "/run/current-system/sw/share/xfce4" - #define PANEL_PLUGINS_DATA_DIR (DATADIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") - #define PANEL_PLUGINS_DATA_DIR_OLD (DATADIR G_DIR_SEPARATOR_S "panel-plugins") - -diff --git a/panel/panel-module.c b/panel/panel-module.c -index ba39320..519440b 100644 ---- a/panel/panel-module.c -+++ b/panel/panel-module.c -@@ -35,6 +35,7 @@ - #include - #include - -+#define LIBDIR "/run/current-system/sw/lib/xfce4" - #define PANEL_PLUGINS_LIB_DIR (LIBDIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins") - #define PANEL_PLUGINS_LIB_DIR_OLD (LIBDIR G_DIR_SEPARATOR_S "panel-plugins") - From 16b6193730fefdbae1e020ae026bc73981130508 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:23 +0000 Subject: [PATCH 12/26] xfce.xfce4-power-manager: 4.18.4 -> 4.20.0 https://gitlab.xfce.org/xfce/xfce4-power-manager/-/compare/xfce4-power-manager-4.18.4...xfce4-power-manager-4.20.0 --- .../xfce/core/xfce4-power-manager/default.nix | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix index 7c6d58d84bff..f2827a3458de 100644 --- a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix @@ -1,10 +1,14 @@ { lib , mkXfceDerivation +, wayland-scanner , gtk3 , libnotify , libxfce4ui , libxfce4util +, polkit , upower +, wayland-protocols +, wlr-protocols , xfconf , xfce4-panel }: @@ -12,16 +16,23 @@ mkXfceDerivation { category = "xfce"; pname = "xfce4-power-manager"; - version = "4.18.4"; + version = "4.20.0"; - sha256 = "sha256-aybY+B8VC/XS6FO3XRpYuJd9Atr9Tc/Uo45q9fh3YLE="; + sha256 = "sha256-qKUdrr+giLzNemhT3EQsOKTSiIx50NakmK14Ak7ZOCE="; + + nativeBuildInputs = [ + wayland-scanner + ]; buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util + polkit upower + wayland-protocols + wlr-protocols xfconf xfce4-panel ]; @@ -29,8 +40,8 @@ mkXfceDerivation { # using /run/current-system/sw/bin instead of nix store path prevents polkit permission errors on # rebuild. See https://github.com/NixOS/nixpkgs/issues/77485 postPatch = '' - substituteInPlace src/org.xfce.power.policy.in2 --replace-fail "@sbindir@" "/run/current-system/sw/bin" - substituteInPlace common/xfpm-brightness.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\"" + substituteInPlace src/org.xfce.power.policy.in.in --replace-fail "@sbindir@" "/run/current-system/sw/bin" + substituteInPlace common/xfpm-brightness-polkit.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\"" substituteInPlace src/xfpm-suspend.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\"" ''; From bf47d78e4ceb02477bf15b7641650ce22654800d Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:29 +0000 Subject: [PATCH 13/26] xfce.xfce4-session: 4.18.4 -> 4.20.0 https://gitlab.xfce.org/xfce/xfce4-session/-/compare/xfce4-session-4.18.4...xfce4-session-4.20.0 --- pkgs/desktops/xfce/core/xfce4-session/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-session/default.nix b/pkgs/desktops/xfce/core/xfce4-session/default.nix index 5d2e21598d4f..79d131723e6f 100644 --- a/pkgs/desktops/xfce/core/xfce4-session/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-session/default.nix @@ -4,9 +4,11 @@ , exo , libxfce4util , libxfce4ui +, libxfce4windowing , xfconf , iceauth , gtk3 +, gtk-layer-shell , glib , libwnck , xfce4-session @@ -15,23 +17,28 @@ mkXfceDerivation { category = "xfce"; pname = "xfce4-session"; - version = "4.18.4"; + version = "4.20.0"; - sha256 = "sha256-YxIHxb8mRggHLJ9TQ+KGb9qjt+DMZrxMn+oFuFRL8GI="; + sha256 = "sha256-mn3ky1NzrpQZRkhc605mj+GFhbFq26eW59YKUfnX9X8="; buildInputs = [ exo gtk3 + gtk-layer-shell glib libxfce4ui libxfce4util + libxfce4windowing libwnck xfconf polkit iceauth ]; - configureFlags = [ "--with-xsession-prefix=${placeholder "out"}" ]; + configureFlags = [ + "--with-xsession-prefix=${placeholder "out"}" + "--with-wayland-session-prefix=${placeholder "out"}" + ]; passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc"; From 51c57ba74337420013473285d4954fa41a24f810 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:37 +0000 Subject: [PATCH 14/26] xfce.xfce4-settings: 4.18.6 -> 4.20.0 https://gitlab.xfce.org/xfce/xfce4-settings/-/compare/xfce4-settings-4.18.6...xfce4-settings-4.20.0 --- pkgs/desktops/xfce/core/xfce4-settings/default.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/pkgs/desktops/xfce/core/xfce4-settings/default.nix index 73f22d35f0fd..53b026f8be4d 100644 --- a/pkgs/desktops/xfce/core/xfce4-settings/default.nix +++ b/pkgs/desktops/xfce/core/xfce4-settings/default.nix @@ -1,8 +1,10 @@ { lib , mkXfceDerivation +, wayland-scanner , exo , garcon , gtk3 +, gtk-layer-shell , glib , libnotify , libxfce4ui @@ -12,6 +14,7 @@ # Disabled by default on upstream and actually causes issues: # https://gitlab.xfce.org/xfce/xfce4-settings/-/issues/222 , withUpower ? false +, wlr-protocols , xfconf , xf86inputlibinput , colord @@ -21,19 +24,25 @@ mkXfceDerivation { category = "xfce"; pname = "xfce4-settings"; - version = "4.18.6"; + version = "4.20.0"; - sha256 = "sha256-xiu26B3dbWu+/AtF/iUC6Wo2U5ZZyzN9RfdbBaQRJ1M="; + sha256 = "sha256-0fMuAucyxLr2VzQqAB0CL+HgkHNJctiVNZmUmTNzaPc="; + + nativeBuildInputs = [ + wayland-scanner + ]; buildInputs = [ exo garcon glib gtk3 + gtk-layer-shell libnotify libxfce4ui libxfce4util libxklavier + wlr-protocols xf86inputlibinput xfconf ] From 5dfe2259dc4bbcc8507d2c6be83bc21cb6c75ae7 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 16 Oct 2024 12:15:42 +0000 Subject: [PATCH 15/26] xfce.xfdesktop: 4.18.1 -> 4.20.0 https://gitlab.xfce.org/xfce/xfdesktop/-/compare/xfdesktop-4.18.1...xfdesktop-4.20.0 --- pkgs/desktops/xfce/core/xfdesktop/default.nix | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfdesktop/default.nix b/pkgs/desktops/xfce/core/xfdesktop/default.nix index ed36d2b92b73..ab6900c28e1f 100644 --- a/pkgs/desktops/xfce/core/xfdesktop/default.nix +++ b/pkgs/desktops/xfce/core/xfdesktop/default.nix @@ -1,21 +1,37 @@ -{ lib, mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck, xfconf, libnotify, garcon, thunar }: +{ + lib, + mkXfceDerivation, + exo, + gtk3, + libxfce4ui, + libxfce4util, + libxfce4windowing, + libyaml, + xfconf, + libnotify, + garcon, + gtk-layer-shell, + thunar, +}: mkXfceDerivation { category = "xfce"; pname = "xfdesktop"; - version = "4.18.1"; + version = "4.20.0"; - sha256 = "sha256-33G7X5kA3MCNJ9Aq9ZCafP0Qm/46iUmLFB8clhKwDz8="; + sha256 = "sha256-80g3lk1TkQI0fbYf2nXs36TrPlaGTHgH6k/TGOzRd3w="; buildInputs = [ exo gtk3 libxfce4ui libxfce4util - libwnck + libxfce4windowing + libyaml xfconf libnotify garcon + gtk-layer-shell thunar ]; From 71069ccf1a82ae184e54f15df830fc7862907e0c Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 27 Oct 2024 14:05:06 +0800 Subject: [PATCH 16/26] xfce.xfconf: 4.18.3 -> 4.20.0 https://gitlab.xfce.org/xfce/xfconf/-/compare/xfconf-4.18.3...xfconf-4.20.0 --- pkgs/desktops/xfce/core/xfconf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfconf/default.nix b/pkgs/desktops/xfce/core/xfconf/default.nix index 45873f7ef248..82a33a4b458e 100644 --- a/pkgs/desktops/xfce/core/xfconf/default.nix +++ b/pkgs/desktops/xfce/core/xfconf/default.nix @@ -8,9 +8,9 @@ mkXfceDerivation { category = "xfce"; pname = "xfconf"; - version = "4.18.3"; + version = "4.20.0"; - sha256 = "sha256-Iu/LHyk/lOvu8uJuJRDxIkabiX0vZB4H99vVKRiugVo="; + sha256 = "sha256-U+Sk7ubBr1ZD1GLQXlxrx0NQdhV/WpVBbnLcc94Tjcw="; nativeBuildInputs = [ gobject-introspection vala ]; From 4fbf014be0b560ec7158f609d363f63a1fddce3a Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 2 Nov 2024 02:09:42 +0000 Subject: [PATCH 17/26] xfce.xfwm4: 4.18.0 -> 4.20.0 https://gitlab.xfce.org/xfce/xfwm4/-/compare/xfwm4-4.18.0...xfwm4-4.20.0 --- pkgs/desktops/xfce/core/xfwm4/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfwm4/default.nix b/pkgs/desktops/xfce/core/xfwm4/default.nix index abd08f5a6f3d..82c895cd41b1 100644 --- a/pkgs/desktops/xfce/core/xfwm4/default.nix +++ b/pkgs/desktops/xfce/core/xfwm4/default.nix @@ -5,9 +5,9 @@ mkXfceDerivation { category = "xfce"; pname = "xfwm4"; - version = "4.18.0"; + version = "4.20.0"; - sha256 = "sha256-nTPgxC0XMBJ48lPCeQgCvWWK1/2ZIoQOYsMeaxDpE1c="; + sha256 = "sha256-5UZQrAH0oz+G+7cvXCLDJ4GSXNJcyl4Ap9umb7h0f5Q="; nativeBuildInputs = [ exo librsvg ]; From 1e40e0106a69539ff11342143e4fef6605285d8c Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 12 Nov 2024 19:21:04 +0800 Subject: [PATCH 18/26] xfce.xfce4-pulseaudio-plugin: 0.4.8 -> 0.4.9 https://gitlab.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/-/compare/xfce4-pulseaudio-plugin-0.4.8...xfce4-pulseaudio-plugin-0.4.9 --- .../panel-plugins/xfce4-pulseaudio-plugin/default.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix index b14ebb67374a..71e604ddc5f0 100644 --- a/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix @@ -7,6 +7,7 @@ , libnotify , libxfce4ui , libxfce4util +, libxfce4windowing , xfce4-panel , xfconf , keybinder3 @@ -16,12 +17,8 @@ mkXfceDerivation { category = "panel-plugins"; pname = "xfce4-pulseaudio-plugin"; - version = "0.4.8"; - sha256 = "sha256-7vcjARm0O+/hVNFzOpxcgAnqD+wRNg5/eqXLcq4t/iU="; - - postPatch = '' - substituteInPlace configure.ac.in --replace gio-2.0 gio-unix-2.0 - ''; + version = "0.4.9"; + sha256 = "sha256-bJp4HicAFPuRATDHus0DfJFy1c6gw6Tkpd2UN7SXqsI="; buildInputs = [ exo @@ -33,6 +30,7 @@ mkXfceDerivation { libpulseaudio libxfce4ui libxfce4util + libxfce4windowing xfce4-panel xfconf ]; From a31d031e4ca165b031d4872ed98d86aa9e30e365 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 12 Nov 2024 19:15:16 +0800 Subject: [PATCH 19/26] xfce.xfce4-docklike-plugin: Backport wayland support By replacing libwnck with libxfce4windowing and using gtk-layer-shell to position group menu on Wayland. --- .../panel-plugins/xfce4-docklike-plugin/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix index 3f9b414e7713..b4f6121033d0 100644 --- a/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix @@ -3,32 +3,33 @@ , cairo , glib , gtk3 +, gtk-layer-shell , libX11 , libxfce4ui , libxfce4util , xfce4-panel -, libwnck +, libxfce4windowing }: mkXfceDerivation { category = "panel-plugins"; pname = "xfce4-docklike-plugin"; - version = "0.4.2"; - sha256 = "sha256-M/V8cnEU/nSEDjQ3k8fWiklF5OuNg3uzzJMHBSZBiLU="; + version = "0.4.2-unstable-2024-11-04"; + rev = "1154bf1c9f291d5699663910d5aac71bb3ab2227"; + sha256 = "sha256-uno3qNyuesK/hJMdAxHZS6XMysr7ySOgJ5ACXGcIWFs="; buildInputs = [ cairo glib gtk3 + gtk-layer-shell libX11 libxfce4ui libxfce4util xfce4-panel - libwnck + libxfce4windowing ]; - NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; - meta = with lib; { homepage = "https://docs.xfce.org/panel-plugins/xfce4-docklike-plugin/start"; description = "Modern, minimalist taskbar for Xfce"; From 36ecc88a08f29e87ae13eb187f18c23a699a1e32 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 2 Nov 2024 10:48:40 +0800 Subject: [PATCH 20/26] greybird: Fix label styles for xfdesktop 4.19 Otherwise labels are not transparent when other window is focused. --- pkgs/by-name/gr/greybird/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/gr/greybird/package.nix b/pkgs/by-name/gr/greybird/package.nix index 0462a28d34fb..e78d49eff4de 100644 --- a/pkgs/by-name/gr/greybird/package.nix +++ b/pkgs/by-name/gr/greybird/package.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , meson , ninja , pkg-config @@ -22,6 +23,15 @@ stdenv.mkDerivation rec { sha256 = "+MZQ3FThuRFEfoARsF09B7POwytS5RgTs9zYzIHVtfg="; }; + patches = [ + # Fix label styles for xfdesktop 4.19 + # https://github.com/shimmerproject/Greybird/pull/338 + (fetchpatch { + url = "https://github.com/shimmerproject/Greybird/commit/7e4507d7713b2aaf41f8cfef2a1a9e214a4d8b6f.patch"; + hash = "sha256-awXM2RgFIK/Ik5cJSy4IQYl+ic+XGQV0YwbL3SPclzQ="; + }) + ]; + nativeBuildInputs = [ meson ninja From 8c0b93b5146b58f30612613acd13fb58aa88b8e5 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 12 Nov 2024 18:43:09 +0800 Subject: [PATCH 21/26] budgie-desktop: Fix build with latest libxfce4windowing Fixes: error: too few arguments to function 'xfw_window_activate'. --- pkgs/by-name/bu/budgie-desktop/package.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/bu/budgie-desktop/package.nix b/pkgs/by-name/bu/budgie-desktop/package.nix index 74d9d2c35a94..eb4627dc504e 100644 --- a/pkgs/by-name/bu/budgie-desktop/package.nix +++ b/pkgs/by-name/bu/budgie-desktop/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, accountsservice, alsa-lib, budgie-screensaver, @@ -60,7 +61,16 @@ stdenv.mkDerivation (finalAttrs: { "man" ]; - patches = [ ./plugins.patch ]; + patches = [ + ./plugins.patch + + # Adapt to libxfce4windowing v4.19.8 + # https://github.com/BuddiesOfBudgie/budgie-desktop/pull/627 + (fetchpatch { + url = "https://github.com/BuddiesOfBudgie/budgie-desktop/commit/ba8170b4f3108f9de28331b6a98a9d92bb0ed4de.patch"; + hash = "sha256-T//1/NmaV81j0jiIYK7vEp8sgKCgF2i10D+Rk9qAAeE="; + }) + ]; nativeBuildInputs = [ docbook-xsl-nons From 270c3f105867aff900777dfa5d3b31ad5b23407c Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 12 Nov 2024 19:08:29 +0800 Subject: [PATCH 22/26] lightdm-gtk-greeter: Backport xfce-wayland_badge-symbolic icon The session should be shown as a Xfce session :-) --- pkgs/applications/display-managers/lightdm/gtk-greeter.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix index 8bf003d37194..77e26c1777f5 100644 --- a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix +++ b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix @@ -45,6 +45,11 @@ stdenv.mkDerivation rec { "--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook3 to wrap automatically ]; + postPatch = '' + # https://github.com/Xubuntu/lightdm-gtk-greeter/pull/178 + cp data/badges/xfce{,-wayland}_badge-symbolic.svg + ''; + preConfigure = '' configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" ) ''; From 3c20ab171f6887a5dcdfdbb12d18d4ffb5db502c Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 19 Oct 2024 09:59:02 +0800 Subject: [PATCH 23/26] nixos/xfce: Use upstream name for X11 session This allows keeping the name consistent with the wayland session we are introducing later. --- nixos/modules/services/x11/desktop-managers/xfce.nix | 1 + nixos/modules/services/x11/display-managers/default.nix | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index 8810b5f8c8b0..bc3ef54a061e 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -144,6 +144,7 @@ in services.xserver.desktopManager.session = [{ name = "xfce"; + prettyName = "Xfce Session"; desktopNames = [ "XFCE" ]; bgSupport = !cfg.noDesktop; start = '' diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 87331a6658d3..7b8c8a661c95 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -279,6 +279,11 @@ in lib.mapCartesianProduct ({dm, wm}: let sessionName = "${dm.name}${optionalString (wm.name != "none") ("+" + wm.name)}"; + prettyName = + if dm.name != "none" then + "${dm.prettyName or dm.name}${optionalString (wm.name != "none") (" (" + (wm.prettyName or wm.name) + ")")}" + else + (wm.prettyName or wm.name); script = xsession dm wm; desktopNames = if dm ? desktopNames then lib.concatStringsSep ";" dm.desktopNames @@ -297,7 +302,7 @@ in Type=XSession TryExec=${script} Exec=${script} - Name=${sessionName} + Name=${prettyName} DesktopNames=${desktopNames} ''; } // { From d9b6a4eb7b0417c4a617b184f7d2035c9920a054 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sat, 19 Oct 2024 10:24:25 +0800 Subject: [PATCH 24/26] nixos/xfce: Add Wayland session Using labwc as compositor. --- .../services/x11/desktop-managers/xfce.nix | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index bc3ef54a061e..81f51e315ad8 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -69,6 +69,22 @@ in default = true; description = "Enable the XFCE screensaver."; }; + + enableWaylandSession = mkEnableOption "the experimental Xfce Wayland session"; + + waylandSessionCompositor = mkOption { + type = lib.types.str; + default = ""; + example = "wayfire"; + description = '' + Command line to run a Wayland compositor, defaults to `labwc --startup` + if not specified. Note that `xfce4-session` will be passed to it as an + argument, see `startxfce4 --help` for details. + + Some compositors do not have an option equivalent to labwc's `--startup` + and you might have to add xfce4-session somewhere in their configurations. + ''; + }; }; environment.xfce.excludePackages = mkOption { @@ -134,6 +150,8 @@ in programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-gtk2; programs.xfconf.enable = true; programs.thunar.enable = true; + programs.labwc.enable = mkDefault (cfg.enableWaylandSession && ( + cfg.waylandSessionCompositor == "" || lib.substring 0 5 cfg.waylandSessionCompositor == "labwc")); environment.pathsToLink = [ "/share/xfce4" @@ -153,6 +171,22 @@ in ''; }]; + # Copied from https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.19.2/xfce-wayland.desktop.in + # to maintain consistent l10n state with X11 session file and to support the waylandSessionCompositor option. + services.displayManager.sessionPackages = optionals cfg.enableWaylandSession [ + ((pkgs.writeTextDir "share/wayland-sessions/xfce-wayland.desktop" '' + [Desktop Entry] + Version=1.0 + Name=Xfce Session (Wayland) + Comment=Use this session to run Xfce as your desktop environment + Exec=startxfce4 --wayland ${cfg.waylandSessionCompositor} + Icon= + Type=Application + DesktopNames=XFCE + Keywords=xfce;wayland;desktop;environment;session; + '').overrideAttrs (_: { passthru.providedSessions = [ "xfce-wayland" ]; })) + ]; + services.xserver.updateDbusEnvironment = true; programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; From d49df3170c3127cf5a74887286428a170af49d4b Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Mon, 21 Oct 2024 22:15:30 +0800 Subject: [PATCH 25/26] nixos/tests/xfce-wayland: init Use wlrctl instead of wait_for_window, to avoid xwininfo usages. --- nixos/tests/all-tests.nix | 1 + nixos/tests/xfce-wayland.nix | 73 ++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 nixos/tests/xfce-wayland.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index afb1730955ef..effcbb37195f 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1162,6 +1162,7 @@ in { xandikos = handleTest ./xandikos.nix {}; xautolock = handleTest ./xautolock.nix {}; xfce = handleTest ./xfce.nix {}; + xfce-wayland = handleTest ./xfce-wayland.nix {}; xmonad = handleTest ./xmonad.nix {}; xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {}; xpadneo = handleTest ./xpadneo.nix {}; diff --git a/nixos/tests/xfce-wayland.nix b/nixos/tests/xfce-wayland.nix new file mode 100644 index 000000000000..5f835528c851 --- /dev/null +++ b/nixos/tests/xfce-wayland.nix @@ -0,0 +1,73 @@ +import ./make-test-python.nix ( + { pkgs, ... }: + { + name = "xfce-wayland"; + + nodes.machine = + { pkgs, ... }: + + { + imports = [ + ./common/user-account.nix + ]; + + services.xserver.enable = true; + services.xserver.displayManager.lightdm.enable = true; + services.displayManager = { + defaultSession = "xfce-wayland"; + autoLogin = { + enable = true; + user = "alice"; + }; + }; + + services.xserver.desktopManager.xfce.enable = true; + services.xserver.desktopManager.xfce.enableWaylandSession = true; + # https://gitlab.xfce.org/apps/xfce4-screensaver/-/merge_requests/28 + services.xserver.desktopManager.xfce.enableScreensaver = false; + environment.systemPackages = [ pkgs.wlrctl ]; + }; + + enableOCR = true; + + testScript = + { nodes, ... }: + let + user = nodes.machine.users.users.alice; + rtdir = "XDG_RUNTIME_DIR=/run/user/${toString user.uid}"; + in + '' + machine.wait_for_unit("display-manager.service") + + with subtest("Wait for Wayland server"): + machine.wait_for_file("/run/user/${toString user.uid}/wayland-0") + + with subtest("Check that logging in has given the user ownership of devices"): + machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") + + with subtest("Check if Xfce components actually start"): + for p in ["labwc", "xfdesktop", "xfce4-notifyd", "xfconfd", "xfce4-panel"]: + machine.wait_until_succeeds(f"pgrep {p}") + + with subtest("Open Xfce terminal"): + machine.succeed("su - ${user.name} -c '${rtdir} xfce4-terminal >&2 &'") + machine.wait_until_succeeds("su - ${user.name} -c '${rtdir} wlrctl toplevel list | grep xfce4-terminal'") + + with subtest("Open Thunar"): + machine.succeed("su - ${user.name} -c '${rtdir} thunar >&2 &'") + machine.wait_until_succeeds("su - ${user.name} -c '${rtdir} wlrctl toplevel list | grep Thunar'") + machine.wait_for_text('(Pictures|Public|Templates|Videos)') + + with subtest("Check if various environment variables are set"): + cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf xfce4-panel)/environ" + machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'") + machine.succeed(f"{cmd} | grep 'XFCE4_SESSION_COMPOSITOR' | grep 'labwc'") + machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'XFCE'") + + with subtest("Check if any coredumps are found"): + machine.succeed("(coredumpctl --json=short 2>&1 || true) | grep 'No coredumps found'") + machine.sleep(10) + machine.screenshot("screen") + ''; + } +) From 82c97b0e9a7a50e28deb07ecece70d5d214835cc Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 15 Dec 2024 19:42:23 +0800 Subject: [PATCH 26/26] nixos/doc/rl-2505: Mention Xfce 4.20 --- nixos/doc/manual/release-notes/rl-2505.section.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 5c5b2470e2d3..429faa86b971 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -144,6 +144,11 @@ - Cinnamon has been updated to 6.4, please check the [upstream announcement](https://www.linuxmint.com/rel_xia_whatsnew.php) for more details. - Following [changes in Mint 22](https://github.com/linuxmint/mintupgrade/commit/f239cde908288b8c250f938e7311c7ffbc16bd59) we are no longer overriding Qt application styles. You can still restore the previous default with `qt.style = "gtk2"` and `qt.platformTheme = "gtk2"`. +- Xfce has been updated to 4.20, please check the [upstream feature tour](https://www.xfce.org/about/tour420) for more details. + - Wayland session is still [experimental](https://wiki.xfce.org/releng/wayland_roadmap) and requires opt-in using `enableWaylandSession` option. + - Overriding Wayland compositor is possible using `enableWaylandSession` option, but you might need to take care [`xfce4-session`](https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/49), [`dbus-update-activation-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L234) and [`systemctl --user import-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L239) on startup. + - For new Xfce installations, default panel layout has [changed](https://gitlab.xfce.org/xfce/xfce4-panel/-/merge_requests/158/diffs) to not include external panel plugins by default. You can still add them yourself using the "Panel Preferences" dialog. + - `networking.wireguard` now has an optional networkd backend. It is enabled by default when `networking.useNetworkd` is enabled, and it can be enabled alongside scripted networking with `networking.wireguard.useNetworkd`. Some `networking.wireguard` options have slightly different behavior with the networkd and script-based backends, documented in each option. - `services.avahi.ipv6` now defaults to true.