system/home/progs/exa.nix

36 lines
763 B
Nix

{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.progs.exa;
zsh = config.shell.zsh;
exaPackage = pkgs.exa.override { gitSupport = false; };
defaultArgs = "--icons --classify";
bin = "${exaPackage}/bin/exa ${defaultArgs}";
in
{
options.progs.exa = {
enable = mkOption {
type = types.bool;
default = false;
description = "Add and configure exa, a modern replacement for ls";
};
};
config = mkIf cfg.enable {
programs.exa = {
enable = true;
package = exaPackage;
};
programs.zsh.shellAliases = mkIf zsh.enable rec {
ls = "${bin} --oneline";
la = "${ls} --all";
lt = "${bin} --tree --level=3";
ll = "${bin} --long --header";
lla = "${ll} --all";
};
};
}