nixpkgs/nixos/modules/programs/vivid.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

64 lines
1.5 KiB
Nix
Raw Normal View History

2024-10-01 08:57:43 +02:00
{
pkgs,
config,
lib,
...
}:
let
cfg = config.programs.vivid;
in
{
options = {
programs.vivid = {
enable = lib.mkOption {
default = false;
description = "Whether to configure LS_COLORS with vivid.";
type = lib.types.bool;
};
package = lib.mkPackageOption pkgs "vivid" { example = "vivid"; };
theme = lib.mkOption {
default = "gruvbox-dark-soft";
description = "Theme to be used (see `vivid themes`)";
example = "solarized-dark";
type = lib.types.str;
};
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
programs =
let
interactiveShellInit = lib.mkAfter ''
export LS_COLORS="$(${lib.getExe cfg.package} generate ${cfg.theme})"
'';
enableLsColors = lib.mkOverride 999 false;
in
{
bash = {
inherit interactiveShellInit enableLsColors;
};
zsh = {
inherit interactiveShellInit enableLsColors;
};
};
assertions = [
{
assertion = !config.programs.bash.enableLsColors;
message = "`programs.vivid.enable` is incompatible with `programs.bash.enableLsColors`.";
}
{
assertion = !config.programs.zsh.enableLsColors;
message = "`programs.vivid.enable` is incompatible with `programs.zsh.enableLsColors`.";
}
];
};
meta.maintainers = with lib.maintainers; [ gdifolco ];
2024-10-01 08:57:43 +02:00
}