{ lib, config, pkgs, self, ... }: with lib; let psCfg = config.pub-solar; cfg = config.pub-solar.terminal-life; in { options.pub-solar.terminal-life = { enable = mkEnableOption "Life in black and white"; lite = mkOption { description = '' Enable a lite edition of terminal-life with less modules and a reduced package set. ''; default = false; type = types.bool; }; }; config = mkIf cfg.enable { programs.command-not-found.enable = false; # Needed to get zsh completion for system packages (e.g. systemd). environment.pathsToLink = ["/share/zsh"]; environment.shells = with pkgs; [ zsh ]; environment.systemPackages = with pkgs; [ screen ]; home-manager = with pkgs; pkgs.lib.setAttrByPath ["users" psCfg.user.name] { home.packages = [ watson ] ++ lib.optionals (!cfg.lite) [ ack asciinema bat blesh exa fd gh glow jump (nnn.overrideAttrs (o: { patches = (o.patches or []) ++ [ ./nnn/0001-feat-use-wasd-keybindings-for-jkli.patch ]; })) powerline silver-searcher watson ]; programs.neovim = import ./nvim { inherit config; inherit pkgs; inherit lib; }; programs.fzf = import ./fzf { inherit config; inherit pkgs; }; programs.zsh = import ./zsh { inherit config; inherit pkgs; inherit self; inherit lib; }; }; }; }