From d3a3ddcdf84fc2b7b1c43a3a6311b47ae85ee456 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 18 Nov 2025 23:22:25 +0800 Subject: [PATCH 01/14] budgie-desktop-services: init at 1.0.2 --- .../bu/budgie-desktop-services/package.nix | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 pkgs/by-name/bu/budgie-desktop-services/package.nix diff --git a/pkgs/by-name/bu/budgie-desktop-services/package.nix b/pkgs/by-name/bu/budgie-desktop-services/package.nix new file mode 100644 index 000000000000..4bf24d317998 --- /dev/null +++ b/pkgs/by-name/bu/budgie-desktop-services/package.nix @@ -0,0 +1,50 @@ +{ + stdenv, + lib, + fetchFromGitea, + cmake, + kdePackages, + qt6, + toml11, + buildPackages, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "budgie-desktop-services"; + version = "1.0.2"; + + src = fetchFromGitea { + domain = "forge.moderndesktop.dev"; + owner = "BuddiesOfBudgie"; + repo = "budgie-desktop-services"; + tag = finalAttrs.version; + hash = "sha256-YOa2pUePp33d1xKF7HrBX2EkjEQsRmzoiJMq72fl3CE="; + }; + + nativeBuildInputs = [ + cmake + kdePackages.extra-cmake-modules + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + kdePackages.kwayland + qt6.qtbase + toml11 + ]; + + postPatch = '' + substituteInPlace cmake/ECMFindModuleHelpersStub.cmake --replace-fail \ + '/usr/share/ECM/modules//ECMFindModuleHelpers.cmake' \ + '${buildPackages.kdePackages.extra-cmake-modules}/share/ECM/modules/ECMFindModuleHelpers.cmake' + ''; + + meta = { + description = "Future central hub and orchestrator for Budgie Desktop"; + mainProgram = "org.buddiesofbudgie.Services"; + homepage = "https://forge.moderndesktop.dev/BuddiesOfBudgie/budgie-desktop-services"; + license = lib.licenses.mpl20; + teams = [ lib.teams.budgie ]; + platforms = lib.platforms.linux; + }; +}) From 9379ee757a0b28986cc6ab652362e929497cafcd Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 21:59:03 +0800 Subject: [PATCH 02/14] budgie-desktop: 10.9.4 -> 10.10.1 https://github.com/BuddiesOfBudgie/budgie-desktop/compare/v10.9.4...v10.10.1 --- pkgs/by-name/bu/budgie-desktop/package.nix | 74 +++++++++++----------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/pkgs/by-name/bu/budgie-desktop/package.nix b/pkgs/by-name/bu/budgie-desktop/package.nix index 29e729bfa3d3..0eb71d8165a3 100644 --- a/pkgs/by-name/bu/budgie-desktop/package.nix +++ b/pkgs/by-name/bu/budgie-desktop/package.nix @@ -4,58 +4,61 @@ fetchFromGitHub, accountsservice, alsa-lib, - budgie-screensaver, + budgie-desktop-services, + budgie-session, docbook-xsl-nons, glib, gnome-desktop, gnome-settings-daemon, gobject-introspection, - graphene, gst_all_1, gtk-doc, gtk3, + gtk-layer-shell, ibus, intltool, libcanberra-gtk3, libgee, - libGL, - libgudev, libnotify, libpeas2, libpulseaudio, libuuid, libwacom, libwnck, - magpie, - libgbm, + libxfce4windowing, meson, mutter, ninja, nix-update-script, - nixosTests, pkg-config, - polkit, + python3, sassc, testers, - udev, upower, vala, validatePkgConfig, - libxfce4windowing, wrapGAppsHook3, - zenity, }: +let + pythonEnv = python3.withPackages ( + pp: with pp; [ + psutil + pygobject3 + systemd-python + ] + ); +in stdenv.mkDerivation (finalAttrs: { pname = "budgie-desktop"; - version = "10.9.4"; + version = "10.10.1"; src = fetchFromGitHub { owner = "BuddiesOfBudgie"; repo = "budgie-desktop"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-e1kkmzSYX8TwiY0IIZYIK/FgMbZ/8PqkUn8pk3CcXHU="; + hash = "sha256-6SRnub0FMRE9AcHwsnYH4WMdG2kqEpl5dfHy56FwrGU="; }; outputs = [ @@ -76,6 +79,7 @@ stdenv.mkDerivation (finalAttrs: { meson ninja pkg-config + sassc vala validatePkgConfig wrapGAppsHook3 @@ -84,54 +88,50 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ accountsservice alsa-lib - budgie-screensaver glib gnome-desktop gnome-settings-daemon - mutter - zenity - graphene gst_all_1.gstreamer gst_all_1.gst-plugins-base gtk3 + gtk-layer-shell ibus libcanberra-gtk3 libgee - libGL - libgudev libnotify libpulseaudio libuuid libwacom libwnck - magpie - libgbm - polkit - sassc - udev - upower libxfce4windowing + mutter # org.gnome.mutter.keybindings + pythonEnv + upower ]; propagatedBuildInputs = [ - # budgie-1.0.pc, budgie-raven-plugin-1.0.pc + # budgie-3.0.pc, budgie-raven-plugin-3.0.pc libpeas2 ]; mesonFlags = [ - # FIXME: The meson option name is confusing - # https://github.com/BuddiesOfBudgie/budgie-desktop/pull/739#discussion_r2359421711 - "-Dbsd-libexecdir=${gnome-settings-daemon}/libexec" + "-Dgsd-libexecdir=${gnome-settings-daemon}/libexec" + "-Dwith-runtime-dependencies=false" ]; + postPatch = '' + substituteInPlace src/session/budgie-desktop.in \ + --replace-fail "@bindir@/org.buddiesofbudgie.Services" "${lib.getExe budgie-desktop-services}" \ + --replace-fail "@gsd_libexecdir@/budgie-session-compositor-ready" "${budgie-session}/libexec/budgie-session-compositor-ready" + + chmod +x src/bridges/labwc/labwc_bridge.py + substituteInPlace src/bridges/labwc/org.buddiesofbudgie.labwc-bridge.desktop.in \ + --replace-fail "Exec=python3 @libexecdir@/labwc_bridge.py" "Exec=@libexecdir@/labwc_bridge.py" + ''; + passthru = { providedSessions = [ "budgie-desktop" ]; - - tests = { - inherit (nixosTests) budgie; - pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; - }; - + tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; updateScript = nix-update-script { }; }; @@ -147,8 +147,8 @@ stdenv.mkDerivation (finalAttrs: { teams = [ lib.teams.budgie ]; platforms = lib.platforms.linux; pkgConfigModules = [ - "budgie-2.0" - "budgie-raven-plugin-2.0" + "budgie-3.0" + "budgie-raven-plugin-3.0" "budgie-theme-1.0" ]; }; From 48e18848e86fc951914ee7ee8ab44c55d039ba09 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 23:12:41 +0800 Subject: [PATCH 03/14] budgie-control-center: 1.4.1 -> 2.1.0 https://github.com/BuddiesOfBudgie/budgie-control-center/compare/v1.4.1...v2.1.0 --- .../budgie-control-center/introduction.list | 5 +++ .../bu/budgie-control-center/package.nix | 37 +++++++------------ 2 files changed, 18 insertions(+), 24 deletions(-) create mode 100644 pkgs/by-name/bu/budgie-control-center/introduction.list diff --git a/pkgs/by-name/bu/budgie-control-center/introduction.list b/pkgs/by-name/bu/budgie-control-center/introduction.list new file mode 100644 index 000000000000..520e673a2c03 --- /dev/null +++ b/pkgs/by-name/bu/budgie-control-center/introduction.list @@ -0,0 +1,5 @@ +# Introduction panel default applications +# This file contains full paths to .desktop files to display +# Lines starting with # are comments +@wdisplays@/share/applications/network.cycles.wdisplays.desktop +@budgie_desktop@/share/applications/org.buddiesofbudgie.BudgieDesktopSettings.desktop diff --git a/pkgs/by-name/bu/budgie-control-center/package.nix b/pkgs/by-name/bu/budgie-control-center/package.nix index 1dc34f6398af..341af1c971dc 100644 --- a/pkgs/by-name/bu/budgie-control-center/package.nix +++ b/pkgs/by-name/bu/budgie-control-center/package.nix @@ -4,11 +4,8 @@ fetchFromGitHub, replaceVars, accountsservice, - adwaita-icon-theme, budgie-desktop, cheese, - clutter, - clutter-gtk, colord, colord-gtk, cups, @@ -25,14 +22,11 @@ gnome-bluetooth_1_0, gnome-color-manager, gnome-desktop, - gnome-remote-desktop, gnome-settings-daemon, - gnome-user-share, gsettings-desktop-schemas, gsound, gtk3, ibus, - libcanberra-gtk3, libepoxy, libgnomekbd, libgtop, @@ -49,7 +43,6 @@ libxslt, meson, modemmanager, - mutter, networkmanager, networkmanagerapplet, ninja, @@ -63,21 +56,30 @@ tzdata, udisks, upower, + wdisplays, webp-pixbuf-loader, wrapGAppsHook3, enableSshSocket ? false, }: +let + introduction_list = ( + replaceVars ./introduction.list { + budgie_desktop = budgie-desktop; + inherit wdisplays; + } + ); +in stdenv.mkDerivation (finalAttrs: { pname = "budgie-control-center"; - version = "1.4.1"; + version = "2.1.0"; src = fetchFromGitHub { owner = "BuddiesOfBudgie"; repo = "budgie-control-center"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-Je3X1V4U2t0LMxWwtoYZKEI56IS4zK/w6OL615tqKkk="; + hash = "sha256-sdAzReZVAZ5omLOhly/l3buiw01eem+k9+3RbVPzS2g="; }; patches = [ @@ -106,8 +108,6 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ accountsservice - clutter - clutter-gtk colord colord-gtk fontconfig @@ -117,18 +117,13 @@ stdenv.mkDerivation (finalAttrs: { glib-networking gnome-desktop gst_all_1.gstreamer - adwaita-icon-theme cheese gnome-bluetooth_1_0 - gnome-remote-desktop gnome-settings-daemon - gnome-user-share - mutter gsettings-desktop-schemas gsound gtk3 ibus - libcanberra-gtk3 libepoxy libgtop libgudev @@ -137,7 +132,6 @@ stdenv.mkDerivation (finalAttrs: { libnma libpulseaudio libpwquality - librsvg libsecret libwacom libxml2 @@ -167,6 +161,8 @@ stdenv.mkDerivation (finalAttrs: { ]; } }" + + install -Dm644 ${introduction_list} $out/share/budgie-control-center/introduction/introduction.list ''; preFixup = '' @@ -176,18 +172,11 @@ stdenv.mkDerivation (finalAttrs: { # Thumbnailers (for setting user profile pictures) --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" --prefix XDG_DATA_DIRS : "${librsvg}/share" - # WM keyboard shortcuts - --prefix XDG_DATA_DIRS : "${mutter}/share" ) ''; separateDebugInfo = true; - # Fix GCC 14 build. - # cc-display-panel.c:962:41: error: passing argument 1 of 'gtk_widget_set_sensitive' - # from incompatible pointer type [-Wincompatible-pointer-types] - env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types"; - passthru = { tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; updateScript = nix-update-script { }; From efd0552220bd85e504f71e78a328887577c3b9a4 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 23:25:40 +0800 Subject: [PATCH 04/14] budgie-desktop-view: 1.3 -> 10.10.1 https://github.com/BuddiesOfBudgie/budgie-desktop-view/compare/v1.3...v10.10.1 --- pkgs/by-name/bu/budgie-desktop-view/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bu/budgie-desktop-view/package.nix b/pkgs/by-name/bu/budgie-desktop-view/package.nix index f59d65b5d73e..3256db4b1240 100644 --- a/pkgs/by-name/bu/budgie-desktop-view/package.nix +++ b/pkgs/by-name/bu/budgie-desktop-view/package.nix @@ -5,7 +5,9 @@ desktop-file-utils, glib, gtk3, + gtk-layer-shell, intltool, + libxfce4windowing, meson, ninja, nix-update-script, @@ -16,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "budgie-desktop-view"; - version = "1.3"; + version = "10.10.1"; src = fetchFromGitHub { owner = "BuddiesOfBudgie"; repo = "budgie-desktop-view"; rev = "v${finalAttrs.version}"; - hash = "sha256-k6VfAGWvUarhBFnREasOvWH3M9uuT5SFUpMFmKo1fmE="; + hash = "sha256-ro+/Aqsyr9py3SEdsRg+eiQLDkFI0wI4MMdCyH02E3U="; }; nativeBuildInputs = [ @@ -38,6 +40,8 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ glib gtk3 + gtk-layer-shell + libxfce4windowing ]; mesonFlags = [ (lib.mesonBool "werror" false) ]; From 71e8eb24914a365b2bf3756113d7325df9732148 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 23:50:05 +0800 Subject: [PATCH 05/14] budgie-session: 0.9.1 -> 1.0.0 https://github.com/BuddiesOfBudgie/budgie-session/compare/v0.9.1...v1.0.0 --- pkgs/by-name/bu/budgie-session/fix-paths.patch | 4 ++-- pkgs/by-name/bu/budgie-session/package.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/bu/budgie-session/fix-paths.patch b/pkgs/by-name/bu/budgie-session/fix-paths.patch index 1c011d26b549..00e4d772fa3e 100644 --- a/pkgs/by-name/bu/budgie-session/fix-paths.patch +++ b/pkgs/by-name/bu/budgie-session/fix-paths.patch @@ -27,9 +27,9 @@ index 327c7c7f..301ec7ee 100644 @@ -219,7 +219,7 @@ require_dbus_session (int argc, } new_argv[i + 2] = NULL; - + - if (!execvp ("dbus-launch", new_argv)) { + if (!execvp ("@dbusLaunch@", new_argv)) { - g_set_error (error, + g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, diff --git a/pkgs/by-name/bu/budgie-session/package.nix b/pkgs/by-name/bu/budgie-session/package.nix index 307d6febde4a..2aae236f1527 100644 --- a/pkgs/by-name/bu/budgie-session/package.nix +++ b/pkgs/by-name/bu/budgie-session/package.nix @@ -31,13 +31,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "budgie-session"; - version = "0.9.1"; + version = "1.0.0"; src = fetchFromGitHub { owner = "BuddiesOfBudgie"; repo = "budgie-session"; rev = "v${finalAttrs.version}"; - hash = "sha256-mz+Yh3NK2Tag+MWVofFFXYYXspxhmYBD6YCiuATpZSI="; + hash = "sha256-KBNX1jbQ2yv+5rymoB9/w5V3bRZhBdZIJoysp9cNgn4="; }; outputs = [ From 7daa1f60308b23754aabddb4db90fa8ba0110cf6 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 23:02:48 +0800 Subject: [PATCH 06/14] nixos/budgie: Add labwc https://docs.buddiesofbudgie.org/10.10/developer/workflow/building-budgie-desktop/#compositor-recommendations --- nixos/modules/services/desktop-managers/budgie.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/services/desktop-managers/budgie.nix b/nixos/modules/services/desktop-managers/budgie.nix index 80511c4e9116..ff04917566f8 100644 --- a/nixos/modules/services/desktop-managers/budgie.nix +++ b/nixos/modules/services/desktop-managers/budgie.nix @@ -156,6 +156,9 @@ in fi ''; + # https://docs.buddiesofbudgie.org/10.10/developer/workflow/building-budgie-desktop/#compositor-recommendations + programs.labwc.enable = mkDefault true; + environment.systemPackages = with pkgs; [ From 5df199b8a48fe37fb28b0556b0fa911faa2d4f94 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 23:09:01 +0800 Subject: [PATCH 07/14] nixos/budgie: Add supplemental tooling https://docs.buddiesofbudgie.org/10.10/developer/workflow/building-budgie-desktop/#supplemental-tooling --- .../modules/services/desktop-managers/budgie.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/nixos/modules/services/desktop-managers/budgie.nix b/nixos/modules/services/desktop-managers/budgie.nix index ff04917566f8..9e97cdab9e3c 100644 --- a/nixos/modules/services/desktop-managers/budgie.nix +++ b/nixos/modules/services/desktop-managers/budgie.nix @@ -158,6 +158,7 @@ in # https://docs.buddiesofbudgie.org/10.10/developer/workflow/building-budgie-desktop/#compositor-recommendations programs.labwc.enable = mkDefault true; + programs.gtklock.enable = mkDefault true; environment.systemPackages = with pkgs; @@ -165,6 +166,7 @@ in # Budgie Desktop. budgie-backgrounds budgie-control-center' + budgie-desktop-services (budgie-desktop-with-plugins.override { plugins = cfg.extraPlugins; }) budgie-desktop-view budgie-screensaver @@ -193,6 +195,17 @@ in mate.mate-system-monitor vlc + # Supplemental tooling. + # See budgie-desktop's with-runtime-dependencies meson option. + gammastep + grim + killall + slurp + swaybg + swayidle + wdisplays + wlopm + # Desktop themes. qogir-theme qogir-icon-theme @@ -243,6 +256,7 @@ in xdg.portal.enable = mkDefault true; # for BCC's Applications panel. xdg.portal.extraPortals = with pkgs; [ xdg-desktop-portal-gtk # provides a XDG Portals implementation. + xdg-desktop-portal-wlr # for screenshot and screencast. ]; xdg.portal.configPackages = mkDefault [ pkgs.budgie-desktop ]; @@ -277,6 +291,7 @@ in # Register packages for DBus. services.dbus.packages = [ budgie-control-center' + pkgs.budgie-desktop-services ]; # Register packages for udev. From 1e0f19379a67ea15904f67b5d03cada0b7d14cdd Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 20 Nov 2025 22:38:17 +0800 Subject: [PATCH 08/14] budgie-screensaver: drop No longer used by budgie-desktop. --- .../services/desktop-managers/budgie.nix | 4 - .../by-name/bu/budgie-screensaver/package.nix | 81 ------------------- pkgs/top-level/aliases.nix | 1 + 3 files changed, 1 insertion(+), 85 deletions(-) delete mode 100644 pkgs/by-name/bu/budgie-screensaver/package.nix diff --git a/nixos/modules/services/desktop-managers/budgie.nix b/nixos/modules/services/desktop-managers/budgie.nix index 9e97cdab9e3c..a1b975f2d66f 100644 --- a/nixos/modules/services/desktop-managers/budgie.nix +++ b/nixos/modules/services/desktop-managers/budgie.nix @@ -169,7 +169,6 @@ in budgie-desktop-services (budgie-desktop-with-plugins.override { plugins = cfg.extraPlugins; }) budgie-desktop-view - budgie-screensaver budgie-session # Required by Budgie Menu. @@ -240,9 +239,6 @@ in services.xserver.updateDbusEnvironment = true; programs.dconf.enable = true; - # Required by Budgie Screensaver. - security.pam.services.budgie-screensaver = { }; - # Required by Budgie's Polkit Dialog. security.polkit.enable = mkDefault true; diff --git a/pkgs/by-name/bu/budgie-screensaver/package.nix b/pkgs/by-name/bu/budgie-screensaver/package.nix deleted file mode 100644 index 59c6b9dbbe44..000000000000 --- a/pkgs/by-name/bu/budgie-screensaver/package.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - dbus-glib, - glib, - gnome-desktop, - gtk3, - intltool, - libgnomekbd, - libX11, - linux-pam, - meson, - ninja, - nix-update-script, - pkg-config, - systemd, - testers, - wrapGAppsHook3, - libxxf86vm, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "budgie-screensaver"; - version = "5.1.0"; - - src = fetchFromGitHub { - owner = "BuddiesOfBudgie"; - repo = "budgie-screensaver"; - rev = "v${finalAttrs.version}"; - hash = "sha256-N8x9hdbaMDisTbQPJedNO4UMLnCn+Q2hhm4udJZgQlc="; - }; - - outputs = [ - "out" - "man" - ]; - - nativeBuildInputs = [ - intltool - meson - ninja - pkg-config - wrapGAppsHook3 - ]; - - buildInputs = [ - dbus-glib - glib - gnome-desktop - gtk3 - libgnomekbd - libX11 - linux-pam - systemd - libxxf86vm - ]; - - # Fix GCC 14 build. - # https://hydra.nixos.org/build/282164464/nixlog/3 - env.NIX_CFLAGS_COMPILE = "-D_POSIX_C_SOURCE -Wno-error=implicit-function-declaration"; - - passthru = { - tests.version = testers.testVersion { - package = finalAttrs.finalPackage; - command = "budgie-screensaver-command --version"; - }; - - updateScript = nix-update-script { }; - }; - - meta = { - description = "Fork of old GNOME Screensaver for purposes of providing an authentication prompt on wake"; - homepage = "https://github.com/BuddiesOfBudgie/budgie-screensaver"; - changelog = "https://github.com/BuddiesOfBudgie/budgie-screensaver/releases/tag/v${finalAttrs.version}"; - license = lib.licenses.gpl2Only; - teams = [ lib.teams.budgie ]; - mainProgram = "budgie-screensaver"; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d2686039707a..87a447700925 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -390,6 +390,7 @@ mapAliases { brogue = warnAlias "Use 'brogue-ce' instead of 'brogue' for updated releases" brogue-ce; # Added 2025-10-04 btanks = throw "'btanks' has been removed as it's been unmaintained since 2010 and fails to build"; # Added 2025-11-29 buck = throw "'buck' has been removed has it was deprecated and archived upstream. Consider moving to buck2"; # Added 2026-01-16 + budgie-screensaver = throw "'budgie-screensaver' has been removed, no longer used by budgie-desktop."; # Added 2025-11-19 buildBowerComponents = throw "buildBowerComponents has been removed as bower was removed. It is recommended to migrate to yarn."; # Added 2025-09-17 buildGo123Module = throw "Go 1.23 is end-of-life, and 'buildGo123Module' has been removed. Please use a newer builder version."; # Added 2025-08-13 buildPlatform = warnAlias "'buildPlatform' has been renamed to/replaced by 'stdenv.buildPlatform'" stdenv.buildPlatform; # Converted to warning 2025-10-28 From 2ea7cdf2e9c927f3f0fc47dc7834c3b4762dfad9 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 19 Nov 2025 22:15:37 +0800 Subject: [PATCH 09/14] magpie: drop No longer used by budgie-desktop. --- .../services/desktop-managers/budgie.nix | 5 - pkgs/by-name/ma/magpie/package.nix | 188 ------------------ pkgs/top-level/aliases.nix | 1 + 3 files changed, 1 insertion(+), 193 deletions(-) delete mode 100644 pkgs/by-name/ma/magpie/package.nix diff --git a/nixos/modules/services/desktop-managers/budgie.nix b/nixos/modules/services/desktop-managers/budgie.nix index a1b975f2d66f..a32caa838779 100644 --- a/nixos/modules/services/desktop-managers/budgie.nix +++ b/nixos/modules/services/desktop-managers/budgie.nix @@ -290,11 +290,6 @@ in pkgs.budgie-desktop-services ]; - # Register packages for udev. - services.udev.packages = with pkgs; [ - magpie - ]; - # Shell integration for MATE Terminal. programs.bash.vteIntegration = true; programs.zsh.vteIntegration = true; diff --git a/pkgs/by-name/ma/magpie/package.nix b/pkgs/by-name/ma/magpie/package.nix deleted file mode 100644 index a63fd4dfff81..000000000000 --- a/pkgs/by-name/ma/magpie/package.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ - fetchFromGitHub, - runCommand, - lib, - fetchpatch, - stdenv, - pkg-config, - gnome-settings-daemon, - gettext, - gobject-introspection, - cairo, - colord, - lcms2, - pango, - json-glib, - libstartup_notification, - libcanberra, - ninja, - xvfb-run, - xkeyboard_config, - libxcvt, - libxkbfile, - libXdamage, - libxkbcommon, - libXtst, - libinput, - libdrm, - libgbm, - gsettings-desktop-schemas, - glib, - gtk3, - gnome-desktop, - pipewire, - libgudev, - libwacom, - mesa-gl-headers, - meson, - nix-update-script, - validatePkgConfig, - xorgserver, - python3, - wrapGAppsHook3, - gi-docgen, - sysprof, - testers, - libsysprof-capture, - desktop-file-utils, - libcap_ng, - graphene, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "magpie"; - version = "0.9.4"; - - outputs = [ - "out" - "dev" - "devdoc" - ]; - - src = fetchFromGitHub { - owner = "BuddiesOfBudgie"; - repo = "magpie"; - rev = "v${finalAttrs.version}"; - hash = "sha256-a8e0uzbS0HEH/0sOOnwIiQI0/BizKbpdlVdfb3IbmcU="; - }; - - 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"; - hash = "sha256-/npUE3idMSTVlFptsDpZmGWjZ/d2gqruVlJKq4eF4xU="; - }) - ]; - - mesonFlags = [ - "-Degl_device=true" - "-Dprofiler=true" - "-Ddocs=true" - ]; - - propagatedBuildInputs = [ - # required for pkg-config to detect magpie-clutter - json-glib - libXtst - libcap_ng - graphene - mesa-gl-headers - ]; - - nativeBuildInputs = [ - desktop-file-utils - gettext - libxcvt - meson - ninja - xvfb-run - pkg-config - python3 - validatePkgConfig - wrapGAppsHook3 - gi-docgen - xorgserver - ]; - - buildInputs = [ - cairo - glib - gnome-desktop - gnome-settings-daemon - gobject-introspection - gsettings-desktop-schemas - gtk3 - libcanberra - libdrm - libgbm - 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 does not install any .desktop files - substituteInPlace scripts/mesonPostInstall.sh --replace "update-desktop-database" "# update-desktop-database" - - # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3187 - substituteInPlace meson.build \ - --replace "dependency('sysprof-4')" "dependency('sysprof-6')" - ''; - - 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. - env.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 - ''; - - pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; - }; - - updateScript = nix-update-script { }; - }; - - meta = { - description = "Softish fork of Mutter 43.x"; - homepage = "https://github.com/BuddiesOfBudgie/magpie"; - changelog = "https://github.com/BuddiesOfBudgie/magpie/releases/tag/v${finalAttrs.version}"; - license = lib.licenses.gpl2Plus; - teams = [ lib.teams.budgie ]; - platforms = lib.platforms.linux; - pkgConfigModules = [ - "libmagpie-0" - "magpie-clutter-0" - "magpie-cogl-0" - "magpie-cogl-pango-0" - ]; - }; -}) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 87a447700925..a10b9f0cb61c 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1148,6 +1148,7 @@ mapAliases { MACS2 = throw "'MACS2' has been renamed to/replaced by 'macs2'"; # Converted to throw 2025-10-27 magma_2_6_2 = throw "'magma_2_6_2' has been removed, use the latest 'magma' package instead."; # Added 2025-07-20 magma_2_7_2 = throw "'magma_2_7_2' has been removed, use the latest 'magma' package instead."; # Added 2025-07-20 + magpie = throw "'magpie' has been removed, no longer used by budgie-desktop."; # Added 2025-11-19 mailcore2 = throw "'mailcore2' has been removed due to lack of upstream maintenance."; # Added 2025-06-09 mailnag = throw "mailnag has been removed because it has been marked as broken since 2022."; # Added 2025-10-12 mailnagWithPlugins = throw "mailnagWithPlugins has been removed because mailnag has been marked as broken since 2022."; # Added 2025-10-12 From fc7f7db23f1a935af1b46d925d12a9c8f6dbefd8 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 11 Jan 2026 19:54:49 +0800 Subject: [PATCH 10/14] budgie-analogue-clock-applet: Fix build with budgie-desktop 10.10.0 --- .../budgie-analogue-clock-applet/package.nix | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/bu/budgie-analogue-clock-applet/package.nix b/pkgs/by-name/bu/budgie-analogue-clock-applet/package.nix index d050b32d7ff1..67a757efa13d 100644 --- a/pkgs/by-name/bu/budgie-analogue-clock-applet/package.nix +++ b/pkgs/by-name/bu/budgie-analogue-clock-applet/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "budgie-analogue-clock-applet"; - version = "2.2"; + version = "2.2-unstable-2026-01-13"; src = fetchFromGitHub { owner = "samlane-ma"; repo = "analogue-clock-applet"; - rev = "v${finalAttrs.version}"; - hash = "sha256-8kqDEzcUqg/TvwpazYQt1oQDVC00fOxFLVsKYMDuV9I="; + rev = "22b04faeea8f95eb83ad96ae89529560811d76d9"; + hash = "sha256-8ZFExgE1aJ8XN4+ugSzI34UjdPHbtbhJ+3xetcLZ6sg="; }; nativeBuildInputs = [ @@ -38,18 +38,6 @@ stdenv.mkDerivation (finalAttrs: { libpeas2 ]; - postPatch = '' - # https://github.com/samlane-ma/analogue-clock-applet/issues/7 - substituteInPlace budgie-analogue-clock-widget/src/meson.build \ - --replace-fail "dependency('budgie-raven-plugin-1.0')" "dependency('budgie-raven-plugin-2.0')" - ''; - - mesonFlags = [ - # The meson option actually enables libpeas2 support - # https://github.com/BuddiesOfBudgie/budgie-desktop/issues/749 - "-Dfor-wayland=true" - ]; - passthru = { updateScript = nix-update-script { }; }; From 149da5b57be50fe138e10fcb4a3edb7b4b6f266c Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 11 Jan 2026 19:58:10 +0800 Subject: [PATCH 11/14] budgie-systemmonitor-applet: Fix build with budgie-desktop 10.10.0 --- pkgs/by-name/bu/budgie-systemmonitor-applet/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/bu/budgie-systemmonitor-applet/package.nix b/pkgs/by-name/bu/budgie-systemmonitor-applet/package.nix index 462a6daa5bf8..3c6aefe451c5 100644 --- a/pkgs/by-name/bu/budgie-systemmonitor-applet/package.nix +++ b/pkgs/by-name/bu/budgie-systemmonitor-applet/package.nix @@ -5,6 +5,7 @@ fetchFromGitHub, glib, gtk3, + gtk-layer-shell, libgee, libgtop, libpeas2, @@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: { budgie-desktop glib gtk3 + gtk-layer-shell libgee libgtop libpeas2 @@ -53,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: { # https://github.com/prateekmedia/budgie-systemmonitor-applet/issues/4 substituteInPlace meson.build \ --replace-fail "dependency('libpeas-1.0', version: '>= 1.8.0')" "dependency('libpeas-2')" \ - --replace-fail "dependency('budgie-1.0', version: '>= 2')" "dependency('budgie-2.0')" + --replace-fail "dependency('budgie-1.0', version: '>= 2')" "dependency('budgie-3.0')" ''; passthru = { From 7ff9b85f91d8b03f41d82427ac5d802e95e3246e Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 11 Jan 2026 20:01:24 +0800 Subject: [PATCH 12/14] budgie-user-indicator-redux: Fix build with budgie-desktop 10.10.0 --- pkgs/by-name/bu/budgie-user-indicator-redux/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/bu/budgie-user-indicator-redux/package.nix b/pkgs/by-name/bu/budgie-user-indicator-redux/package.nix index 1da60058ec24..b98c03ccff4d 100644 --- a/pkgs/by-name/bu/budgie-user-indicator-redux/package.nix +++ b/pkgs/by-name/bu/budgie-user-indicator-redux/package.nix @@ -5,6 +5,7 @@ accountsservice, budgie-desktop, gtk3, + gtk-layer-shell, intltool, libgee, libpeas2, @@ -39,11 +40,17 @@ stdenv.mkDerivation (finalAttrs: { accountsservice budgie-desktop gtk3 + gtk-layer-shell libgee libpeas2 sassc ]; + postPatch = '' + substituteInPlace meson.build \ + --replace-fail "dependency('budgie-2.0', version: '>= 3')" "dependency('budgie-3.0')" + ''; + passthru = { updateScript = nix-update-script { }; }; From 0acb812ed87a515d6719fa59a66f2bf51a446203 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 11 Jan 2026 23:31:36 +0800 Subject: [PATCH 13/14] nixos/tests/budgie: Adapt to Budgie 10.10 --- nixos/tests/budgie.nix | 47 +++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/nixos/tests/budgie.nix b/nixos/tests/budgie.nix index a9bb55756797..b1aa2798e8b0 100644 --- a/nixos/tests/budgie.nix +++ b/nixos/tests/budgie.nix @@ -29,37 +29,38 @@ pkgs.budgie-analogue-clock-applet ]; }; + + environment.systemPackages = [ pkgs.wlrctl ]; }; + enableOCR = true; + testScript = { nodes, ... }: let user = nodes.machine.users.users.alice; - env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus DISPLAY=:0"; - su = command: "su - ${user.name} -c '${env} ${command}'"; + env = "XDG_RUNTIME_DIR=/run/user/${toString user.uid}"; in '' with subtest("Wait for login"): - machine.wait_for_x() + machine.wait_for_unit("display-manager.service") + machine.wait_for_file("/run/user/${toString user.uid}/wayland-0") machine.wait_until_succeeds('journalctl -t budgie-session-binary --grep "Entering running state"') - machine.wait_for_file("${user.home}/.Xauthority") - machine.succeed("xauth merge ${user.home}/.Xauthority") + machine.wait_until_succeeds('journalctl --grep "Compositor is fully initialized"') with subtest("Check that logging in has given the user ownership of devices"): # Change back to /dev/snd/timer after systemd-258.1 machine.succeed("getfacl -p /dev/dri/card0 | grep -q ${user.name}") with subtest("Check if Budgie session components actually start"): - for i in ["budgie-daemon", "budgie-panel", "budgie-wm", "bsd-media-keys", "gsd-xsettings"]: + for i in ["budgie-daemon", "budgie-panel", "labwc", "budgie-session", "swaybg", "swayidle"]: machine.wait_until_succeeds(f"pgrep {i}") + machine.wait_until_succeeds("pgrep -xf ${pkgs.gnome-settings-daemon}/libexec/gsd-sound") + machine.wait_until_succeeds("pgrep -xf ${pkgs.budgie-desktop-services}/bin/org.buddiesofbudgie.Services") machine.wait_until_succeeds("pgrep -xf /run/current-system/sw/bin/org.buddiesofbudgie.budgie-desktop-view") - # We don't check xwininfo for budgie-wm. - # See https://github.com/NixOS/nixpkgs/pull/216737#discussion_r1155312754 - machine.wait_for_window("budgie-daemon") - machine.wait_for_window("budgie-panel") with subtest("Check if various environment variables are set"): - cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf /run/current-system/sw/bin/budgie-wm)/environ" + cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf /run/current-system/sw/bin/budgie-panel)/environ" machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Budgie'") machine.succeed(f"{cmd} | grep 'BUDGIE_PLUGIN_DATADIR' | grep '${pkgs.budgie-desktop-with-plugins.pname}'") # From the nixos/budgie module @@ -67,28 +68,22 @@ with subtest("Open run dialog"): machine.send_key("alt-f2") - machine.wait_for_window("budgie-run-dialog") + machine.wait_until_succeeds("pgrep -xf budgie-run-dialog") machine.sleep(2) machine.screenshot("run_dialog") machine.send_key("esc") with subtest("Open Budgie Control Center"): - machine.succeed("${su "budgie-control-center >&2 &"}") - machine.wait_for_window("Budgie Control Center") - - with subtest("Lock the screen"): - machine.succeed("${su "budgie-screensaver-command -l >&2 &"}") - machine.wait_until_succeeds("${su "budgie-screensaver-command -q"} | grep 'The screensaver is active'") - machine.sleep(2) - machine.send_chars("${user.password}", delay=0.5) - machine.screenshot("budgie_screensaver") - machine.send_chars("\n") - machine.wait_until_succeeds("${su "budgie-screensaver-command -q"} | grep 'The screensaver is inactive'") - machine.sleep(2) + machine.succeed("su - ${user.name} -c '${env} budgie-control-center >&2 &'") + machine.wait_until_succeeds("su - ${user.name} -c '${env} wlrctl toplevel list | grep org.buddiesofbudgie.ControlCenter'") + machine.wait_for_text("Network|Ethernet|Control|Connected") with subtest("Open GNOME terminal"): - machine.succeed("${su "gnome-terminal"}") - machine.wait_for_window("${user.name}@machine: ~") + machine.succeed("su - ${user.name} -c '${env} gnome-terminal >&2 &'") + machine.wait_until_succeeds("su - ${user.name} -c '${env} wlrctl toplevel list | grep ${user.name}@machine'") + + with subtest("Check if labwc bridge is working"): + machine.wait_until_succeeds("cat /home/${user.name}/.config/budgie-desktop/labwc/rc.xml | grep Qogir") with subtest("Check if Budgie has ever coredumped"): machine.fail("coredumpctl --json=short | grep budgie") From 97734f31c0972c74e2817cb178bafe5acc585c50 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 14 Jan 2026 21:53:06 +0800 Subject: [PATCH 14/14] nixos/rl-2605: Mention Budgie 10.10 --- nixos/doc/manual/release-notes/rl-2605.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 8f099ccfb873..dd0dcc2b2494 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -126,6 +126,8 @@ See . - Cinnamon has been updated to 6.6, please check the [upstream announcement](https://www.linuxmint.com/rel_zena_whatsnew.php) for more details. +- Budgie has been updated to 10.10, please check the [upstream announcement](https://buddiesofbudgie.org/blog/budgie-10-10-released) for more details. + - `services.frp` now supports multiple instances through `services.frp.instances` to make it possible to run multiple frp clients or servers at the same time. - `hyphen` now supports over 40 language variants through `hyphenDicts` and now allows to enable all supported languages through `hyphenDicts.all`.