X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/f7960c6956325bd800ce90fe2d099fa2fe761e70..54ecedc959282cb027a81f7954543773e61c199c:/base/.zshrc diff --git a/base/.zshrc b/base/.zshrc index 2dd25ff..393d229 100644 --- a/base/.zshrc +++ b/base/.zshrc @@ -29,10 +29,30 @@ zle -N down-line-or-beginning-search alias h="history -25" alias j="jobs -l" alias l="ls -AF" -alias ll="ls -lAFho" +if [[ "$OSTYPE" =~ '^(free|net)bsd' ]] { + alias ll="ls -lAFho" +} else { + alias ll="ls -lAFh" +} ## ps -local p="ps -aSdxwwouser=USR -ogroup=GRP -opid,nice=N \ - -o%cpu,%mem,tt,stat,start=START -oetime,command | ${PAGER:-more} -Se" +local p="" +if { which pstree >/dev/null 2>&1 && [[ ! "$(readlink -f $(which pstree))" =~ "/busybox" ]] } { + p="pstree -wg3" +} elif [[ "$OSTYPE" =~ '^freebsd' ]] { + p="ps -aSdfxwwouser=USR -ogroup=GRP -opid,nice=NI \ + -o%cpu,%mem,tty,stat,start=START -oetime,command" +} elif [[ "$(readlink -f $(which ps))" =~ "/busybox" ]] { + # busybox compatible + p="ps -eouser='USR ' -ogroup='GRP ' \ + -opid=' PID' -onice=' NI' -ovsz=' MEM' \ + -otty,stat,etime,comm" +} else { + # XXX: untested, posix + # TODO: support gnu ps + p="ps -eouser=USR -ogroup=GRP -opid,nice=NI \ + -opcpu=CPU -ovsz=MEM -otty,stat,etime,comm" +} +p="$p | ${PAGER:-more} -Se" alias pa="$p" alias spa="sudo $p" unset p @@ -46,20 +66,23 @@ if [[ "$OSTYPE" =~ '^freebsd' ]] { # don't confirm if only a few files are deleted alias rm='rm -I' } else { + # TODO: similar behavior for non-freebsd alias rm='rm -i' } ### prompt setopt prompt_subst -local f= -if [[ "$OSTYPE" = "netbsd" && ( "$TERM" = "wsvt25" || "$TERM" =~ '^vt' ) ]] { - # fix for wscons - f="%F{white}" -} else { - f="%f" -} -PROMPT='%F{$VICOL}%n'"$f"'@%F{$VICOL}%2m'"$f"'%(?../%F{red}$?'"$f"')%# ' -RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}'"$f"' %T' +# DEPR: color reset added to NetBSD in PR/53245, following is not needed for recent releases +#local f= +#XXX: can't think of a way to tell if ssh client is on wscons, just kludge 24/7 +#if [[ "$OSTYPE" = "netbsd" && ( "$TERM" =~ "^wsvt" || "$TERM" =~ '^vt' ) ]] { +# # fix for wscons +# f="%F{white}" +#} else { +# f="%f" +#} +PROMPT='%F{$VICOL}%n%f@%F{$VICOL}%2m%f%(?../%F{red}$?%f)%# ' +RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}%f %T' ## change color based on zle vi mode function zle-line-init zle-keymap-select { @@ -72,15 +95,15 @@ zle -N zle-keymap-select ## vcs autoload -Uz vcs_info zstyle ':vcs_info:*' enable git -zstyle ':vcs_info:git*' formats '%c%u%%F{green}%r/%b%%F{white}/%%F{yellow}%S%'"$f" -zstyle ':vcs_info:git*' actionformats '%%F{red}(%a)'"$f"' %c%u%%F{green}%r/%b'"$f"'/%%F{yellow}%S'"$f" +zstyle ':vcs_info:git*' formats '%c%u%%F{green}%r/%b%%F{white}/%%F{yellow}%S%%f' +zstyle ':vcs_info:git*' actionformats '%%F{red}(%a)%f %c%u%%F{green}%r/%b%f/%%F{yellow}%S%f' #zstyle ':vcs_info:git*' check-for-changes true #too slow -zstyle ':vcs_info:git*:.dotfiles' check-for-changes true +zstyle ':vcs_info:git*:dotfiles' check-for-changes true zstyle ':vcs_info:git*' check-for-staged-changes true zstyle ':vcs_info:git*' stagedstr "%F{blue}+" zstyle ':vcs_info:git*' unstagedstr "%F{red}*" -unset f +#unset f ### hooks local _exectime= @@ -96,9 +119,11 @@ function preexec { # change terminal title to show command print -Pnf "\e]2;%s\e\\" "%#${SSH_CLIENT+$USER@$HOST:}$1" # save last exec time for bell + # XXX: does not run for blank cmdline _exectime=$SECONDS } function chpwd { + # echo dir on cwd change l } @@ -149,6 +174,9 @@ case "$OSTYPE"; in } mixerctl -w outputs.master"$2"="$1" };; + *) + ## sound + # TODO: test alsa/oss/sndio/portaudio/pulse in order of importance esac # The following lines were added by compinstall