readline: optionally place config file in XDG dir

Based on PR #4189
This commit is contained in:
Shaw Vrana 2024-03-27 16:03:27 -07:00 committed by Robert Helgesson
parent 179f6acaf7
commit 3142bdcc47
No known key found for this signature in database
GPG Key ID: 96E745BD17AA17ED
4 changed files with 49 additions and 4 deletions

View File

@ -473,6 +473,12 @@ in
will be printed when the user configuration is being built.
'';
};
home.preferXdgDirectories = mkEnableOption "" // {
description = ''
Whether to make programs use XDG directories whenever supported.
'';
};
};
config = {

View File

@ -68,8 +68,8 @@ in {
};
};
config = mkIf cfg.enable {
home.file.".inputrc".text = let
config = mkIf cfg.enable (let
finalConfig = let
configStr = concatStringsSep "\n"
(optional cfg.includeSystemConfig "$include /etc/inputrc"
++ mapAttrsToList mkSetVariableStr cfg.variables
@ -80,5 +80,13 @@ in {
${configStr}
${cfg.extraConfig}
'';
};
in mkMerge [
(mkIf (!config.home.preferXdgDirectories) {
home.file.".inputrc".text = finalConfig;
})
(mkIf config.home.preferXdgDirectories {
xdg.configFile.inputrc.text = finalConfig;
home.sessionVariables.INPUTRC = "${config.xdg.configHome}/inputrc";
})
]);
}

View File

@ -1 +1,4 @@
{ readline-using-all-options = ./using-all-options.nix; }
{
readline-using-all-options = ./using-all-options.nix;
readline-prefer-xdg-dirs = ./prefer-xdg-dirs.nix;
}

View File

@ -0,0 +1,28 @@
{ ... }:
{
home.preferXdgDirectories = true;
programs.readline = {
enable = true;
variables.bell-style = "audible";
};
nmt.script = ''
assertFileContent \
home-files/.config/inputrc \
${
builtins.toFile "readline-expected" ''
# Generated by Home Manager.
$include /etc/inputrc
set bell-style audible
''
}
assertFileContains \
home-path/etc/profile.d/hm-session-vars.sh \
'export INPUTRC="/home/hm-user/.config/inputrc"'
'';
}