Files
lnx-arch/dots/bash/.bashrc

834 lines
28 KiB
Bash
Raw Normal View History

2024-05-03 13:52:41 -05:00
#
2025-04-12 11:49:58 -05:00
# ~/.bashrc :: by frode klevstul
2024-05-03 13:52:41 -05:00
#
2025-04-12 11:49:58 -05:00
# ---
# special stuff
# ---
2024-05-03 13:52:41 -05:00
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
2025-04-12 11:49:58 -05:00
# https://github.com/gsamokovarov/jump
eval "$(jump shell --bind=j)"
# ---
# environment variables
# ---
# see `dots/environment/environment`
# ---
# miscellaneous aliases
# ---
2025-05-03 16:01:26 -05:00
alias aafire="aafire -driver curses" # terminal idle "screensaver"
alias azurevpnclient="/opt/microsoft/microsoft-azurevpnclient/microsoft-azurevpnclient"
2025-05-03 16:01:26 -05:00
alias cacafire="DISPLAY= cacafire" # terminal idle "screensaver"
alias cmatrix="cmatrix -a -b -s -u 5" # terminal idle "screensaver"
2025-08-05 10:00:15 -05:00
alias cp="cp -i" # confirm before overwriting something
alias ct="sudo ct"
2025-08-05 10:00:15 -05:00
alias df='df -h' # human-readable sizes
2025-05-03 12:49:21 -05:00
alias diskusage="ncdu -x"
2025-05-07 05:30:09 -05:00
alias dr="dragon-drop --and-exit --all --print-path"
2025-04-21 07:08:35 -05:00
alias du="du --summarize --human-readable"
alias dus="du --summarize --human-readable * | sort -h"
2025-09-17 10:52:34 -05:00
alias faf="find . -type f -iname" # faf (find a file)
2025-12-16 09:05:35 -05:00
alias fif="grep -rnw . -e" # fif (find in file) | https://stackoverflow.com/questions/16956810/find-all-files-containing-a-specific-text-string-on-linux
alias gparted="sudo gparted"
2025-04-06 18:22:35 -05:00
alias grep='grep --color=auto'
2025-04-19 09:36:26 -05:00
alias ip='ip -br a'
2025-06-29 20:47:06 -05:00
alias ipcam="ffplay rtsp://192.168.31.220:554/1"
2025-12-16 09:05:35 -05:00
alias ipify='http https://api.ipify.org?format=json'
2025-06-02 18:11:07 -05:00
alias journal='journalctl --since "1 hour ago"'
alias keymap="setxkbmap -model pc105 -layout us,no -option grp:caps_toggle,grp_led:scroll"
2025-04-08 14:55:30 -05:00
alias keyringreset="trash-put /home/poq/.local/share/keyrings/*.keyrings"
alias lock="xautolock -locknow"
2025-04-06 18:22:35 -05:00
alias ls='ls --color=auto'
alias mapscii='telnet mapscii.me'
alias myip="echo $(wget http://ipinfo.io/ip -qO -)"
2025-12-16 09:05:35 -05:00
alias neofetch='fastfetch'
2025-04-21 19:17:36 -05:00
alias nr="nitrogen --restore"
2025-04-06 18:22:35 -05:00
alias sb="source ~/.bashrc"
2025-05-10 08:59:44 -05:00
alias sbr="source /home/poq/syncDir/gitRepos/gt.op.fo/lnx-arch/dots/bash/.bashrc" # source bash (from) repo
2025-10-29 02:38:54 -05:00
alias ssh_weba_r="ssh -t root@178.156.192.201 -p 1808 'export TERM=xterm; cd /tmp; bash -l'"
alias ssh_weba_u="ssh -t usr@178.156.192.201 -p 1808 'export TERM=xterm; cd /tmp; bash -l'"
2025-05-09 19:48:09 -05:00
alias starwars="telnet towel.blinkenlights.nl"
2025-04-18 15:39:25 -05:00
alias tp-empty="trash-empty"
alias tp-list="tree ~/.local/share/Trash/"
alias tp-restore="trash-restore"
2025-04-21 19:17:36 -05:00
alias tp="tp.sh"
2025-04-21 07:08:35 -05:00
alias tree="tree --du -h"
2025-05-03 16:01:26 -05:00
alias unimatrix="unimatrix.py" # terminal idle "screensaver"
2025-12-16 09:05:35 -05:00
alias weba-connect="ssh -t root@178.156.192.201 -p 1808 'export TERM=xterm; cd /tmp; bash -l'"
2025-10-20 19:27:24 -05:00
# app images
2025-10-29 02:38:54 -05:00
#alias dbgate="/home/poq/syncDir/quick/swas/installationFiles/dbGate/dbgate-latest.AppImage"
2025-04-12 11:49:58 -05:00
# ---
# terminal
# ---
# x terminal shell start string | https://askubuntu.com/questions/1340319/ps1-string-full-documentation-and-reference-page
2025-04-18 13:06:31 -05:00
# https://bash-prompt-generator.org/
# https://askubuntu.com/questions/193416/adding-timestamps-to-terminal-prompts
2025-10-12 07:01:30 -05:00
PS1='\n⚙[\D{%y%m%d%H%M}|\u@\h \w]\$ '
#PS1='\[\e[01;32m\]\u@\h \[\e[01;34m\]\w\[\e[00m\]\$ '
2024-05-03 13:52:41 -05:00
# 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
2025-05-03 17:23:42 -05:00
# tss (terminal screen saver) - start a random one
tss() {
# https://unix.stackexchange.com/questions/118714/how-can-i-get-cacafire-to-show-up-in-the-original-gnome-terminal-instead-of-a
OLD_DISPAY=$(echo $DISPLAY)
export DISPLAY=
commands=("aafire -driver curses" "cacafire" "cmatrix -a -b -s -u 5" "unimatrix.py")
random_command="${commands[ $RANDOM % ${#commands[@]} ]}"
$random_command
export DISPLAY=${OLD_DISPAY}
}
alias tbt="printf '\x1b]10;red\x1b\\'; printf '\x1b]11;#000\x1b\\'" # tbt (terminal black theme) | https://sw.kovidgoyal.net/kitty/faq/#how-do-i-change-the-colors-in-a-running-kitty-instance
alias tdt="printf '\x1b]10;#00ffff\x1b\\'; printf '\x1b]11;#161021\x1b\\';" # tdt (terminal default theme)
2024-05-05 22:04:57 -05:00
2025-04-12 11:49:58 -05:00
# ---
# networking
# ---
2025-11-01 19:35:11 -05:00
# https://serverfault.com/questions/170706/easy-way-to-get-ip-address-from-hostname-using-a-unix-shell
function hostip() {
python -c "import sys, socket; print (socket.gethostbyname('$1'))"
}
2025-04-12 11:49:58 -05:00
nmrestart() {
systemctl restart NetworkManager
systemctl status NetworkManager
2024-05-06 16:06:07 -05:00
}
2024-05-06 07:39:24 -05:00
2025-07-17 07:41:42 -05:00
# https://wiki.archlinux.org/title/Proxy_server
function proxy_on() {
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
if (( $# > 0 )); then
valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\?\)\{4\}:\([0-9]\+\)/&/p')
if [[ $valid != $@ ]]; then
>&2 echo "Invalid address"
return 1
fi
local proxy=$1
export http_proxy="$proxy" \
https_proxy=$proxy \
ftp_proxy=$proxy \
rsync_proxy=$proxy
echo "Proxy environment variable set."
return 0
fi
echo -n "username: "; read username
if [[ $username != "" ]]; then
echo -n "password: "
read -es password
local pre="$username:$password@"
fi
echo -n "server: "; read server
echo -n "port: "; read port
local proxy=$pre$server:$port
export http_proxy="$proxy" \
https_proxy=$proxy \
ftp_proxy=$proxy \
rsync_proxy=$proxy \
HTTP_PROXY=$proxy \
HTTPS_PROXY=$proxy \
FTP_PROXY=$proxy \
RSYNC_PROXY=$proxy
}
function proxy_off(){
unset http_proxy https_proxy ftp_proxy rsync_proxy \
HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY
echo -e "Proxy environment variable removed."
}
2025-04-12 11:49:58 -05:00
# ---
# 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
}
2024-05-22 18:38:01 -05:00
screensaver() {
2024-06-25 19:52:27 -05:00
cmd="info"
2024-05-23 06:28:29 -05:00
if [[ -n $1 ]]; then
cmd=$1
2024-05-22 18:38:01 -05:00
fi
if [ ${cmd} == "on" ] ; then
2024-05-22 18:11:36 -05:00
xset dpms
2024-06-25 19:52:27 -05:00
xautolock -enable
2024-05-23 06:26:29 -05:00
# tmp file used by i3status - by default screensaver is on, so no need for "screensaver_on.tmp"
trash-put "/tmp/screensaver_off.tmp"
2024-05-22 18:38:01 -05:00
elif [ ${cmd} == "off" ] ; then
xset -dpms
2024-06-25 19:52:27 -05:00
xautolock -disable
2024-05-23 06:26:29 -05:00
touch "/tmp/screensaver_off.tmp"
2024-05-22 18:38:01 -05:00
elif [ ${cmd} == "reset" ] ; then
if xset -q | grep -q 'DPMS is Enabled' ; then
xset -dpms
xset dpms
2024-06-25 19:52:27 -05:00
xautolock -restart
2024-05-22 18:38:01 -05:00
fi
elif [ ${cmd} == "set" ] ; then
minutes=15
if [[ -n $2 ]]; then
minutes=$2
fi
xautolock -time ${minutes} -locker i3lock_fk.sh
2024-06-25 19:52:27 -05:00
elif [ ${cmd} == "info" ] ; then
2024-05-22 18:38:01 -05:00
xset -q
else
echo "error: unknown command \"${cmd}\""
2024-05-22 18:11:36 -05:00
fi
}
2024-05-26 15:16:41 -05:00
rshift() {
2025-06-21 04:43:18 -05:00
cmd="info"
2024-05-26 15:16:41 -05:00
if [[ -n $1 ]]; then
cmd=$1
fi
2024-05-26 18:54:30 -05:00
temperature_file="/tmp/temperature.txt"
2024-05-26 15:16:41 -05:00
if [ ${cmd} == "info" ] ; then
2025-06-21 04:43:18 -05:00
echo "{morning, day, evening, night, bedtime, off}"
2024-05-26 19:09:24 -05:00
return 1
2024-05-27 06:24:12 -05:00
elif
[ ${cmd} == "status" ] ||
[ ${cmd} == "show" ] ||
2024-05-26 19:00:20 -05:00
[ ${cmd} == "display" ] ; then
if [ -f "${temperature_file}" ] ; then
temperature=$(cat /tmp/temperature.txt)
2024-05-26 19:08:06 -05:00
echo "${temperature}K"
2024-05-26 19:00:20 -05:00
else
2024-05-26 19:08:06 -05:00
echo "unknown temperature value"
2024-05-26 19:00:20 -05:00
fi
2024-05-26 19:02:48 -05:00
return 1
2024-05-26 18:54:30 -05:00
elif
[ ${cmd} == "disable" ] ||
2024-05-26 18:59:29 -05:00
[ ${cmd} == "off" ] ; then
2024-05-26 18:54:30 -05:00
redshift -x
2025-07-12 06:50:07 -05:00
return 1
2024-05-26 15:16:41 -05:00
elif [ ${cmd} == "morning" ] ; then
temperature=4500
2024-05-26 19:10:11 -05:00
elif [ ${cmd} == "day" ] ; then
2024-05-26 15:16:41 -05:00
temperature=6500
elif [ ${cmd} == "evening" ] ; then
temperature=3500
elif [ ${cmd} == "night" ] ; then
temperature=2500
elif [ ${cmd} == "bedtime" ] ; then
temperature=1200
else
temperature=${cmd}
fi
2024-05-26 15:20:36 -05:00
echo "setting temperature to ${temperature}K"
2024-05-26 19:05:09 -05:00
echo ${temperature} > ${temperature_file}
2024-05-26 15:16:41 -05:00
redshift -P -O ${temperature}
}
2025-05-03 16:01:26 -05:00
2025-05-09 17:42:59 -05:00
# ---
2025-05-09 17:46:27 -05:00
# misc
2025-05-09 17:42:59 -05:00
# ---
ascii() {
if [[ -n $1 ]] ; then
if [[ $1 == "banner" ]] && [[ -n $2 ]] ; then
2025-05-12 05:05:29 -05:00
figlet -w 200 -f ANSI\ Shadow $2
2025-05-09 18:00:43 -05:00
elif [[ $1 == "date" ]] ; then
2025-05-12 05:05:29 -05:00
date | figlet -w 200 -f future
2025-05-09 18:00:43 -05:00
elif [[ $1 == "info" ]] ; then
echo "toilet -f future Hello, World!"
echo "figlet -f future Hello, World!"
elif [[ $1 == "fav" ]] || [[ $1 == "favs" ]] || [[ $1 == "favorites" ]] ; then
text="Klevstul"
if [[ -n $2 ]]; then
text=$2
fi
echo
echo "3D-ASCII"
figlet -w 200 -f 3D-ASCII ${text}
echo
echo "Alpha"
figlet -w 200 -f Alpha ${text}
echo
echo "ANSI Regular"
figlet -w 200 -f ANSI\ Regular ${text}
echo
echo "Banner3-D"
figlet -w 200 -f Banner3-D ${text}
echo
echo "cyberlarge"
figlet -w 200 -f cyberlarge ${text}
echo
echo "cybermedium"
figlet -w 200 -f cybermedium ${text}
echo
echo "doh"
figlet -w 200 -f doh ${text}
echo
echo "future"
figlet -w 200 -f future ${text}
echo
echo "isometric1"
figlet -w 200 -f isometric1 ${text}
echo
echo "isometric2"
figlet -w 200 -f isometric2 ${text}
echo
echo "s-relief"
figlet -w 200 -f s-relief ${text}
echo
2025-05-09 19:29:06 -05:00
echo "smbraille"
figlet -w 200 -f smbraille ${text}
echo
echo "pagga"
figlet -w 200 -f pagga ${text}
2025-05-09 17:42:59 -05:00
elif [[ $1 == "figlets" ]] ; then
figlets.sh
2025-05-09 18:00:43 -05:00
elif [[ $1 == "fonts" ]] ; then
tree /usr/share/figlet/
2025-05-09 19:29:06 -05:00
elif [[ $1 == "help" ]] ; then
echo "ascii {banner [text], info, fav [text], figlets, fonts, help, toilets}"
2025-05-09 17:42:59 -05:00
elif [[ $1 == "toilets" ]] ; then
toilets.sh
else
2025-05-09 18:00:43 -05:00
toilet -f smbraille Try something else...
2025-05-09 17:42:59 -05:00
fi
else
2025-05-09 19:29:06 -05:00
toilet -f future --rainbow ASCII
2025-05-09 17:42:59 -05:00
fi
}
2025-10-31 05:51:19 -05:00
# https://boulderappsco.postach.io/post/convert-decimal-to-base-36-alpha-numeric-in-bash-linux
function decimal_to_base36(){
BASE36=($(echo {0..9} {A..Z}));
arg1=$@;
for i in $(bc <<< "obase=36; $arg1"); do
echo -n ${BASE36[$(( 10#$i ))]}
done && echo
}
2025-08-08 06:41:48 -05:00
gpxImporter() {
cd /home/poq/syncDir/gitRepos/gt.op.fo/gpx-importer/go/src/
go run main.go
cd -
}
2025-08-08 07:27:45 -05:00
rot() {
if [[ -n $1 ]] && [[ -n $2 ]] ; then
if [[ $1 == "1" ]] ; then
echo "$2" | tr 'a-z' 'b-za'
elif [[ $1 == "-1" ]] ; then
echo "$2" | tr 'b-za' 'a-z'
elif [[ $1 == "2" ]] ; then
echo "$2" | tr 'a-z' 'c-zab'
elif [[ $1 == "-2" ]] ; then
echo "$2" | tr 'c-zab' 'a-z'
elif [[ $1 == "3" ]] ; then
echo "$2" | tr 'a-z' 'd-zabc'
elif [[ $1 == "-3" ]] ; then
echo "$2" | tr 'd-zabc' 'a-z'
elif [[ $1 == "4" ]] ; then
echo "$2" | tr 'a-z' 'e-zabcd'
elif [[ $1 == "-4" ]] ; then
echo "$2" | tr 'e-zabcd' 'a-z'
2025-08-08 07:27:45 -05:00
elif [[ $1 == "5" ]] ; then
echo "$2" | tr 'a-z' 'f-zabcde'
elif [[ $1 == "-5" ]] ; then
echo "$2" | tr 'f-zabcde' 'a-z'
elif [[ $1 == "6" ]] ; then
echo "$2" | tr 'a-z' 'g-zabcdef'
elif [[ $1 == "-6" ]] ; then
echo "$2" | tr 'g-zabcdef' 'a-z'
elif [[ $1 == "7" ]] ; then
echo "$2" | tr 'a-z' 'h-zabcdefg'
elif [[ $1 == "-7" ]] ; then
echo "$2" | tr 'h-zabcdefg' 'a-z'
2025-08-08 07:27:45 -05:00
elif [[ $1 == "8" ]] ; then
echo "$2" | tr 'a-z' 'i-zabcdefgh'
elif [[ $1 == "-8" ]] ; then
echo "$2" | tr 'i-zabcdefgh' 'a-z'
elif [[ $1 == "9" ]] ; then
echo "$2" | tr 'a-z' 'j-zabcdefghi'
elif [[ $1 == "-9" ]] ; then
echo "$2" | tr 'j-zabcdefghi' 'a-z'
elif [[ $1 == "10" ]] ; then
echo "$2" | tr 'a-z' 'k-zabcdefghij'
elif [[ $1 == "-10" ]] ; then
echo "$2" | tr 'k-zabcdefghij' 'a-z'
elif [[ $1 == "11" ]] ; then
echo "$2" | tr 'a-z' 'l-zabcdefghijk'
elif [[ $1 == "-11" ]] ; then
echo "$2" | tr 'l-zabcdefghijk' 'a-z'
elif [[ $1 == "12" ]] ; then
echo "$2" | tr 'a-z' 'm-zabcdefghijkl'
elif [[ $1 == "-12" ]] ; then
echo "$2" | tr 'm-zabcdefghijkl' 'a-z'
elif [[ $1 == "13" ]] ; then
echo "$2" | tr 'a-z' 'n-zabcdefghijklm'
elif [[ $1 == "-13" ]] ; then
echo "$2" | tr 'n-zabcdefghijklm' 'a-z'
elif [[ $1 == "14" ]] ; then
echo "$2" | tr 'a-z' 'o-zabcdefghijklmn'
elif [[ $1 == "-14" ]] ; then
echo "$2" | tr 'o-zabcdefghijklmn' 'a-z'
elif [[ $1 == "15" ]] ; then
echo "$2" | tr 'a-z' 'p-zabcdefghijklmno'
elif [[ $1 == "-15" ]] ; then
echo "$2" | tr 'p-zabcdefghijklmno' 'a-z'
elif [[ $1 == "16" ]] ; then
echo "$2" | tr 'a-z' 'q-zabcdefghijklmnop'
elif [[ $1 == "-16" ]] ; then
echo "$2" | tr 'q-zabcdefghijklmnop' 'a-z'
elif [[ $1 == "17" ]] ; then
echo "$2" | tr 'a-z' 'r-zabcdefghijklmnopq'
elif [[ $1 == "-17" ]] ; then
echo "$2" | tr 'r-zabcdefghijklmnopq' 'a-z'
elif [[ $1 == "18" ]] ; then
echo "$2" | tr 'a-z' 's-zabcdefghijklmnopqr'
elif [[ $1 == "-18" ]] ; then
echo "$2" | tr 's-zabcdefghijklmnopqr' 'a-z'
elif [[ $1 == "19" ]] ; then
echo "$2" | tr 'a-z' 't-zabcdefghijklmnopqrs'
elif [[ $1 == "-19" ]] ; then
echo "$2" | tr 't-zabcdefghijklmnopqrs' 'a-z'
elif [[ $1 == "20" ]] ; then
echo "$2" | tr 'a-z' 'u-zabcdefghijklmnopqrst'
elif [[ $1 == "-20" ]] ; then
echo "$2" | tr 'u-zabcdefghijklmnopqrst' 'a-z'
elif [[ $1 == "21" ]] ; then
echo "$2" | tr 'a-z' 'v-zabcdefghijklmnopqrstu'
elif [[ $1 == "-21" ]] ; then
echo "$2" | tr 'v-zabcdefghijklmnopqrstu' 'a-z'
elif [[ $1 == "22" ]] ; then
echo "$2" | tr 'a-z' 'w-zabcdefghijklmnopqrstuv'
elif [[ $1 == "-22" ]] ; then
echo "$2" | tr 'w-zabcdefghijklmnopqrstuv' 'a-z'
elif [[ $1 == "23" ]] ; then
echo "$2" | tr 'a-z' 'x-zabcdefghijklmnopqrstuvw'
elif [[ $1 == "-23" ]] ; then
echo "$2" | tr 'x-zabcdefghijklmnopqrstuvw' 'a-z'
elif [[ $1 == "24" ]] ; then
echo "$2" | tr 'a-z' 'y-zabcdefghijklmnopqrstuvwx'
elif [[ $1 == "-24" ]] ; then
echo "$2" | tr 'y-zabcdefghijklmnopqrstuvwx' 'a-z'
elif [[ $1 == "25" ]] ; then
echo "$2" | tr 'a-z' 'z-zabcdefghijklmnopqrstuvwxy'
elif [[ $1 == "-25" ]] ; then
echo "$2" | tr 'z-zabcdefghijklmnopqrstuvwxy' 'a-z'
2025-08-08 07:27:45 -05:00
fi
2025-08-08 07:27:45 -05:00
fi
2025-08-08 06:41:48 -05:00
}
rotl() {
if [[ -n $1 ]] ; then
size=${#1}
if [[ "$size" > 25 ]] && [[ "$size" < 51 ]] ; then
echo "reduce size by 25"
size=$((size - 25))
fi
2025-08-08 07:27:45 -05:00
# if there is a second argument, only the rotation will be printed
if [[ -n $2 ]] ; then
rot $size $1
else
# https://stackoverflow.com/questions/20871534/concatenate-in-bash-the-output-of-two-commands-without-newline-character
{ echo "rot +$size: "; rot $size $1; } | tr "\n" " "
echo
{ echo "rot -$size: "; rot -$size $1; } | tr "\n" " "
echo
fi
fi
}
2025-08-08 06:41:48 -05:00
2025-08-27 19:58:25 -05:00
rote() {
2025-10-31 05:51:19 -05:00
rote36 $1
}
rote10() {
if [[ -n $1 ]] ; then
datestamp=$(date +%y%m%d)_
rotl=$(rotl $1 0)
# ${param/pattern/replacement}
rotl="${rotl/./}"
2025-10-31 10:14:03 -05:00
emailaddress=$datestamp$rotl"@reduxmail.com"
2025-10-31 05:51:19 -05:00
echo $emailaddress
fi
}
rote36() {
if [[ -n $1 ]] ; then
datestamp=$(date +%y%m%d)_
2025-10-31 05:51:19 -05:00
year=$(decimal_to_base36 $(date +%y))
month=$(decimal_to_base36 $(date +%m))
day=$(decimal_to_base36 $(date +%d))
datestamp=${year}${month}${day}_
datestamp=`echo "${datestamp}" | tr '[A-Z]' '[a-z]'`
rotl=$(rotl $1 0)
# ${param/pattern/replacement}
rotl="${rotl/./}"
2025-10-31 10:14:03 -05:00
emailaddress=$datestamp$rotl"@reduxmail.com"
echo $emailaddress
fi
}
2025-05-09 17:42:59 -05:00
2025-10-31 05:51:19 -05:00
2024-05-21 07:00:18 -05:00
# ---
2025-04-12 11:49:58 -05:00
# mounting
2024-05-21 07:00:18 -05:00
# ---
2024-05-21 07:45:20 -05:00
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"
2024-05-11 15:52:06 -05:00
2025-04-06 18:18:37 -05:00
nas() {
2025-05-10 08:59:44 -05:00
if [[ ! -e $dir ]] ; then
sudo mkdir -p "/mnt/nas"
sudo mkdir -p "/mnt/nas-fam"
elif [[ ! -d "/mnt/nas" ]] || [[ ! -d "/mnt/nas-fam" ]] ; then
echo "'/mnt/nas' and/or '/mnt/nas-fam' exists, but is not a directory" 1>&2
fi
2025-04-06 18:53:16 -05:00
if [[ -n $1 ]] ; then
if [[ $1 == "umount" ]] || [[ $1 == "unmount" ]] ; then
echo "umount /mnt/nas & /mnt/nas-fam"
2025-04-06 18:53:16 -05:00
sudo umount /mnt/nas
sudo umount /mnt/nas-fam
2025-04-06 18:53:16 -05:00
elif [[ $1 == "mount" ]] && [[ -n $2 ]]; then
echo "mount /mnt/nas & /mnt/nas-fam"
2025-04-06 18:26:28 -05:00
sudo mount -t cifs -o credentials=/home/poq/syncDir/secrets/misc/lillesorteboks.txt,iocharset=utf8,noperm //$2/fro /mnt/nas
sudo mount -t cifs -o credentials=/home/poq/syncDir/secrets/misc/lillesorteboks.txt,iocharset=utf8,noperm //$2/fam /mnt/nas-fam
2025-04-06 18:39:34 -05:00
tree -L 2 /mnt/nas
tree -L 2 /mnt/nas-fam
2025-04-06 18:26:28 -05:00
else
2025-04-06 18:55:38 -05:00
echo "missing the ip when doing a mount? or, just trying a weird command? try: 'nas {mount,umount} {ip?}'"
2025-04-06 18:26:28 -05:00
fi
2025-04-06 18:35:01 -05:00
else
2025-04-06 18:53:16 -05:00
echo "sry, bud! try: 'nas {mount,umount} {ip?}'"
2025-04-06 18:33:06 -05:00
fi
2025-04-06 18:18:37 -05:00
}
2024-05-06 07:39:24 -05:00
# iso-mount() {
# sudo mount -o loop "$1" /media/iso
# }
# alias iso-unmount="sudo umount /media/iso"
#
2024-05-21 07:00:18 -05:00
2024-05-11 15:52:06 -05:00
2025-04-12 11:49:58 -05:00
# ---
# multimedia
# ---
2024-05-06 07:39:24 -05:00
# 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}"
# }
2024-11-12 06:28:11 -05:00
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'
2024-05-11 15:52:06 -05:00
2024-09-08 18:37:34 -05:00
imgResize() {
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2305_imgResizer/resize.sh 1200 "$1" jpg
2024-09-08 18:32:52 -05:00
}
2025-12-22 15:46:40 -05:00
# https://itsfoss.com/compress-pdf-linux/
pdfCompress() {
2024-09-08 18:32:52 -05:00
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=$1.compressed.pdf $1
2024-07-18 15:47:03 -05:00
}
2025-04-12 11:49:58 -05:00
2024-05-11 15:52:06 -05:00
# ---
# ajp related
# ---
2024-05-06 07:39:24 -05:00
# ajp-cp2dropbox() {
2024-11-12 06:28:11 -05:00
# "/home/poq/syncDir/gitRepos/gt.op.fo/miniProjects/2106_ajpDropboxDeployer/archi.sh" "$1" "$2"
2024-05-06 07:39:24 -05:00
# }
2024-05-11 15:52:06 -05:00
podigy() {
2024-11-12 06:28:11 -05:00
cd /home/poq/syncDir/gitRepos/gt.op.fo/podigy/src
2024-05-11 15:52:06 -05:00
source venv/bin/activate
2024-11-12 06:28:11 -05:00
python archi.py -s /home/poq/syncDir/gitRepos/gt.op.fo/fiodb/db/podigy/sites
2024-05-11 15:52:06 -05:00
deactivate
}
2024-05-06 07:39:24 -05:00
# podigy-pywsdb() {
# podigy
2024-11-12 06:28:11 -05:00
# /home/poq/syncDir/gitRepos/gt.op.fo/pyws/deploy/deployToBuildServer.sh db
2024-05-06 07:39:24 -05:00
# }
#
# # ---
# # c19vaxno
# # ---
2025-06-10 12:57:53 -05:00
# #alias c19vaxno-deploy="/home/poq/syncDir/gitRepos/gitlab.com/c19vaxno/helperScripts/deployToGitlab.sh"
2024-05-20 07:32:15 -05:00
# ---
# 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
#}
2024-05-20 07:32:15 -05:00
2025-04-12 11:49:58 -05:00
2024-05-20 07:32:15 -05:00
# ---
# jeton
# ---
jeton() {
2024-11-12 06:28:11 -05:00
cd /home/poq/syncDir/gitRepos/gt.op.fo/jeton/src/
2024-05-20 07:32:15 -05:00
source venv/bin/activate
2024-11-12 06:28:11 -05:00
python archi.py -s /home/poq/syncDir/gitRepos/gt.op.fo/fiodb/db/jeton/in/sites -r $1
2024-05-20 07:32:15 -05:00
deactivate
}
2024-05-06 07:39:24 -05:00
# # ---
# # server syncs/backups/deploys
# # ---
# srv-guru-backup() {
# echo "[srv-guru-backup]: <=== download wc2sd/exec/"
2024-11-12 06:28:11 -05:00
# 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/
2024-05-06 07:39:24 -05:00
# echo "[srv-guru-backup]: <=== download wc2sd/db/"
2024-11-12 06:28:11 -05:00
# 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/
2024-05-06 07:39:24 -05:00
# echo "[srv-guru-backup]: <=== download cron_export/"
2024-11-12 06:28:11 -05:00
# 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/
2024-05-06 07:39:24 -05:00
# echo "[srv-guru-backup]: <=== download .ssh/"
2024-11-12 06:28:11 -05:00
# 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/
2024-05-06 07:39:24 -05:00
# }
2024-05-11 16:58:43 -05:00
2025-04-12 11:49:58 -05:00
2024-05-11 16:58:43 -05:00
# ---
# 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/ usr@178.156.192.201:/var/www/00101111.xyz/"
2025-11-02 09:16:26 -05:00
alias factor.red-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/mini-websites/factor.red/ usr@178.156.192.201:/var/www/factor.red/"
2025-11-02 09:17:26 -05:00
alias op.fo-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/mini-websites/op.fo/ usr@178.156.192.201:/var/www/op.fo/"
2025-11-11 08:58:35 -05:00
alias wa.fo-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gt.op.fo/mini-websites/wa.fo/ usr@178.156.192.201:/var/www/wa.fo/"
2024-05-11 16:58:43 -05:00
2025-04-12 11:49:58 -05:00
# 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
# }
2024-05-11 16:05:43 -05:00
# ---
# jongleur
# ---
jcssbuilder() {
2024-11-12 06:28:11 -05:00
cd /home/poq/syncDir/gitRepos/gt.op.fo/jCssBuilder/src
2024-05-11 16:05:43 -05:00
source venv/bin/activate
2024-11-12 06:28:11 -05:00
python /home/poq/syncDir/gitRepos/gt.op.fo/jCssBuilder/src/archi.py
2024-05-11 16:05:43 -05:00
deactivate
}
jongleur-activate() {
2025-06-10 12:57:53 -05:00
cd /home/poq/syncDir/gitRepos/gitlab.com/jongleur/src
2024-05-11 16:05:43 -05:00
source venv/bin/activate
}
jump-to-downloads() {
cd /home/poq/syncDir/0_downloads
}
ajp.fm-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/ajp.fm/jongleur/run.sh
2024-05-11 16:05:43 -05:00
deactivate
jump-to-downloads
}
ajp.fm-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/ajp.fm/jongleur/runAll.sh
2024-05-11 16:05:43 -05:00
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/ usr@178.156.192.201:/var/www/ajp.fm/jongleur/"
2024-06-10 19:19:30 -05:00
antijanteboka.com-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/antijanteboka.com/jongleur/run.sh
2024-06-10 19:19:30 -05:00
deactivate
jump-to-downloads
}
antijanteboka.com-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/antijanteboka.com/jongleur/runAll.sh
2024-06-10 19:19:30 -05:00
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/ usr@178.156.192.201:/var/www/antijanteboka.com/jongleur/"
2024-06-07 07:21:40 -05:00
antijantemiriam.com-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/antijantemiriam.com/jongleur/run.sh
2024-06-07 07:21:40 -05:00
deactivate
jump-to-downloads
}
antijantemiriam.com-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/antijantemiriam.com/jongleur/runAll.sh
2024-06-07 07:21:40 -05:00
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/ usr@178.156.192.201:/var/www/antijantemiriam.com/jongleur/"
2024-06-10 19:19:30 -05:00
billgoats.com-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/billgoats.com/jongleur/run.sh
2024-06-10 19:19:30 -05:00
deactivate
jump-to-downloads
}
billgoats.com-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/billgoats.com/jongleur/runAll.sh
2024-06-10 19:19:30 -05:00
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/ usr@178.156.192.201:/var/www/billgoats.com/jongleur/"
2024-06-10 19:19:30 -05:00
curious.art-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/curious.art/jongleur/run.sh
2024-06-10 19:19:30 -05:00
deactivate
jump-to-downloads
}
curious.art-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/curious.art/jongleur/runAll.sh
2024-06-10 19:19:30 -05:00
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/ usr@178.156.192.201:/var/www/curious.art/jongleur/"
2024-06-10 19:19:30 -05:00
curiouscreators.com-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/curiouscreators.com/jongleur/run.sh
2024-06-10 19:19:30 -05:00
deactivate
jump-to-downloads
}
curiouscreators.com-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/curiouscreators.com/jongleur/runAll.sh
2024-06-10 19:19:30 -05:00
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/ usr@178.156.192.201:/var/www/curiouscreators.com/jongleur/"
2024-06-10 19:19:30 -05:00
frodr.com-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/frodr.com/jongleur/run.sh
2024-06-10 19:19:30 -05:00
deactivate
jump-to-downloads
}
frodr.com-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/frodr.com/jongleur/runAll.sh
2024-06-10 19:19:30 -05:00
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/ usr@178.156.192.201:/var/www/frodr.com/jongleur/"
2024-06-10 19:19:30 -05:00
klevstul.com-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/klevstul.com/jongleur/run.sh
2024-06-10 19:19:30 -05:00
deactivate
jump-to-downloads
}
klevstul.com-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/klevstul.com/jongleur/runAll.sh
2024-06-10 19:19:30 -05:00
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/ usr@178.156.192.201:/var/www/klevstul.com/jongleur/"
2024-06-06 19:12:32 -05:00
noctur.no-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/noctur.no/jongleur/run.sh
2024-06-06 19:12:32 -05:00
deactivate
jump-to-downloads
}
noctur.no-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/noctur.no/jongleur/runAll.sh
2024-06-06 19:12:32 -05:00
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/ usr@178.156.192.201:/var/www/noctur.no/jongleur/"
2024-06-22 13:56:56 -05:00
christcast.org-build() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/christcast.org/jongleur/run.sh
2024-06-22 13:56:56 -05:00
deactivate
jump-to-downloads
}
christcast.org-build-all() {
jongleur-activate
2024-11-12 06:28:11 -05:00
/home/poq/syncDir/gitRepos/gt.op.fo/christcast.org/jongleur/runAll.sh
2024-06-22 13:56:56 -05:00
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/ usr@178.156.192.201:/var/www/christcast.org/jongleur/"