From 56da6f8ae2c685a2f16048ec89ac7846d22b5282 Mon Sep 17 00:00:00 2001 From: SebastianStork Date: Wed, 1 May 2024 17:48:02 +0200 Subject: [PATCH] Switch to the ls clone eza --- modules/home/shell/enhancement.nix | 54 ++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/modules/home/shell/enhancement.nix b/modules/home/shell/enhancement.nix index f27bd4d..3f902e9 100644 --- a/modules/home/shell/enhancement.nix +++ b/modules/home/shell/enhancement.nix @@ -7,25 +7,51 @@ options.myConfig.shell.enhancement.enable = lib.mkEnableOption ""; config = lib.mkIf config.myConfig.shell.enhancement.enable { - programs.lsd = { - enable = true; - enableAliases = true; - }; - - home.shellAliases.cat = let - theme = - { - dark = ""; - light = "GitHub"; - } - ."${config.myConfig.de.theme}"; - in "${lib.getExe pkgs.bat} --plain --theme=${theme}"; - programs.fzf.enable = true; programs.zoxide = { enable = true; options = ["--cmd cd"]; }; + + home.shellAliases = let + lsAliases = let + list = "${lib.getExe pkgs.eza} --header --group --time-style=long-iso --group-directories-first --sort=name --icons=auto --git --git-repos-no-status --binary"; + flagCombos = lib.crossLists (a: b: "${a}${b}") [["" "a"] ["" "d" "f"]]; + getFlags = str: + lib.concatStringsSep " " (lib.forEach (lib.stringToCharacters str) (x: + { + a = "--all"; + d = "--only-dirs"; + f = "--only-files"; + } + .${x})); + flaggedAliases = lib.concatMapAttrs (name: value: { + "l${name}" = "l ${value}"; + "ll${name}" = "ll ${value}"; + "lt${name}" = "lt ${value}"; + }) (lib.genAttrs flagCombos (str: "${getFlags str}")); + in + flaggedAliases + // { + ls = "l"; + l = "${list} --oneline --dereference"; + ll = "${list} --long"; + lt = "${list} --tree"; + }; + + catAlias = let + theme = + { + dark = ""; + light = "GitHub"; + } + ."${config.myConfig.de.theme}"; + in {cat = "${lib.getExe pkgs.bat} --plain --theme=${theme}";}; + in + lib.mkMerge [ + lsAliases + catAlias + ]; }; }