X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/ba63cd0158e197430b326c7ecac884b285bab1c0..f7960c6956325bd800ce90fe2d099fa2fe761e70:/base/.zshrc diff --git a/base/.zshrc b/base/.zshrc index d688d2e..2dd25ff 100644 --- a/base/.zshrc +++ b/base/.zshrc @@ -2,12 +2,6 @@ setopt autocd extendedglob unsetopt beep -### path -# typeset -U makes every array entry unique; /usr/{pkg,local} are bsdisms -typeset -U path -path=({~/,/,/usr/}sbin {~/,/,/usr/}bin /usr/pkg/{s,}bin /usr/X11R{7,6}/bin - /usr/local/{s,}bin $path) - ### history setopt appendhistory HISTFILE=~/.histfile @@ -48,7 +42,7 @@ alias vd="deactivate" ## be paranoid alias cp='cp -ip' alias mv='mv -i' -if [[ "$OSTYPE" = "freebsd" ]] { +if [[ "$OSTYPE" =~ '^freebsd' ]] { # don't confirm if only a few files are deleted alias rm='rm -I' } else { @@ -57,8 +51,8 @@ if [[ "$OSTYPE" = "freebsd" ]] { ### prompt setopt prompt_subst -local f -if [[ "$TERM" = "wsvt25" ]] { +local f= +if [[ "$OSTYPE" = "netbsd" && ( "$TERM" = "wsvt25" || "$TERM" =~ '^vt' ) ]] { # fix for wscons f="%F{white}" } else { @@ -66,7 +60,6 @@ if [[ "$TERM" = "wsvt25" ]] { } PROMPT='%F{$VICOL}%n'"$f"'@%F{$VICOL}%2m'"$f"'%(?../%F{red}$?'"$f"')%# ' RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}'"$f"' %T' -unset f ## change color based on zle vi mode function zle-line-init zle-keymap-select { @@ -79,16 +72,18 @@ 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)$p %c%u%%F{green}%r/%b$p/%%F{yellow}%S$p" +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*' check-for-staged-changes true zstyle ':vcs_info:git*' stagedstr "%F{blue}+" zstyle ':vcs_info:git*' unstagedstr "%F{red}*" +unset f + ### hooks -local _exectime +local _exectime= function precmd { # change terminal title print -Pn "\e]2;%(1j,%j,)%#${SSH_CLIENT+$USER@$HOST:}%~\e\\" @@ -107,29 +102,54 @@ function chpwd { l } -### freebsd-specific -if [[ "$OSTYPE" = "freebsd" ]] { - ## vt binds - bindkey "^[[H" beginning-of-line #Home - bindkey -a "^[[H" beginning-of-line - bindkey "^[[F" end-of-line #End - bindkey -a "^[[F" end-of-line +### system-specific configs and aliases +case "$OSTYPE"; in + freebsd*) + ## vt binds + bindkey "^[[H" beginning-of-line #Home + bindkey -a "^[[H" beginning-of-line + bindkey "^[[F" end-of-line #End + bindkey -a "^[[F" end-of-line - ## oss sound source - function s { sysctl hw.snd.default_unit${1:+\=$1} } + ## sound + function s { sysctl hw.snd.default_unit${1:+\=$1} } + alias vol mixer - ## install port dependencies from pkg (like pkgsrc `bmake bin-install') - function portpkg { - case "$1" { - build|run) - sudo pkg install -AU $(make ${1}-depends-list | - sed 's_/usr/ports/_ _' | tr -d '\n') - ;; - *) echo "Usage: \`portpkg ' in a port directory" - return 1;; + ## install port dependencies from pkg (like pkgsrc `bmake bin-install') + #XXX: should probably use package-depends where possible, breaks when + # port name is different to package name + # (eg. graphics/sdl20 == sdl2, devel/glib20 == glib2, etc) + function portpkg { + case "$1" { + build|run) + sudo pkg install -AU $(make ${1}-depends-list | + sed 's_/usr/ports/_ _' | tr -d '\n') + ;; + *) echo "Usage: \`portpkg ' in a port directory" + return 1;; + } + };; + netbsd) + ## sound + function s { + if [[ -z "$1" ]] { + ll /dev/mixer /dev/sound /dev/audio + return + } + for x in mixer sound audio; do + ln -sf /dev/$x"$1" /dev/$x + done } - } -} + function vol { + if [[ -z "$1" ]] { + for x in $(mixerctl -a | grep 'outputs\.master'); do + echo $x + done + return + } + mixerctl -w outputs.master"$2"="$1" + };; +esac # The following lines were added by compinstall zstyle ':completion:*' auto-description 'specify: %d'