{
  lib,
  config,
  ...
}: let
  cfg = config.shell;
in {
  imports = [./zsh.nix ./bat.nix ./btop.nix ./neovim.nix];

  options = {
    shell.enable = lib.mkEnableOption "my shell environment";
  };

  config = lib.mkIf cfg.enable {
    shell.zsh.enable = lib.mkDefault true;
    shell.neovim.enable = lib.mkDefault true;
    shell.btop.enable = lib.mkDefault true;
    shell.bat.enable = lib.mkDefault true;
  };
}