dots/modules/home-manager/features/eza.nix
2025-09-17 11:47:17 +10:00

297 lines
6.4 KiB
Nix

{
config,
lib,
...
}:
let
feature = "eza";
in
{
config = lib.mkIf config.${feature}.enable {
programs.eza = {
enable = true;
extraOptions = [
"--long"
"--header"
"--group-directories-first"
];
git = true;
icons = "always";
theme = {
colourful = true;
filekinds = {
normal = {
foreground = "#BAC2DE";
};
directory = {
foreground = "#89B4FA";
};
symlink = {
foreground = "#89DCEB";
};
pipe = {
foreground = "#7F849C";
};
block_device = {
foreground = "#EBA0AC";
};
char_device = {
foreground = "#EBA0AC";
};
socket = {
foreground = "#585B70";
};
special = {
foreground = "#CBA6F7";
};
executable = {
foreground = "#A6E3A1";
};
mount_point = {
foreground = "#74C7EC";
};
};
perms = {
user_read = {
foreground = "#CDD6F4";
};
user_write = {
foreground = "#F9E2AF";
};
user_execute_file = {
foreground = "#A6E3A1";
};
user_execute_other = {
foreground = "#A6E3A1";
};
group_read = {
foreground = "#BAC2DE";
};
group_write = {
foreground = "#F9E2AF";
};
group_execute = {
foreground = "#A6E3A1";
};
other_read = {
foreground = "#A6ADC8";
};
other_write = {
foreground = "#F9E2AF";
};
other_execute = {
foreground = "#A6E3A1";
};
special_user_file = {
foreground = "#CBA6F7";
};
special_other = {
foreground = "#585B70";
};
attribute = {
foreground = "#A6ADC8";
};
};
size = {
major = {
foreground = "#A6ADC8";
};
minor = {
foreground = "#89DCEB";
};
number_byte = {
foreground = "#CDD6F4";
};
number_kilo = {
foreground = "#BAC2DE";
};
number_mega = {
foreground = "#89B4FA";
};
number_giga = {
foreground = "#CBA6F7";
};
number_huge = {
foreground = "#CBA6F7";
};
unit_byte = {
foreground = "#A6ADC8";
};
unit_kilo = {
foreground = "#89B4FA";
};
unit_mega = {
foreground = "#CBA6F7";
};
unit_giga = {
foreground = "#CBA6F7";
};
unit_huge = {
foreground = "#74C7EC";
};
};
users = {
user_you = {
foreground = "#CDD6F4";
};
user_root = {
foreground = "#F38BA8";
};
user_other = {
foreground = "#CBA6F7";
};
group_yours = {
foreground = "#BAC2DE";
};
group_other = {
foreground = "#7F849C";
};
group_root = {
foreground = "#F38BA8";
};
};
links = {
normal = {
foreground = "#89DCEB";
};
multi_link_file = {
foreground = "#74C7EC";
};
};
git = {
new = {
foreground = "#A6E3A1";
};
modified = {
foreground = "#F9E2AF";
};
deleted = {
foreground = "#F38BA8";
};
renamed = {
foreground = "#94E2D5";
};
typechange = {
foreground = "#F5C2E7";
};
ignored = {
foreground = "#7F849C";
};
conflicted = {
foreground = "#EBA0AC";
};
};
git_repo = {
branch_main = {
foreground = "#CDD6F4";
};
branch_other = {
foreground = "#CBA6F7";
};
git_clean = {
foreground = "#A6E3A1";
};
git_dirty = {
foreground = "#F38BA8";
};
};
security_context = {
colon = {
foreground = "#7F849C";
};
user = {
foreground = "#BAC2DE";
};
role = {
foreground = "#CBA6F7";
};
typ = {
foreground = "#585B70";
};
range = {
foreground = "#CBA6F7";
};
};
file_type = {
image = {
foreground = "#F9E2AF";
};
video = {
foreground = "#F38BA8";
};
music = {
foreground = "#A6E3A1";
};
lossless = {
foreground = "#94E2D5";
};
crypto = {
foreground = "#585B70";
};
document = {
foreground = "#CDD6F4";
};
compressed = {
foreground = "#F5C2E7";
};
temp = {
foreground = "#EBA0AC";
};
compiled = {
foreground = "#74C7EC";
};
build = {
foreground = "#585B70";
};
source = {
foreground = "#89B4FA";
};
};
punctuation = {
foreground = "#7F849C";
};
date = {
foreground = "#F9E2AF";
};
inode = {
foreground = "#A6ADC8";
};
blocks = {
foreground = "#9399B2";
};
header = {
foreground = "#CDD6F4";
};
octal = {
foreground = "#94E2D5";
};
flags = {
foreground = "#CBA6F7";
};
symlink_path = {
foreground = "#89DCEB";
};
control_char = {
foreground = "#74C7EC";
};
broken_symlink = {
foreground = "#F38BA8";
};
broken_path_overlay = {
foreground = "#585B70";
};
};
};
};
imports = [ ];
options.${feature}.enable = lib.mkEnableOption "enables ${feature}";
}