at 23.11-pre 1.0 kB view raw
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}