aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix')
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix57
1 files changed, 57 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
new file mode 100644
index 00000000000..7f2e260e5df
--- /dev/null
+++ b/nixpkgs/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
+ ''