36 lines
738 B
Nix
36 lines
738 B
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.progs.exa;
|
|
zsh = config.shell.zsh;
|
|
|
|
exaPackage = pkgs.exa-minimal;
|
|
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";
|
|
};
|
|
};
|
|
}
|