{ pkgs, lib, ... }: { programs.zsh = { enable = true; defaultKeymap = "emacs"; initExtra = '' # https://github.com/jeffreytse/zsh-vi-mode source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh ''; shellAliases = { g = "git"; }; }; programs.starship = { enable = true; settings = { directory.style = "blue"; format = lib.concatStrings [ "$username" "$hostname" "$directory" "$git_branch" "$git_state" "$git_status" "$cmd_duration" "$line_break" "$python" "$openstack" "$character" ]; character = { success_symbol = "[❯](purple)"; error_symbol = "[❯](red)"; vimcmd_symbol = "[❮](green)"; }; git_branch = { format = "[$branch]($style)"; style = "bright-black"; }; git_status = { format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; style = "cyan"; conflicted = "​"; untracked = "​"; modified = "​"; staged = "​"; renamed = "​"; deleted = "​"; stashed = "≡"; }; git_state = { format = "'([$state( $progress_current/$progress_total)]($style))' "; style = "bright-black"; }; cmd_duration = { format = "[$duration]($style) "; style = "yellow"; }; }; }; }