{ config, lib, pkgs, ... }: let extras = config.my.system.cli.extras; in with lib; { options = { my.system.cli.extras = { enable = mkOption { default = true; type = with types; bool; }; pkgs = mkOption { default = with pkgs; [ htop silver-searcher jq ripgrep tmux ]; type = with types; listOf package; }; }; }; config = { programs.zsh = { enable = true; enableCompletion = true; }; environment.systemPackages = with pkgs; [ gnumake git vim killall unzip zsh ] ++ optionals (extras.enable) extras.pkgs; }; }