X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/fef6b2b53013bce95a0b0d99a3c2c928665416b1..f7960c6956325bd800ce90fe2d099fa2fe761e70:/base/.zshrc diff --git a/base/.zshrc b/base/.zshrc index 0fee297..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 { @@ -89,7 +83,7 @@ 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\\" @@ -108,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'