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
This commit is contained in:
polykernel 2022-03-20 16:22:56 -04:00 committed by GitHub
parent 57476b5d28
commit 46dc2e5d9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 4 deletions

View file

@ -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 =

View file

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

View file

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