1{ config, lib, pkgs, ... }:
2
3let
4 cfg = config.programs.iay;
5 inherit (lib) mkEnableOption mkIf mkOption mkPackageOptionMD optionalString types;
6in {
7 options.programs.iay = {
8 enable = mkEnableOption (lib.mdDoc "iay");
9 package = mkPackageOptionMD pkgs "iay" {};
10
11 minimalPrompt = mkOption {
12 type = types.bool;
13 default = false;
14 description = lib.mdDoc "Use minimal one-liner prompt.";
15 };
16 };
17
18 config = mkIf cfg.enable {
19 programs.bash.promptInit = ''
20 if [[ $TERM != "dumb" && (-z $INSIDE_EMACS || $INSIDE_EMACS == "vterm") ]]; then
21 PS1='$(iay ${optionalString cfg.minimalPrompt "-m"})'
22 fi
23 '';
24
25 programs.zsh.promptInit = ''
26 if [[ $TERM != "dumb" && (-z $INSIDE_EMACS || $INSIDE_EMACS == "vterm") ]]; then
27 autoload -Uz add-zsh-hook
28 _iay_prompt() {
29 PROMPT="$(iay -z ${optionalString cfg.minimalPrompt "-m"})"
30 }
31 add-zsh-hook precmd _iay_prompt
32 fi
33 '';
34 };
35
36 meta.maintainers = pkgs.iay.meta.maintainers;
37}