From ee4379efb74ebb9d874bc9b53fd923e36b400d89 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 20 Jun 2026 12:28:19 +0000 Subject: [PATCH 1/4] cinnamon-session: 6.6.3 -> 6.6.4 https://github.com/linuxmint/cinnamon-session/compare/6.6.3...6.6.4 --- pkgs/by-name/ci/cinnamon-session/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ci/cinnamon-session/package.nix b/pkgs/by-name/ci/cinnamon-session/package.nix index d64794db4bd6..1628fa160e20 100644 --- a/pkgs/by-name/ci/cinnamon-session/package.nix +++ b/pkgs/by-name/ci/cinnamon-session/package.nix @@ -39,13 +39,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "cinnamon-session"; - version = "6.6.3"; + version = "6.6.4"; src = fetchFromGitHub { owner = "linuxmint"; repo = "cinnamon-session"; tag = finalAttrs.version; - hash = "sha256-fmeLywpM4QhgyiX68E+4vosUK2WKGVJ1Cx8pYdOnb+k="; + hash = "sha256-rx7+tBXQ9kvnRYNxgF1QXyhk9NamUIjti/6GGrACYU0="; }; buildInputs = [ From 774c9fd91ae2d188a191315324877db404d10d67 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Jun 2026 00:13:53 +0800 Subject: [PATCH 2/4] nixos/cinnamon: Add miscellaneous packages to systemd.packages ref: https://github.com/linuxmint/cinnamon-session/commit/e01c8c37f6bb5458cc8f38ad73e23d232e7f932a ref: https://gitlab.freedesktop.org/xdg/xdg-user-dirs/-/commit/2a63d3f0ffb76135790bb1168a3270a599904380 Also add xdg-user-dirs-gtk as done in linuxmint. --- .../modules/services/x11/desktop-managers/cinnamon.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix index 738aaa000a79..2da09e9cb9bc 100644 --- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix +++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix @@ -123,6 +123,15 @@ in nemo-with-extensions xapp ]; + systemd.packages = + with pkgs; + [ + cinnamon-session + ] + ++ utils.removePackagesByName [ + xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ + xdg-user-dirs-gtk + ] config.environment.cinnamon.excludePackages; services.cinnamon.apps.enable = mkDefault true; services.gnome.evolution-data-server.enable = true; services.gnome.glib-networking.enable = true; @@ -218,6 +227,7 @@ in mint-y-icons xapp # provides some xapp-* icons xapp-symbolic-icons + xdg-user-dirs-gtk ] config.environment.cinnamon.excludePackages ); From a8f1842cbbbc8af0e76267a9379f3f2e238c6b92 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Jun 2026 00:05:14 +0800 Subject: [PATCH 3/4] nixos/display-managers: Mark cinnamon systemd aware ref: https://github.com/linuxmint/cinnamon-session/commit/e01c8c37f6bb5458cc8f38ad73e23d232e7f932a --- nixos/modules/services/x11/display-managers/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 2f9a8dcb210a..d5c1277a459c 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -48,7 +48,7 @@ let IFS=: for i in $XDG_CURRENT_DESKTOP; do case $i in - KDE|GNOME|Pantheon|Hyprland|niri|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;; + KDE|GNOME|Pantheon|Hyprland|niri|X-Cinnamon|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;; *) ;; esac done From 514e39c3ca49b7d159bd4f1e85b2a609ec237c35 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 21 Jun 2026 15:54:28 +0800 Subject: [PATCH 4/4] nixos/tests/cinnamon: Check for xdg-desktop-portal xdg-desktop-portal.service is part of graphical-session.target. --- nixos/tests/cinnamon-wayland.nix | 9 +++++++-- nixos/tests/cinnamon.nix | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/nixos/tests/cinnamon-wayland.nix b/nixos/tests/cinnamon-wayland.nix index 632ab53cc529..d26d50dd9dc6 100644 --- a/nixos/tests/cinnamon-wayland.nix +++ b/nixos/tests/cinnamon-wayland.nix @@ -51,8 +51,9 @@ machine.wait_until_succeeds("${eval "Main.runState"} | grep -q 'true,..2'") with subtest("Check if Cinnamon components actually start"): - for i in ["csd-media-keys", "xapp-sn-watcher", "nemo-desktop"]: - machine.wait_until_succeeds(f"pgrep -f {i}") + # https://unix.stackexchange.com/a/74186 + for i in ["[c]sd-media-keys", "[x]app-sn-watcher", "[n]emo-desktop"]: + machine.wait_until_succeeds(f"pgrep -f \"{i}\"") machine.wait_until_succeeds("journalctl -b --grep 'Loaded applet menu@cinnamon.org'") machine.wait_until_succeeds("journalctl -b --grep 'calendar@cinnamon.org: Calendar events supported'") @@ -84,6 +85,10 @@ machine.wait_until_succeeds("${eval "global.display.focus_window.wm_class"} | grep -i 'gnome-terminal'") machine.sleep(2) + # Only can be tested after opening the above apps. + with subtest("Check if x-d-p actually starts"): + machine.wait_until_succeeds("pgrep -xf \"${pkgs.xdg-desktop-portal}/libexec/xdg-desktop-portal\"") + with subtest("Check if Cinnamon has ever coredumped"): machine.fail("coredumpctl --json=short | grep -E 'cinnamon|nemo'") ''; diff --git a/nixos/tests/cinnamon.nix b/nixos/tests/cinnamon.nix index d8b52c261a42..da8bf8847a4b 100644 --- a/nixos/tests/cinnamon.nix +++ b/nixos/tests/cinnamon.nix @@ -62,8 +62,9 @@ machine.wait_until_succeeds("${eval "Main.runState"} | grep -q 'true,..2'") with subtest("Check if Cinnamon components actually start"): - for i in ["csd-media-keys", "cinnamon-killer-daemon", "xapp-sn-watcher", "nemo-desktop"]: - machine.wait_until_succeeds(f"pgrep -f {i}") + # https://unix.stackexchange.com/a/74186 + for i in ["[c]sd-media-keys", "[c]innamon-killer-daemon", "[x]app-sn-watcher", "[n]emo-desktop"]: + machine.wait_until_succeeds(f"pgrep -f \"{i}\"") machine.wait_until_succeeds("journalctl -b --grep 'Loaded applet menu@cinnamon.org'") machine.wait_until_succeeds("journalctl -b --grep 'calendar@cinnamon.org: Calendar events supported'") @@ -104,6 +105,10 @@ machine.sleep(2) machine.screenshot("cinnamon_virtual_keyboard") + # Only can be tested after opening the above apps. + with subtest("Check if x-d-p actually starts"): + machine.wait_until_succeeds("pgrep -xf \"${pkgs.xdg-desktop-portal}/libexec/xdg-desktop-portal\"") + with subtest("Check if Cinnamon has ever coredumped"): machine.fail("coredumpctl --json=short | grep -E 'cinnamon|nemo'") '';