1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2025-02-02 06:15:03 +01:00

lsd: add support for icons.yaml

This update introduces support for icons.yaml in the lsd module,
enhancing the customization options for file icons.

Co-authored-by: pancho horrillo <pancho@pancho.name>
This commit is contained in:
Roberto Abdelkader Martínez Pérez 2025-01-21 13:12:40 +01:00 committed by GitHub
parent 9786661d57
commit 0b8df9eeb6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 55 additions and 0 deletions

View file

@ -65,6 +65,30 @@ in {
automatically set to `"custom"`.
'';
};
icons = mkOption {
type = yamlFormat.type;
default = { };
example = {
name = {
".trash" = "";
".cargo" = "";
};
extension = {
"go" = "";
"hs" = "";
};
filetype = {
"dir" = "📂";
"file" = "📄";
};
};
description = ''
Configuration written to {file}`$XDG_CONFIG_HOME/lsd/icons.yaml`. See
<https://github.com/lsd-rs/lsd?tab=readme-ov-file#icon-theme-file-content> for
details.
'';
};
};
config = mkIf cfg.enable {
@ -91,6 +115,10 @@ in {
source = yamlFormat.generate "lsd-colors" cfg.colors;
};
xdg.configFile."lsd/icons.yaml" = mkIf (cfg.icons != { }) {
source = yamlFormat.generate "lsd-icons" cfg.icons;
};
xdg.configFile."lsd/config.yaml" = mkIf (cfg.settings != { }) {
source = yamlFormat.generate "lsd-config" cfg.settings;
};

View file

@ -0,0 +1,9 @@
extension:
go:
hs:
filetype:
dir: 📂
file: 📄
name:
.cargo:
.trash:

View file

@ -26,6 +26,20 @@ with lib;
large = "dark_yellow";
};
};
icons = {
name = {
".trash" = "";
".cargo" = "";
};
extension = {
"go" = "";
"hs" = "";
};
filetype = {
"dir" = "📂";
"file" = "📄";
};
};
};
test.stubs.lsd = { };
@ -33,12 +47,16 @@ with lib;
nmt.script = ''
assertFileExists home-files/.config/lsd/config.yaml
assertFileExists home-files/.config/lsd/colors.yaml
assertFileExists home-files/.config/lsd/icons.yaml
assertFileContent \
home-files/.config/lsd/config.yaml \
${./example-settings-expected.yaml}
assertFileContent \
home-files/.config/lsd/colors.yaml \
${./example-colors-expected.yaml}
assertFileContent \
home-files/.config/lsd/icons.yaml \
${./example-icons-expected.yaml}
'';
};
}