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 ); 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 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'") ''; 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 = [