Files
lnx-arch/dots/bash/.bashrc
committer@tuxwarrior b83b45a22f / PS1 upd format
2025-04-18 13:06:31 -05:00

483 lines
15 KiB
Bash

#
# ~/.bashrc :: by frode klevstul
#
# ---
# special stuff
# ---
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# https://github.com/gsamokovarov/jump
eval "$(jump shell --bind=j)"
# ---
# environment variables
# ---
# see `dots/environment/environment`
# ---
# miscellaneous aliases
# ---
alias azurevpnclient="/opt/microsoft/microsoft-azurevpnclient/microsoft-azurevpnclient"
alias dbgate="/home/poq/syncDir/quick/swas/installationFiles/dbGate/dbgate-latest.AppImage"
alias ct="sudo ct"
alias dr="dragon-drop --and-exit --all --print-path"
alias ffind="sudo find / -type f -name"
alias gparted="sudo gparted"
alias grep='grep --color=auto'
alias keymap="setxkbmap -model pc105 -layout us,no -option grp:caps_toggle,grp_led:scroll"
alias keyringreset="trash-put /home/poq/.local/share/keyrings/*.keyrings"
alias lock="xautolock -locknow"
alias ls='ls --color=auto'
alias mamapscii='telnet mapscii.me'
alias nr="nitrogen --restore"
alias myip="echo $(wget http://ipinfo.io/ip -qO -)"
alias sb="source ~/.bashrc"
alias tp="tp.sh"
#alias cp="cp -i" # confirm before overwriting something
#alias df='df -h' # human-readable sizes
#alias dpi="xrandr --dpi"
#alias free='free -m' # show sizes in MB
#alias more=less
#alias np='nano -w PKGBUILD'
#alias package-updates="pacman -Qu"
# ---
# terminal
# ---
# x terminal shell start string | https://askubuntu.com/questions/1340319/ps1-string-full-documentation-and-reference-page
# https://bash-prompt-generator.org/
# https://askubuntu.com/questions/193416/adding-timestamps-to-terminal-prompts
PS1='\D{%y%m%d@%H%M} [\u@\h \W]\$ '
# change the window title of x terminals
case ${TERM} in
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
;;
screen*)
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
;;
esac
# ---
# networking
# ---
nmrestart() {
systemctl restart NetworkManager
systemctl status NetworkManager
}
# ---
# screens / displays / power management
# ---
# https://en.wikipedia.org/wiki/List_of_common_resolutions
# DP-2 is laptop display
#alias res-low="xrandr --output DP-2 --size 1920x1080"
#alias res-med="xrandr --output DP-2 --size 2560x1440"
#alias res-high="xrandr --output DP-2 --size 3840x2160"
alias res-low="xrandr -s 1920x1080"
alias res-med="xrandr -s 2560x1440"
alias res-high="xrandr -s 3840x2160"
monitor() {
cmd="info"
if [[ -n $1 ]]; then
cmd=$1
fi
if [ ${cmd} == "on" ] ; then
# (standby) (suspend) (off)
# 18.2 hours | https://superuser.com/questions/1876254/how-to-turn-off-monitor-and-dont-enable-screen-blanking-in-arch-linux
xset dpms 65535 65535 65535
# disable screensaver
xautolock -disable # disable screen locker
elif [ ${cmd} == "off" ] ; then
sleep 3 # sleep, to prevent mouse movement and immediate wake up
xset dpms 0 0 600 # 10 min timout will be active after monitor wakes up
xset dpms force off # shut off the monitor
xautolock -enable # turns on screen locker again
elif [ ${cmd} == "info" ] ; then
xset -q
else
echo "error: unknown command \"${cmd}\""
fi
}
screensaver() {
cmd="info"
if [[ -n $1 ]]; then
cmd=$1
fi
if [ ${cmd} == "on" ] ; then
xset dpms
xautolock -enable
# tmp file used by i3status - by default screensaver is on, so no need for "screensaver_on.tmp"
trash-put "/tmp/screensaver_off.tmp"
elif [ ${cmd} == "off" ] ; then
xset -dpms
xautolock -disable
touch "/tmp/screensaver_off.tmp"
elif [ ${cmd} == "reset" ] ; then
if xset -q | grep -q 'DPMS is Enabled' ; then
xset -dpms
xset dpms
xautolock -restart
fi
elif [ ${cmd} == "set" ] ; then
minutes=15
if [[ -n $2 ]]; then
minutes=$2
fi
xautolock -time ${minutes} -locker i3lock_fk.sh
elif [ ${cmd} == "info" ] ; then
xset -q
else
echo "error: unknown command \"${cmd}\""
fi
}
rshift() {
cmd="default"
if [[ -n $1 ]]; then
cmd=$1
fi
temperature_file="/tmp/temperature.txt"
if [ ${cmd} == "info" ] ; then
echo "{morning, day, evening, night, bedtime}"
return 1
elif
[ ${cmd} == "status" ] ||
[ ${cmd} == "show" ] ||
[ ${cmd} == "display" ] ; then
if [ -f "${temperature_file}" ] ; then
temperature=$(cat /tmp/temperature.txt)
echo "${temperature}K"
else
echo "unknown temperature value"
fi
return 1
elif
[ ${cmd} == "disable" ] ||
[ ${cmd} == "off" ] ; then
redshift -x
elif [ ${cmd} == "morning" ] ; then
temperature=4500
elif [ ${cmd} == "day" ] ; then
temperature=6500
elif [ ${cmd} == "evening" ] ; then
temperature=3500
elif [ ${cmd} == "night" ] ; then
temperature=2500
elif [ ${cmd} == "bedtime" ] ; then
temperature=1200
else
temperature=${cmd}
fi
echo "setting temperature to ${temperature}K"
echo ${temperature} > ${temperature_file}
redshift -P -O ${temperature}
}
# ---
# mounting
# ---
alias nas-mount="sudo systemctl start mnt-nas.mount"
alias nas-unmount="sudo systemctl stop mnt-nas.mount"
alias nas-mount-2="sudo mount -v -t cifs //192.168.1.222/fro /mnt/nas -o credentials=/home/poq/syncDir/secrets/misc/lillesorteboks.txt"
alias nas-unmount-2="sudo umount /mnt/nas"
nas() {
if [[ -n $1 ]] ; then
if [[ $1 == "umount" ]] || [[ $1 == "unmount" ]] ; then
echo "umount /mnt/nas"
sudo umount /mnt/nas
elif [[ $1 == "mount" ]] && [[ -n $2 ]]; then
echo "mount /mnt/nas"
sudo mount -t cifs -o credentials=/home/poq/syncDir/secrets/misc/lillesorteboks.txt,iocharset=utf8,noperm //$2/fro /mnt/nas
tree -L 2 /mnt/nas
else
echo "missing the ip when doing a mount? or, just trying a weird command? try: 'nas {mount,umount} {ip?}'"
fi
else
echo "sry, bud! try: 'nas {mount,umount} {ip?}'"
fi
}
# iso-mount() {
# sudo mount -o loop "$1" /media/iso
# }
# alias iso-unmount="sudo umount /media/iso"
#
# ---
# multimedia
# ---
# downstream() {
# output="output.mp4"
# # https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash
# if [[ -n $2 ]]; then
# output=$2
# fi
# ffmpeg -i "$1" -c copy -bsf:a aac_adtstoasc "/home/poq/syncDir/0_downloads/${output}"
# }
alias videoCompressor="/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2104_videoCompressor/src/vc_v2.sh"
# alias videoWatermark="/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2104_videoCompressor/src/vcwm_v1.sh"
alias notesArchiver='/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2306_notesArchiver/notesArchiver.sh'
alias toJpg='/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2306_toJpg/toJpg.sh'
alias gpxImporter='python /home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2308_gpxImporter/importer.py'
imgResize() {
/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2305_imgResizer/resize.sh 1200 "$1" jpg
}
pdfCompressor() {
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=$1.compressed.pdf $1
}
# ---
# ajp related
# ---
# ajp-cp2dropbox() {
# "/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2106_ajpDropboxDeployer/archi.sh" "$1" "$2"
# }
podigy() {
cd /home/poq/syncDir/gitRepos/gt.op.fo/podigy/src
source venv/bin/activate
python archi.py -s /home/poq/syncDir/gitRepos/gt.op.fo/fiodb/db/podigy/sites
deactivate
}
# podigy-pywsdb() {
# podigy
# /home/poq/syncDir/gitRepos/gt.op.fo/pyws/deploy/deployToBuildServer.sh db
# }
#
# # ---
# # c19vaxno
# # ---
# #alias c19vaxno-deploy="/home/poq/syncDir/gitRepos/gitlab/c19vaxno/helperScripts/deployToGitlab.sh"
# ---
# hummed
# ---
#hummed-activate() {
# cd /home/poq/syncDir/gitRepos/gt.op.fo/hummed/src
# source venv/bin/activate
#}
#hummed() {
# hummed-activate
# python /home/poq/syncDir/gitRepos/gt.op.fo/hummed/src/archi.py "$@"
# deactivate
# jump-to-downloads
#}
# ---
# jeton
# ---
jeton() {
cd /home/poq/syncDir/gitRepos/gt.op.fo/jeton/src/
source venv/bin/activate
python archi.py -s /home/poq/syncDir/gitRepos/gt.op.fo/fiodb/db/jeton/in/sites -r $1
deactivate
}
# # ---
# # server syncs/backups/deploys
# # ---
# srv-guru-backup() {
# echo "[srv-guru-backup]: <=== download wc2sd/exec/"
# rsync -v -a --progress --stats --e 'ssh -p 1808' trunk@135.181.193.110:/home/trunk/wc2sd/exec/ /home/poq/syncDir/gitRepos/gt.op.fo/srv.guru/trunk/wc2sd/exec/
# echo "[srv-guru-backup]: <=== download wc2sd/db/"
# rsync -v -a --progress --stats -e 'ssh -p 1808' trunk@135.181.193.110:/home/trunk/wc2sd/db/ /home/poq/syncDir/gitRepos/gt.op.fo/srv.guru/trunk/wc2sd/db/
# echo "[srv-guru-backup]: <=== download cron_export/"
# rsync -v -a --progress --stats -e 'ssh -p 1808' trunk@135.181.193.110:/home/trunk/cron_export/ /home/poq/syncDir/gitRepos/gt.op.fo/srv.guru/trunk/cron_export/
# echo "[srv-guru-backup]: <=== download .ssh/"
# rsync -v -a --progress --stats -e 'ssh -p 1808' trunk@135.181.193.110:/home/trunk/.ssh/ /home/poq/syncDir/gitRepos/gt.op.fo/srv.guru/trunk/.ssh/
# }
# ---
# misc websites
# ---
alias 00101111.xyz-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/00101111.xyz/www/ trunk@167.235.77.26:/var/www/00101111.xyz/"
alias op.fo-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/op.fo/www/ trunk@167.235.77.26:/var/www/op.fo/"
# gpx2jon() {
# cd /home/poq/syncDir/gitRepos/gt.op.fo/gpx2jon/src
# source venv/bin/activate
# python archi.py -s /home/poq/syncDir/gitRepos/gt.op.fo/fiodb/db/gpx2jon/sites
# deactivate
# }
# gpx2jon-with-build-all() {
# gpx2jon
# frodr.com-build-all
# }
# ---
# jongleur
# ---
jcssbuilder() {
cd /home/poq/syncDir/gitRepos/gt.op.fo/jCssBuilder/src
source venv/bin/activate
python /home/poq/syncDir/gitRepos/gt.op.fo/jCssBuilder/src/archi.py
deactivate
}
jongleur-activate() {
cd /home/poq/syncDir/gitRepos/gitlab/jongleur/src
source venv/bin/activate
}
jump-to-downloads() {
cd /home/poq/syncDir/0_downloads
}
ajp.fm-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/ajp.fm/jongleur/run.sh
deactivate
jump-to-downloads
}
ajp.fm-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/ajp.fm/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias ajp.fm-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/ajp.fm/jongleur/html_export/ trunk@167.235.77.26:/var/www/ajp.fm/jongleur/"
antijanteboka.com-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/antijanteboka.com/jongleur/run.sh
deactivate
jump-to-downloads
}
antijanteboka.com-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/antijanteboka.com/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias antijanteboka.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/antijanteboka.com/jongleur/html_export/ trunk@167.235.77.26:/var/www/antijanteboka.com/jongleur/"
antijantemiriam.com-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/antijantemiriam.com/jongleur/run.sh
deactivate
jump-to-downloads
}
antijantemiriam.com-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/antijantemiriam.com/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias antijantemiriam.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/antijantemiriam.com/jongleur/html_export/ trunk@167.235.77.26:/var/www/antijantemiriam.com/jongleur/"
billgoats.com-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/billgoats.com/jongleur/run.sh
deactivate
jump-to-downloads
}
billgoats.com-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/billgoats.com/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias billgoats.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/billgoats.com/jongleur/html_export/ trunk@167.235.77.26:/var/www/billgoats.com/jongleur/"
curious.art-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/curious.art/jongleur/run.sh
deactivate
jump-to-downloads
}
curious.art-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/curious.art/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias curious.art-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/curious.art/jongleur/html_export/ trunk@167.235.77.26:/var/www/curious.art/jongleur/"
curiouscreators.com-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/curiouscreators.com/jongleur/run.sh
deactivate
jump-to-downloads
}
curiouscreators.com-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/curiouscreators.com/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias curiouscreators.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/curiouscreators.com/jongleur/html_export/ trunk@167.235.77.26:/var/www/curiouscreators.com/jongleur/"
frodr.com-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/frodr.com/jongleur/run.sh
deactivate
jump-to-downloads
}
frodr.com-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/frodr.com/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias frodr.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/frodr.com/jongleur/html_export/ trunk@167.235.77.26:/var/www/frodr.com/jongleur/"
klevstul.com-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/klevstul.com/jongleur/run.sh
deactivate
jump-to-downloads
}
klevstul.com-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/klevstul.com/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias klevstul.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/klevstul.com/jongleur/html_export/ trunk@167.235.77.26:/var/www/klevstul.com/jongleur/"
noctur.no-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/noctur.no/jongleur/run.sh
deactivate
jump-to-downloads
}
noctur.no-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/noctur.no/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias noctur.no-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/noctur.no/jongleur/html_export/ trunk@167.235.77.26:/var/www/noctur.no/jongleur/"
christcast.org-build() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/christcast.org/jongleur/run.sh
deactivate
jump-to-downloads
}
christcast.org-build-all() {
jongleur-activate
/home/poq/syncDir/gitRepos/gt.op.fo/christcast.org/jongleur/runAll.sh
deactivate
jump-to-downloads
}
alias christcast.org-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/christcast.org/jongleur/html_export/ trunk@167.235.77.26:/var/www/christcast.org/jongleur/"