# ksh environment file ######################################################################## # ENVIRONMENT VARIABLES ######################################################################## ### SEARCH PATHS PATH=~/.bin\ :/bin\ :/sbin\ :/usr/bin\ :/usr/sbin\ :/usr/local/bin\ :/usr/local/sbin\ :/usr/X11R6/bin\ :/usr/ports/infrastructure/bin export PATH ### LANGUAGE LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LC_MESSAGES=C LC_NUMERIC=C LC_TIME=de_DE.UTF-8 export LANG LC_MESSAGES LC_NUMERIC LC_TIME ### SOFTWARE PREFERENCES EDITOR="vim" VISUAL="vim" BROWSER="chrome" PAGER="less" export EDITOR VISUAL BROWSER PAGER PRINTER="rp" export PRINTER ######################################################################## # LOAD LOCAL STUFF ######################################################################## [ -f ~/.kshrc.local ] && . ~/.kshrc.local ######################################################################## # STOP HERE IF NON INTERACTIVE ######################################################################## [[ $- != *i* ]] && return ######################################################################## # INTERACTIVE ENVIRONMENT ######################################################################## ### HISTORY HISTCONTROL=ignoredups:ignorespace:erasedups HISTFILE=$HOME/.ksh-history HISTSIZE=2000 export HISTCONTROL HISTFILE HISTSIZE # LESS LESS="-giJmR--tilde" LESSHISTFILE="$HOME/.less-history" export LESS LESSHISTFILE # TUIR (reddit) TUIR_BROWSER="$BROWSER" export TUIR_BROWSER # NNN NNN_OPTS="cErxAJBRr" NNN_OPENER="nnn.sh" NNN_FIFO=/tmp/nnn.fifo NNN_PLUG='c:!readlink -f $nnn | xclip -f;o:-!tmpv "$nnn";u:!upload "$nnn";,:!copyto "$nnn";x:!imagesort;p:!pdfarranger "$nnn" > /dev/null 2>&1 &' NNN_ARCHIVE="\\.(7z|bz2|gz|tar|tgz|zip)$" NNN_COLORS='#0a1b2c3d;1234' NNN_FCOLORS='c1e2272e006033f7c6d6abc4' export NNN_OPTS NNN_OPENER NNN_PLUG NNN_ARCHIVE export NNN_COLORS NNN_FCOLORS NNN_FIFO # SLNR SLRNPULL_ROOT=$HOME/.slrnpull NNTPSERVER=read.news.tnib.de export SLRNPULL_ROOT NNTPSERVER # GOT GOT_AUTHOR="Stefan Hagen " TOG_COLORS=1 export GOT_AUTHOR TOG_COLORS # BUPSTASH BUPSTASH_REPOSITORY=ssh://sdk@storage.bupstash.io BUPSTASH_KEY_COMMAND="pass Internet/bupstash-key" export BUPSTASH_REPOSITORY BUPSTASH_KEY_COMMAND # PASSWORD-STORE PASSWORD_STORE_ENABLE_EXTENSIONS=true export PASSWORD_STORE_ENABLE_EXTENSIONS ######################################################################## # SHELL SETTINGS ######################################################################## ulimit -c 0 stty -ixon -ixoff set -o emacs set bell-style none ######################################################################## # LOAD COMPLETION FILE ######################################################################## [ -f ~/.ksh.complete ] && . ~/.ksh.complete ######################################################################## # PROMPT ######################################################################## # C1="\[$(tput setaf 241)\]" # gray # C2="\[$(tput setaf 208)\]" # orange # C0="\[$(tput op)\]" # reset # x=$(echo -e \\001) # hack from ksh(1) # # [ $(id -u) -eq 0 ] \ # && C2="\[$(tput setaf 196)\]" # gray # # PS1="${C1}[${C2}\h${C1}](${C2}\${?}${C1})(${C2}\w${C1})\$ ${C0}" RED="\[$(tput setaf 196)\]" GREY="\[$(tput setaf 248)\]" RESET="\[$(tput op)\]" if [ $(id -u) -eq 0 ] then PS1="${x}${RED}\${?}|\w\\$ ${RESET}${x}" else PS1="${x}${GREY}\${?}|\w\\$ ${RESET}${x}" fi ######################################################################## # ALIASES ######################################################################## # config files alias kshrc="vim ~/.kshrc" alias kshrc.local="vim ~/.kshrc.local" alias muttrc="vim ~/.mutt/rc-common" alias vimrc="vim ~/.vim/vimrc" alias luakitrc="vim ~/.config/luakit/rc.lua" alias spectrwmrc="vim ~/.config/spectrwm/spectrwm.conf" alias vifmrc="vim ~/.config/vifm/vifmrc" alias tmuxrc="vim ~/.tmux.conf" # task warrior alias t=task alias ta="t add" alias tm="t mod" alias tc="t completed" alias tlog="t log +LOG" # social media alias tuta="tut -u 'sh@bsd.network uugrn@chaos.social'" # servers alias x="ssh -t sdk@home.codevoid.de 'tmux -u new-session -d -s main; tmux -u new-session -t main \; set-option destroy-unattached'" alias inssh="ssh -o HostKeyAlgorithms=+ssh-rsa \ -o KexAlgorithms=+diffie-hellman-group1-sha1 \ -o Ciphers=+aes256-cbc" myps() { ps -fU $(whoami); } mytop() { top -u $(whoami); } # other alias portroach="portroach-cli -m codevoid" alias ugrep="\ugrep -nI --exclude=tags --exclude=.tags --exclude='cscope.*'" alias joplin="firefox https://app.joplincloud.com &" ######################################################################## # AMUSED ######################################################################## alias amused-next="_amused_cmd next" alias amused-prev="_amused_cmd prev" alias amused-play="_amused_cmd play" alias amused-stop="_amused_cmd stop" alias amused+="_amused_cmd seek +15" alias amused-="_amused_cmd seek -15" alias amused-jump="_amused_jump" alias amused-shuffle="amused show | sort -R | amused load" alias amused-sort="amused show | sort -h | amused load" _amused_cmd() { . ~/.bin/_config amused "${@}" 2>&1 > /dev/null STATUS="$(amused status | head -1 | cut -d'/' -f5-)" NOTIFY_CMD "$STATUS" echo "$@: $STATUS" } _amused_jump() { S="$(echo "$(amused show | cut -d'/' -f5-)" | sort -h | fzf -i -e)" [ ! -z "$S" ] \ && _amused_cmd jump "$S" } ######################################################################## # EMAIL HANDLING ######################################################################## # mailboxes MUTT_HOST="imaps://mail.codevoid.de" # account aliases alias mutt-acc-gmx="\mutt -F $HOME/.mutt/rc-account-gmx" alias mutt-acc-priv="\mutt -F $HOME/.mutt/rc-account-private" alias mutt-acc-work="\mutt -F $HOME/.mutt/rc-account-work" alias mutt-acc-offl="\mutt -F $HOME/.mutt/rc-account-offline" alias mutt-acc-mborg="\mutt -F $HOME/.mutt/rc-account-mborg" alias mutt-acc-uugrn="\mutt -F $HOME/.mutt/rc-account-uugrn" # default alias mutt="mutt-acc-priv" alias muttopen="\mutt -F ~/.mutt/rc-common -f" # select mailbox mutt-textmail() { mutt-acc-priv -f $MUTT_HOST/Mailboxes/textmail.me/$1; } mutt-codevoid() { mutt-acc-priv -f $MUTT_HOST/Mailboxes/codevoid.de/sh+$1; } # shortcuts alias mutt-all="mutt -f $MUTT_HOST/Virtual/ALL" alias mutt-last-day="mutt -f $MUTT_HOST/Virtual/LAST_DAY" alias mutt-last-week="mutt -f $MUTT_HOST/Virtual/LAST_WEEK" alias mutt-last-month="mutt -f $MUTT_HOST/Virtual/LAST_MONTH" alias mutt-last-year="mutt -f $MUTT_HOST/Virtual/LAST_YEAR" alias mutt-openbsd-all="mutt -f $MUTT_HOST/Virtual/OpenBSD" alias mutt-amazon="mutt-textmail amazon" alias mutt-ccc-intern="mutt-textmail ccc-intern" alias mutt-lieferando="mutt-textmail lieferando" alias mutt-mutt-users="mutt-codevoid mutt-users" alias mutt-openbsd-bugs="mutt-codevoid openbsd-bugs" alias mutt-openbsd-hackers="mutt-codevoid openbsd-hackers" alias mutt-openbsd-misc="mutt-codevoid openbsd-misc" alias mutt-openbsd-ports-bugs="mutt-codevoid openbsd-ports-bugs" alias mutt-openbsd-ports-cvs="mutt-codevoid openbsd-ports-cvs" alias mutt-openbsd-ports="mutt-codevoid openbsd-ports" alias mutt-openbsd-sparc="mutt-codevoid openbsd-sparc" alias mutt-openbsd-src-cvs="mutt-codevoid openbsd-src-cvs" alias mutt-openbsd-tech="mutt-codevoid openbsd-tech" alias mutt-openbsd-x11="mutt-codevoid openbsd-x11" alias mutt-paypal="mutt-textmail paypal" alias mutt-uugrn="mutt-codevoid uugrn" alias mutt-vorstand="mutt-codevoid vorstand" ######################################################################## # PORT TOOLS ######################################################################## CVSROOT="sdk@cvs.openbsd.org:/cvs" export CVSROOT po() { cd $(make show=WRKSRC); } pj() { [ -z $1 ] && return 1 cd /usr/ports PATTERN="pobj|plist|CVS|locks|packages|distfiles|infrastructure" LIST=$( ls -d1 \ *$1* \ */*$1* \ mystuff/*$1* \ mystuff/*/*$1* \ openbsd-wip/*$1* \ openbsd-wip/*/*$1* \ 2>/dev/null \ | grep -Ev "$PATTERN" \ | sort -u ) [ $(echo "$LIST" | wc -l) -gt 1 ] \ && cd $(echo "$LIST" | fzf -e -i) \ || cd $LIST } obsd-full-system-update() {( set -x cvs-update-all set -e obsdmake kernel obsdmake base obsdmake xenocara doas pkg_add -u )} ######################################################################## # REMIND ######################################################################## alias rem="remind -@1,1,1 -c+cu4 -wt ~sdk/.reminders.rem" alias remy="remind -@1,1,1 -c+cu52 -wt ~sdk/.reminders.rem | less" alias rems="remind -n ~sdk/.reminders | sort -n | head -10" alias remc="remindcal ~sdk/.reminders" alias rem-personal="rem-edit personal" alias rem-birthdays="rem-edit birthdays" alias rem-uugrn="rem-edit-uugrn" rem-edit() { vim sftp://sdk@home.codevoid.de/.reminders/$1.rem scp -q sdk@home.codevoid.de:.reminders/$1.rem ~sdk/.reminders/$1.rem } rem-edit-uugrn() { vim sftp://vorstand@vorstand.uugrn.org/.reminders/uugrn.rem scp -q vorstand@vorstand.uugrn.org:.reminders/uugrn.rem ~sdk/.reminders/uugrn.rem scp -q ~sdk/.reminders/uugrn.rem vorstand@vorstand.uugrn.org:private/Kalender/uugrn.rem ssh sdk@vorstand.uugrn.org sh \ ~sdk/.bin/make_calendar.sh \ || true } ######################################################################## # UPDATE SCRATCHPAD DIMENSIONS ######################################################################## update-scratchpad() { echo "Updating Lines to: $LINES" echo "Updating Rows to: $COLUMNS" sed -i "s/^COLUMNS=.*/COLUMNS=$COLUMNS/g" ~/.bin/scratchpad sed -i "s/^ROWS=.*/ROWS=$LINES/g" ~/.bin/scratchpad }