dotfiles/.kshrc

188 lines
5.3 KiB
Bash

# ksh environment file
########################################################################
# ENVIRONMENT VARIABLES
########################################################################
### SEARCH PATHS
PATH=~/.bin\
:~/.local/bin\
:/bin\
:/sbin\
:/usr/bin\
:/usr/sbin\
:/usr/local/bin\
:/usr/local/sbin\
:/usr/X11R6/bin\
:/usr/games\
:/usr/ports/infrastructure/bin
JAVA_HOME=/usr/local/jdk-11/bin
PATH=${PATH}:${JAVA_HOME}
export PATH
### LANGUAGE
LANG=en_US.UTF-8
LC_MESSAGES=C
LC_NUMERIC=C
LC_TIME=de_DE.UTF-8
export LANG LC_ALL 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
########################################################################
# STOP HERE IF NON INTERACTIVE
########################################################################
[[ $- != *i* ]] && return
########################################################################
# MANDATORY 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
########################################################################
# PROMPT (SIMPLE)
########################################################################
PS1="\h|\${?}\w\\$ "
########################################################################
# SHELL SETTINGS
########################################################################
ulimit -c 0
stty -ixon -ixoff
set -o emacs
set bell-style none
########################################################################
# MODULE LOADER
########################################################################
load() { [ -f ~/.ksh/$1 ] && . ~/.ksh/$1; }
load environment.ksh
load functions.ksh
load aliases.ksh
load email.ksh
load porttools.ksh
load remind.ksh
load ytdl.ksh
load gnupg.ksh
########################################################################
# ALIASES (MISC)
########################################################################
alias sudo="doas"
alias su="doas su"
# packages
alias pkg_add="doas \pkg_add ${PKGOPT}"
alias pkg_delete="doas \pkg_delete ${PKGOPT}"
alias pkg_info="\pkg_info ${PKGOPT}"
# mount
alias mount_msdos="doas \mount_msdos -o nodev,nosuid,noatime -u 1000 -g 1000"
mount_tank() { awk '$3=="nfs"{print $2}' /etc/fstab | xargs -n1 doas mount; }
umount_tank() { awk '$3=="nfs"{print $2}' /etc/fstab | xargs -n1 doas umount; }
pw() { pwgen -1 -y --remove-chars=\~\`\"\'{}\(\)\[\]\*.\;\|,\<\> 22; }
########################################################################
# KERNEL STUFF
########################################################################
alias update-ksh="cd /usr/src/bin/ksh \
&& doas make clean \
&& doas make obj \
&& doas make -j $MAKE_JOBS \
&& doas make install"
########################################################################
# TWITCH FROM CLI
########################################################################
alias twitch-play="mpv https://www.twitch.tv/c0dev0id"
twitch-stream() {
local API_KEY=$(pass Internet/Twitch | head -1)
local RES=$(xrandr | grep "*+" | awk '{print $1}')
local FAUX_OPTS="-d snd/default -m -vmic 5.0 -vmon 0.2 -r $RES -f 20 -b 4000"
fauxstream $FAUX_OPTS rtmp://live-ams.twitch.tv/app/$API_KEY
}
########################################################################
# DOTFILES WITH GIT
########################################################################
alias config='git --git-dir=${HOME}/.cfg/ --work-tree=${HOME}'
dotfiles_autoupdate() {
config add -u && \
config commit -m "Update $(date +"%Y-%m-%d %H:%M") \
$(uname -s)/$(uname -m)-$(hostname -s)" && config push
}
dotfiles_init() {
git --no-replace-objects clone --bare --depth 1 \
_gitea@git.uugrn.org:sdk/dotfiles.git $HOME/.cfg;
config config --local status.showUntrackedFiles no;
config checkout -f
}
########################################################################
# FILE SHARING
########################################################################
doupload-http() {
[ ! -f "$1" ] && return 2
chmod ugo+r "$1"
_name=$(basename "$1");
scp -r "$1" codevoid.de:/tmp
ssh codevoid.de "doas mv /tmp/$_name /home/www/htdocs/http/$_name"
echo "https://codevoid.de/h/$_name";
}
doupload-gopher() {
[ ! -f "$1" ] && return 2
chmod ugo+r "$1"
_name=$(basename "$1");
scp -r "$1" codevoid.de:/tmp
ssh codevoid.de "doas mv /tmp/$_name /home/www/htdocs/gopher/p/$_name"
case "$(file --mime-type -b "$1")" in
image/*) S="I";;
text/*) S="0";;
message/*) S="0";;
*/x-shellscript) S="0";;
*/pgp-keys) S="0";;
application/*) S="9";;
esac
echo "https://codevoid.de/$S/p/$_name";
echo "gopher://codevoid.de/$S/p/$_name";
}
########################################################################
# KSH COMPLETIONS
########################################################################
[ -f $HOME/.ksh-complete ] && . $HOME/.ksh-complete