diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2022-10-04 00:59:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-04 00:59:08 +0200 |
commit | e14d1e1bc93a047e96d4a4107b9c90c875cdc452 (patch) | |
tree | a003b85eb554142d35f3efe5c43587cb36c425e8 /pkgs | |
parent | 3413bc7d800ce97618751e072b8d3113efc8da37 (diff) | |
parent | cb0c70b38855278096bfab28bcf2fcd69cc8b407 (diff) |
Merge pull request #192969 from jtojnar/extra-gsettings-strict
GNOME/Cinnamon/Pantheon: Clean up GSettings overrides and make strict
Diffstat (limited to 'pkgs')
4 files changed, 82 insertions, 23 deletions
diff --git a/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix index a3456755045f7..a8d46d578996c 100644 --- a/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix @@ -20,6 +20,8 @@ let + inherit (lib) concatMapStringsSep; + gsettingsOverridePackages = [ # from mint-artwork @@ -38,22 +40,21 @@ let in -with lib; - # TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this -runCommand "cinnamon-gsettings-overrides" { } +runCommand "cinnamon-gsettings-overrides" { preferLocalBuild = true; } '' - schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides" + schema_dir="$data_dir/glib-2.0/schemas" - mkdir -p $schema_dir + mkdir -p "$schema_dir" - ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages} + ${concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages} - chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides + chmod -R a+w "$data_dir" - cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF + cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF ${extraGSettingsOverrides} EOF - ${glib.dev}/bin/glib-compile-schemas $schema_dir + ${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir" '' diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix index a0561ca00300b..1169bae6d67e4 100644 --- a/pkgs/desktops/gnome/default.nix +++ b/pkgs/desktops/gnome/default.nix @@ -123,6 +123,8 @@ lib.makeScope pkgs.newScope (self: with self; { withGnome = true; }; + nixos-gsettings-overrides = callPackage ./nixos/gsettings-overrides { }; + rygel = callPackage ./core/rygel { }; simple-scan = callPackage ./core/simple-scan { }; diff --git a/pkgs/desktops/gnome/nixos/gsettings-overrides/default.nix b/pkgs/desktops/gnome/nixos/gsettings-overrides/default.nix new file mode 100644 index 0000000000000..e75e2eb1e8874 --- /dev/null +++ b/pkgs/desktops/gnome/nixos/gsettings-overrides/default.nix @@ -0,0 +1,55 @@ +{ lib +, runCommand +, gsettings-desktop-schemas +, gnome-shell +, glib +, gnome-flashback +, nixos-artwork +, nixos-background-light ? nixos-artwork.wallpapers.simple-blue +, nixos-background-dark ? nixos-artwork.wallpapers.simple-dark-gray +, extraGSettingsOverrides ? "" +, extraGSettingsOverridePackages ? [ ] +, favoriteAppsOverride ? "" +, flashbackEnabled ? false +}: + +let + + inherit (lib) concatMapStringsSep; + + gsettingsOverridePackages = [ + gsettings-desktop-schemas + gnome-shell + ] ++ lib.optionals flashbackEnabled [ + gnome-flashback + ] ++ extraGSettingsOverridePackages; + + gsettingsOverrides = '' + [org.gnome.desktop.background] + picture-uri='file://${nixos-background-light.gnomeFilePath}' + picture-uri-dark='file://${nixos-background-dark.gnomeFilePath}' + + [org.gnome.desktop.screensaver] + picture-uri='file://${nixos-background-dark.gnomeFilePath}' + + ${favoriteAppsOverride} + + ${extraGSettingsOverrides} + ''; + +in + +runCommand "gnome-gsettings-overrides" { preferLocalBuild = true; } '' + data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides" + schema_dir="$data_dir/glib-2.0/schemas" + mkdir -p "$schema_dir" + + ${concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages} + + chmod -R a+w "$data_dir" + cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF + ${gsettingsOverrides} + EOF + + ${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir" +'' diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix index dd6b10f5c830a..41c4c099cf2d9 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix @@ -10,11 +10,13 @@ , elementary-dock , gsettings-desktop-schemas , extraGSettingsOverrides ? "" -, extraGSettingsOverridePackages ? [] +, extraGSettingsOverridePackages ? [ ] }: let + inherit (lib) concatMapStringsSep; + gsettingsOverridePackages = [ elementary-dock gnome-settings-daemon @@ -27,25 +29,24 @@ let in -with lib; # TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this -runCommand "elementary-gsettings-desktop-schemas" {} +runCommand "elementary-gsettings-desktop-schemas" { preferLocalBuild = true; } '' - schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas - - mkdir -p $schema_dir + data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides" + schema_dir="$data_dir/glib-2.0/schemas" - cp -rf ${glib.getSchemaPath gala}/*.gschema.override $schema_dir + mkdir -p "$schema_dir" + cp -rf "${glib.getSchemaPath gala}"/*.gschema.override "$schema_dir" - ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml $schema_dir\n") gsettingsOverridePackages} + ${concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"$schema_dir\"") gsettingsOverridePackages} - chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides - cp ${glib.getSchemaPath elementary-default-settings}/* $schema_dir + chmod -R a+w "$data_dir" + cp "${glib.getSchemaPath elementary-default-settings}"/* "$schema_dir" - cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF - ${extraGSettingsOverrides} - EOF + cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF + ${extraGSettingsOverrides} + EOF - ${glib.dev}/bin/glib-compile-schemas $schema_dir + ${glib.dev}/bin/glib-compile-schemas $schema_dir '' |