config

OpenBSD system configuration
git clone git://jacobedwards.org/config
Log | Files | Refs | README

commit fa47f437b028295b88544049463e81276cabdae6
parent 4f8e617d62f8cc758075c35c7bfd7c7d055f369a
Author: Jacob R. Edwards <jacobouno@protonmail.com>
Date:   Sat, 26 Sep 2020 19:15:03 -0700

Rework aliases

aliases are now structured modularly where you can include sets of aliases and
functions easily.

Diffstat:
Daliases/.config/aliases | 130-------------------------------------------------------------------------------
Aaliases/.config/aliases/git | 9+++++++++
Aaliases/.config/aliases/main | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aaliases/.config/aliases/mpc | 33+++++++++++++++++++++++++++++++++
Aaliases/.config/aliases/pkg | 8++++++++
Aaliases/.config/aliases/util | 23+++++++++++++++++++++++
Mksh/.config/ksh.kshrc | 3++-
7 files changed, 154 insertions(+), 131 deletions(-)

diff --git a/aliases/.config/aliases b/aliases/.config/aliases @@ -1,130 +0,0 @@ -# shell functions - -if [ -f "$XDG_CONFIG_HOME/aliases.private" ]; then - . "$XDG_CONFIG_HOME/aliases.private" -fi - -# add flags, change name, etc: -alias pkill="pkill -x" -alias la="ls -A" -alias cmd="command" -alias mupdf="mupdf -I" -alias doas="doas -- " -alias man="man " -alias vim="vim -p" -alias startx="startx -- -retard" -alias getpass="command gp" - -# use EREs: -alias sed="sed -E" -alias grep="egrep" - -# short: -alias f="$EDITOR" -alias l="$PAGER" -alias x="startx" - -# clipboard: -alias grab="xclip -selection clipboard" -alias push="grab -out" - -# package management (openbsd): -alias pkg_add="pkg_add -xV" -alias pa="doas pkg_add" -alias pu="doas pkg_add -u" -alias pd="doas pkg_delete" -pq() { pkglocate "${@}*:*" | cut -d: -f1 | uniq ;} -alias pi="pkg_info" - -# git: -alias gP="git push" -alias gp="git pull" -alias ga="git add" -alias gc="git commit" -alias gd="git diff" -alias gdc="gd --cached" -alias gcc="git rev-list HEAD --count" - -# mpc: -alias m="mpc" -alias mp="m play" -alias mt="m toggle" -alias mk="m prev" -alias mj="m next" -alias ml="m playlist" -alias ms="m search" -alias mP="m searchplay any" -alias ma="m add" - -# get mpd settings -mpdconfig() { eval echo `grep $1 $XDG_CONFIG_HOME/mpd/mpd.conf | sed -E 's/.*"(.*)\"/\1/g'` ;} - -# grep mpc playlists -mgrep() { grep -h $@ `mpdconfig playlist_directory`/* | sort -u ;} - -# add current song to playlist(s) -mato() { - local track="`mpc current -f "%file%"`" - while [ $# -gt 0 ]; do - echo "$track" >> `mpdconfig playlist_directory`/$1.m3u - shift - done -} - -# mps wrapper to work in states directory -mps() { - local dir="`mpdconfig music_directory`/.states" - case $# - in - 0) ls -1 "$dir";; - 1) command mps -h;; - 2) command mps $1 $dir/$2;; - esac -} - -# search all history for `regex` -hs() { fc -nl 0 | egrep "$1" ;} - -# unset proxy variables -np() { unset ALL_PROXY; unset HTTP_PROXY ;} - -# sort human readable du output by size -dush() { du -sh $@ | sort -h ;} - -# redo last command when typing out of order -k() { fc -s ;} - -# reinitialize shell -self() { exec $0 ;} - -wQ() { webq "$*" ;} - -unalias r -r() { fc -s "$*" ;} - -# edit executable in PATH -fe() { f `which $@` ;} - -# use feed within FEED_DIR. -fed() { (builtin cd $FEED_DIR && feed $@) ;} - -# record directories visited. -cd() { builtin cd $@ && echo $PWD >> $PWDLOG ;} - -# filter chdir history keeping original line numbers. -lcd() { - awk -vhome="^$HOME" '$0 != last && $0 != ENVIRON["HOME"] {last=$0; \ - sub(home, "~", $0); printf "%d\t%s\n", FNR, $0 }' $PWDLOG -} - -# redo specified chdir. -rcd() { - local dir=`head -n ${1:?No index specified} $PWDLOG | tail -1` - cd ${dir:?Non-existent entry} && echo "$dir" -} - -# redo last chdir which matches regex. -rcd() { - local d="$(egrep $@ $PWDLOG | tail -1)" - cd ${d:?No match} -} diff --git a/aliases/.config/aliases/git b/aliases/.config/aliases/git @@ -0,0 +1,9 @@ +# git aliases + +alias gP="git push" +alias gp="git pull" +alias ga="git add" +alias gc="git commit" +alias gd="git diff" +alias gdc="gd --cached" +alias gcc="git rev-list HEAD --count" diff --git a/aliases/.config/aliases/main b/aliases/.config/aliases/main @@ -0,0 +1,79 @@ +# shell functions + +. $ALIASES/util + +include util +include private +include mpc +include git + +# reload aliases +alias load="include main" + +# add flags, change name, etc: +alias pkill="pkill -x" +alias la="ls -A" +alias cmd="command" +alias mupdf="mupdf -I" +alias doas="doas -- " +alias man="man " +alias vim="vim -p" +alias startx="startx -- -retard" +alias getpass="command gp" + +# use EREs: +alias sed="sed -E" +alias grep="egrep" + +# short: +alias f="$EDITOR" +alias l="$PAGER" +alias x="startx" + +# clipboard: +alias grab="xclip -selection clipboard" +alias push="grab -out" + +# search all history for `regex` +hs() { fc -nl 0 | egrep "$1" ;} + +# unset proxy variables +np() { unset ALL_PROXY; unset HTTP_PROXY ;} + +# sort human readable du output by size +dush() { du -sh $@ | sort -h ;} + +# redo last command when typing out of order +k() { fc -s ;} + +wQ() { webq "$*" ;} + +unalias r +r() { fc -s "$*" ;} + +# edit executable in PATH +fe() { f `which $@` ;} + +# use feed within FEED_DIR. +fed() { (builtin cd $FEED_DIR && feed $@) ;} + +# record directories visited. +cd() { builtin cd $@ && echo $PWD >> $PWDLOG ;} + +# filter chdir history keeping original line numbers. +lcd() { + awk -vhome="^$HOME" '$0 != last && $0 != ENVIRON["HOME"] {last=$0; \ + sub(home, "~", $0); printf "%d\t%s\n", FNR, $0 }' $PWDLOG +} + +# redo specified chdir with it's index. +rcdi() { + local dir=`head -n ${1:?No index specified} $PWDLOG | tail -1` + cd ${dir:?Non-existent entry} && echo "$dir" +} + +# redo last chdir which matches regex. +rcd() { + local d="$(egrep $@ $PWDLOG | tail -1)" + cd ${d:?No match} +} diff --git a/aliases/.config/aliases/mpc b/aliases/.config/aliases/mpc @@ -0,0 +1,33 @@ +# mpc aliases + +alias m="mpc" +alias mp="m play" +alias mt="m toggle" +alias mk="m prev" +alias mj="m next" +alias ml="m playlist" +alias ms="m search" +alias mP="m searchplay any" +alias ma="m add" + +# get mpd settings +mpdconfig() { eval echo `grep $1 $XDG_CONFIG_HOME/mpd/mpd.conf | sed -E 's/.*"(.*)\"/\1/g'` ;} + +# grep mpc playlists +mgrep() { grep -h $@ `mpdconfig playlist_directory`/* | sort -u ;} + +# add current song to playlist(s) +mato() { + local track="`mpc current -f "%file%"`" + local dir=`mpdconfig playlist_directory` + while [ $# -gt 0 ]; do + # note it's not anchored. + fgrep -q "$track" "$dir/$1.m3u" + if [ $? -eq 1 ]; then + echo "$track" >> $dir/$1.m3u + else + echo "warning: '$1': Already contains track." 1>&2 + fi + shift + done +} diff --git a/aliases/.config/aliases/pkg b/aliases/.config/aliases/pkg @@ -0,0 +1,8 @@ +# OpenBSD package management aliases + +alias pkg_add="pkg_add -xV" +alias pa="doas pkg_add" +alias pu="doas pkg_add -u" +alias pd="doas pkg_delete" +pq() { pkglocate "${@}*:*" | cut -d: -f1 | uniq ;} +alias pi="pkg_info" diff --git a/aliases/.config/aliases/util b/aliases/.config/aliases/util @@ -0,0 +1,23 @@ +# shell utility functions + +verb() { + echo "$@" 1>&2 +} + +warn() { + verb "$0: ${@?warn: No message given}" +} + +# err(status, [message]) +err() { + local status=${1:?No exit status.}; shift + warn "${@:-undefined error}" + exit $status +} + +# include an alias module, does not halt processing non-existent file like `.'. +include() { + local include="${ALIASES:?unset}/$1" + test -f "$include" || { warn "'$include': File non-existent."; return 1 ;} + . "$include" +} diff --git a/ksh/.config/ksh.kshrc b/ksh/.config/ksh.kshrc @@ -2,7 +2,8 @@ set -o vi -[ -f $XDG_CONFIG_HOME/aliases ] && . $XDG_CONFIG_HOME/aliases +ALIASES="$XDG_CONFIG_HOME/aliases" +[ -f "$ALIASES/main" ] && . "$ALIASES/main" . ~/.profile MAIL="/var/mail/$USER"