dotfiles/.kshrc
2024-12-22 11:09:14 +01:00

326 lines
9.7 KiB
Bash

# 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 <sh+got@codevoid.de>"
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 ~/.kshrc.autocomplete ] && . ~/.kshrc.autocomplete
########################################################################
# 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
}