Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions generated/all-maintainers.nix
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,11 @@
githubId = 63157919;
name = "Alexander";
};
sand4rt = {
github = "sand4rt";
githubId = 17591696;
name = "Sander";
};
skiletro = {
email = "git@skilet.ro";
github = "skiletro";
Expand Down
53 changes: 53 additions & 0 deletions modules/lsd/hm.nix
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for reference; https://github.com/lsd-rs/lsd/blob/main/doc/samples/colors-sample.yaml

What value does this explicit theme provide over the LS_COLORS environment variable, which we support due to #560?

CC: @arunoruto, @i-am-logger, @jeanlucthumm, @tuxiqae

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess something like coloring git repos differently is not supported by LS_COLORS.
But even the maintainers suggest using LS_COLORS for most of the things: lsd-rs/lsd#402

@sand4rt can you take a look at the list here and make a comparison with theming options of lsd?
https://www.bigsoft.co.uk/blog/2008/04/11/configuring-ls_colors

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arunoruto This isn’t about styling files and directories—that’s what LS_COLORS handles, as the maintainer mentioned. This is about customizing the colors of specific lsd UI components, such as git status indicators or tree edges. The config for these components does not conflict with LS_COLORS.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems about right, I thought LS_COLORS themes more than just the folders, but maybe that depends on the ls binary being used!
have you tested how it looks like when both vivid and lsd themes are on? Would be nice if the themes are consistent :)

Copy link
Copy Markdown
Author

@sand4rt sand4rt Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah i use both vivid and lsd

Copy link
Copy Markdown
Member

@trueNAHO trueNAHO Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah i use both vivid and lsd

Could you provide demonstrative screenshots for the following cases:

vivid (LS_COLOR) lsd
disabled enabled
enabled disabled
enabled enabled

Consider temporarily modifying the following relevant testbeds for doing the screenshots:

  • nix run .#testbeds:lsd:dark
  • nix run .#testbeds:vivid:dark

Otherwise, if you want to do it locally, ensure the LS_COLOR environment variable is not accidentally kept on when it should be disabled. To be safe this probably requires a full logout and login.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vivid  lsd screenshot
disabled enabled screenshot-p1769291472
enabled disabled screenshot-p1769291723
enabled enabled screenshot-p1769291862

Copy link
Copy Markdown
Contributor

@arunoruto arunoruto Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the screenshots! Seems like LS_COLORS takes precedence in coloring the folders! But it also styles other aspects too!

Just a small nitpick and correct me if I am wrong, but maybe keep lsd enabled as a module, but disable the theming option of lsd. This would mean we run lsd with no theming, but with LS_COLORS active.

Copy link
Copy Markdown
Author

@sand4rt sand4rt Jan 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like LS_COLORS takes precedence in coloring the folders!

Yes, that’s correct.

Just a small nitpick and correct me if I am wrong, but maybe keep lsd enabled as a module, but disable the theming option of lsd. This would mean we run lsd with no theming, but with LS_COLORS active.

Not sure if that makes sense.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this type of theming lsd is okay, maybe we should revisit #545.

Ideally, LS_COLORS covers everything without needing individual applications to explicitly extend its theming support, ensuring theme consistency by only relying on LS_COLORS.

However, I would also be fine with extending theming support. Let me know what you think.

Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{ mkTarget, ... }:
mkTarget {
config =
{ colors }:
{
programs.lsd.colors = with colors.withHashtag; {
user = base04;
group = base04;
permission = {
read = base04;
write = base03;
exec = base04;
exec-sticky = base02;
no-access = base01;
octal = base03;
acl = base03;
context = base03;
};
date = {
hour-old = base03;
day-old = base04;
older = base02;
};
size = {
none = base04;
small = base04;
medium = base04;
large = base09;
};
inode = {
valid = base03;
invalid = base02;
};
links = {
valid = base03;
invalid = base02;
};
tree-edge = base02;
git-status = {
default = base03;
unmodified = base03;
ignored = base01;
new-in-index = base0C;
new-in-workdir = base0C;
typechange = base0B;
deleted = base08;
renamed = base0C;
modified = base0A;
conflicted = base09;
};
};
};
}
6 changes: 6 additions & 0 deletions modules/lsd/meta.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{ lib, ... }:
{
name = "lsd";
homepage = "https://github.com/lsd-rs/lsd";
maintainers = [ lib.maintainers.sand4rt ];
}
10 changes: 10 additions & 0 deletions modules/lsd/testbeds/lsd.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{ lib, pkgs, ... }:
let
package = pkgs.lsd;
in
{
environment = {
loginShellInit = "${lib.getExe package} flake-parts/flake.nix";
systemPackages = [ package ];
};
}
5 changes: 5 additions & 0 deletions stylix/maintainers.nix
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@
github = "rwxae";
githubId = 63157919;
};
sand4rt = {
name = "Sander";
github = "sand4rt";
githubId = 17591696;
};
skiletro = {
email = "git@skilet.ro";
name = "jamie";
Expand Down