diff --git a/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix new file mode 100644 index 00000000000..7f2e260e5df --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, runCommand +, nixos-artwork +, glib +, gtk3 +, gsettings-desktop-schemas +, extraGSettingsOverrides ? "" +, extraGSettingsOverridePackages ? [] +, mint-artwork + +, muffin +, nemo +, xapps +, cinnamon-desktop +, cinnamon-session +, cinnamon-settings-daemon +, cinnamon-common +}: + +let + + gsettingsOverridePackages = [ + # from + mint-artwork + + # on + muffin + nemo + xapps + cinnamon-desktop + cinnamon-session + cinnamon-settings-daemon + cinnamon-common + gtk3 + ] ++ extraGSettingsOverridePackages; + +in + +with stdenv.lib; + +# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this +runCommand "cinnamon-gsettings-overrides" {} + '' + schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + + mkdir -p $schema_dir + + ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages} + + chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides + + cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF + ${extraGSettingsOverrides} + EOF + + ${glib.dev}/bin/glib-compile-schemas $schema_dir + '' diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix index cc748959767..e406da2b8e5 100644 --- a/pkgs/desktops/cinnamon/default.nix +++ b/pkgs/desktops/cinnamon/default.nix @@ -15,6 +15,7 @@ lib.makeScope pkgs.newScope (self: with self; { cinnamon-common = callPackage ./cinnamon-common { }; cinnamon-control-center = callPackage ./cinnamon-control-center { }; cinnamon-desktop = callPackage ./cinnamon-desktop { }; + cinnamon-gsettings-overrides = callPackage ./cinnamon-gsettings-overrides { }; cinnamon-menus = callPackage ./cinnamon-menus { }; cinnamon-translations = callPackage ./cinnamon-translations { }; cinnamon-screensaver = callPackage ./cinnamon-screensaver { };