gtk: fix missing newline in formatted config (#2809)

The conversion from `concatMapStrings` to `concatStringsSep` introduced in https://github.com/nix-community/home-manager/pull/2481
creates an unintended behavior change where the formatted config does not end in a newline.[1]
This is problematic for manipulation at the Nix level. In particular, this cause a regression in
the generation of gtk2 settings due to concatenated of the formatted config and `gtk2.extraConfig`
without a newline in between.

This commit restores `concatMapStrings` to match the previous behavior and adds a newline to
the final string for the generated gtk2 config. The test case for gtk2-basic-config
was also updated to check behavior at concatenation boundaries.

[1] - https://github.com/nix-community/home-manager/pull/2481#discussion_r830648706
main
polykernel 2 years ago committed by GitHub
parent 57476b5d28
commit 46dc2e5d9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      modules/misc/gtk.nix
  2. 3
      tests/modules/misc/gtk/gtk2-basic-config-expected.conf
  3. 1
      tests/modules/misc/gtk/gtk2-basic-config.nix

@ -250,8 +250,8 @@ in {
];
home.file.${cfg2.configLocation}.text =
concatStringsSep "\n" (mapAttrsToList formatGtk2Option gtkIni)
+ cfg2.extraConfig;
concatMapStrings (l: l + "\n") (mapAttrsToList formatGtk2Option gtkIni)
+ cfg2.extraConfig + "\n";
home.sessionVariables.GTK2_RC_FILES = cfg2.configLocation;
@ -262,7 +262,7 @@ in {
mkIf (cfg3.extraCss != "") { text = cfg3.extraCss; };
xdg.configFile."gtk-3.0/bookmarks" = mkIf (cfg3.bookmarks != [ ]) {
text = concatStringsSep "\n" cfg3.bookmarks;
text = concatMapStrings (l: l + "\n") cfg3.bookmarks;
};
xdg.configFile."gtk-4.0/settings.ini".text =

@ -1 +1,2 @@
gtk-can-change-accels = 1
gtk-theme-name = "Adwaita"
gtk-can-change-accels = 1

@ -6,6 +6,7 @@ with lib;
config = {
gtk = {
enable = true;
theme.name = "Adwaita";
gtk2.extraConfig = "gtk-can-change-accels = 1";
};

Loading…
Cancel
Save