282 lines
11 KiB
Bash
282 lines
11 KiB
Bash
# ~/.bashrc: executed by bash(1) for non-login shells.
|
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
|
# for examples
|
|
|
|
# If not running interactively, don't do anything
|
|
case $- in
|
|
*i*) ;;
|
|
*) return;;
|
|
esac
|
|
|
|
# don't put duplicate lines or lines starting with space in the history.
|
|
# See bash(1) for more options
|
|
HISTCONTROL=ignoreboth
|
|
|
|
# append to the history file, don't overwrite it
|
|
shopt -s histappend
|
|
|
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
|
HISTSIZE=1000
|
|
HISTFILESIZE=2000
|
|
|
|
# check the window size after each command and, if necessary,
|
|
# update the values of LINES and COLUMNS.
|
|
shopt -s checkwinsize
|
|
|
|
# If set, the pattern "**" used in a pathname expansion context will
|
|
# match all files and zero or more directories and subdirectories.
|
|
#shopt -s globstar
|
|
|
|
# make less more friendly for non-text input files, see lesspipe(1)
|
|
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
|
|
|
# set variable identifying the chroot you work in (used in the prompt below)
|
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
|
debian_chroot=$(cat /etc/debian_chroot)
|
|
fi
|
|
|
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
|
case "$TERM" in
|
|
xterm-color|*-256color) color_prompt=yes;;
|
|
esac
|
|
|
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
|
# off by default to not distract the user: the focus in a terminal window
|
|
# should be on the output of commands, not on the prompt
|
|
#force_color_prompt=yes
|
|
|
|
if [ -n "$force_color_prompt" ]; then
|
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
|
# We have color support; assume it's compliant with Ecma-48
|
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
|
# a case would tend to support setf rather than setaf.)
|
|
color_prompt=yes
|
|
else
|
|
color_prompt=
|
|
fi
|
|
fi
|
|
|
|
if [ "$color_prompt" = yes ]; then
|
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
|
else
|
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
|
fi
|
|
unset color_prompt force_color_prompt
|
|
|
|
# If this is an xterm set the title to user@host:dir
|
|
case "$TERM" in
|
|
xterm*|rxvt*)
|
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
# enable color support of ls and also add handy aliases
|
|
if [ -x /usr/bin/dircolors ]; then
|
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
|
alias ls='ls --color=auto'
|
|
#alias dir='dir --color=auto'
|
|
#alias vdir='vdir --color=auto'
|
|
|
|
alias grep='grep --color=auto'
|
|
alias fgrep='fgrep --color=auto'
|
|
alias egrep='egrep --color=auto'
|
|
fi
|
|
|
|
# colored GCC warnings and errors
|
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
|
|
|
# some more ls aliases
|
|
alias ll='ls -alF'
|
|
alias la='ls -A'
|
|
alias l='ls -CF'
|
|
|
|
# Add an "alert" alias for long running commands. Use like so:
|
|
# sleep 10; alert
|
|
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
|
|
|
# Alias definitions.
|
|
# You may want to put all your additions into a separate file like
|
|
# ~/.bash_aliases, instead of adding them here directly.
|
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
|
|
|
if [ -f ~/.bash_aliases ]; then
|
|
. ~/.bash_aliases
|
|
fi
|
|
|
|
# enable programmable completion features (you don't need to enable
|
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
|
# sources /etc/bash.bashrc).
|
|
if ! shopt -oq posix; then
|
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
|
. /usr/share/bash-completion/bash_completion
|
|
elif [ -f /etc/bash_completion ]; then
|
|
. /etc/bash_completion
|
|
fi
|
|
fi
|
|
|
|
|
|
# Check for an interactive session
|
|
[ -z "$PS1" ] && return
|
|
|
|
|
|
_PROMPT() {
|
|
_EXIT_STATUS=$?
|
|
[ $_EXIT_STATUS != 0 ] && _EXIT_STATUS_STR=" \[\033[38;5;7m\][\[$(tput sgr0)\]\[\033[38;5;9m\]$_EXIT_STATUS\[$(tput sgr0)\]\[\033[38;5;7m\]]\[$(tput sgr0)\]"
|
|
|
|
_BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
|
|
if [ ! $_BRANCH == "" ]
|
|
then
|
|
_BRANCH_STR="[\[$(tput sgr0)\]\[\033[38;5;11m\]$_BRANCH\[$(tput sgr0)\]\[\033[38;5;7m\]]"
|
|
else
|
|
_BRANCH_STR=""
|
|
fi
|
|
|
|
PS1="\[\033[38;5;14m\]\u\[$(tput sgr0)\]\[\033[38;5;15m\]@\[$(tput sgr0)\]\[\033[38;5;6m\]\h\[$(tput sgr0)\] \[$(tput sgr0)\]\[\033[38;5;7m\]╺─╸\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;7m\][\[$(tput sgr0)\]\[\033[38;5;14m\]\W\[$(tput sgr0)\]\[\033[38;5;7m\]]\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;7m\]$_BRANCH_STR\[$(tput sgr0)\]\[\033[38;5;15m\] \n\[$(tput sgr0)\]\[\033[38;5;7m\][\[$(tput sgr0)\]\[\033[38;5;11m\]\A\[$(tput sgr0)\]\[\033[38;5;7m\]]\[$(tput sgr0)\]\[\033[38;5;15m\]$_EXIT_STATUS_STR \[$(tput sgr0)\]\[\033[38;5;7m\]>>\[$(tput sgr0)\] "
|
|
unset _EXIT_STATUS_STR
|
|
unset _EXIT_STATUS
|
|
unset _BRANCH_STR
|
|
unset _BRANCH
|
|
}
|
|
|
|
PROMPT_COMMAND=_PROMPT
|
|
|
|
# ALIASES
|
|
|
|
##### alias kali-tools='sudo python3 ~/Software/git/portkali/portkali.py'
|
|
##### alias ll='ls -alF'
|
|
##### alias la='ls -A'
|
|
##### alias l='ls -CF'
|
|
##### alias ll="ls -lAF"
|
|
##### alias h="history 25"
|
|
##### alias office="cd ~ && clear && offlineimap && mu index --maildir ~/Mail"
|
|
##### alias rss="newsboat"
|
|
##### alias audio-ext="sysctl hw.snd.default_unit=4"
|
|
##### alias audio-int="sysctl hw.snd.default_unit=0"
|
|
##### alias ll="ls -lah"
|
|
##### alias corona="curl https://corona-stats.online"
|
|
##### # alias nasm="sudo sshfs -o uid=1000 -o gid=1000 -o allow_other root@192.168.178.200:/hdds/ /media/anon/nas "
|
|
##### alias corona-germany="curl https://corona-stats.online/germany"
|
|
##### alias torrent="aria2c --follow-torrent=mem --seed-time=0 -j 10"
|
|
##### alias fetch="neofetch --backend w3m --source ~/Bilder/tiger.png"
|
|
##### alias calendar="khal interactive"
|
|
##### alias bin=" | nc termbin.com 9999"
|
|
##### alias joplin="~/.npm-global/bin/joplin"
|
|
##### alias chrome="chrome --enable-features=WebUIDarkMode --force-dark-mode"
|
|
##### alias technobase="mpv http://listen.technobase.fm/tunein-mp3"
|
|
##### alias anonradio="torsocks mpv http://anonradio.net:8000/anonradio"
|
|
##### alias temps="watch -n 2 sensors"
|
|
##### alias backup="~/git/rsync-time-backup/rsync_tmbackup.sh ~/ /media/anon/8TB/backup/"
|
|
##### alias backup-ext="Software/git/rsync-time-backup/rsync_tmbackup.sh ~/ hetzner:/home/desktop/"
|
|
##### alias cal="ncal -w3C"
|
|
##### alias nanochan="torsocks w3m -o auto_image=FALSE https://nanochanqzaytwlydykbg5nxkgyjxk3zsrctxuoxdmbx5jbh2ydyprid.onion/"
|
|
##### alias didw="torsocks w3m -o auto_image=FALSE http://germanyruvvy2tcw.onion"
|
|
##### alias download-world="curl -s http://artscene.textfiles\.com/vt100/globe.vt | pv -L9600 -q"
|
|
##### alias darknet="torsocks w3m -o auto_image=FALSE .w3m/bookmark.html"
|
|
##### alias reechat="ssh weechat@vps -t screen -rd weechat"
|
|
##### alias cast-tay="sudo openvpn ~/Seafile/Crypt/tay.ovpn"
|
|
##### alias cast-tinfoil-hat="openvpn ~/Seafile/Crypt/vps.ovpn"
|
|
##### alias xfix="~/Software/scripts/xfix.sh"
|
|
##### alias goaccess="ssh tay -t goaccess -c /var/log/nginx/access.log"
|
|
##### alias config="git --git-dir=$HOME/.cfg/ --work-tree=$HOME"
|
|
##### alias berliner-rundfunk-91-4="mpv http://stream.berliner-rundfunk.de/brf/mp3-128/internetradio"
|
|
##### alias drop="~/Software/bin/plik"
|
|
##### alias p0wn.sh="./git/rice/hack.exe"
|
|
##### alias bg="feh -z ~/ssd/Seafile/dat/dont\ click/Wallpapers/"
|
|
##### alias dotup="dotfiles-remote-autoupdate && dotfiles-autoupdate"
|
|
##### alias poweroff="sudo poweroff"
|
|
##### alias installation-age="stat -c %w /"
|
|
##### alias db="distrobox"
|
|
##### alias kali="distrobox enter kali"
|
|
##### alias arch="distrobox enter arch"
|
|
##### alias fedora="distrobox enter fedora"
|
|
##### alias opensuse="distrobox enter opensuse"
|
|
##### alias ubuntu="distrobox enter ubuntu"
|
|
##### alias gentoo="distrobox enter gentoo"
|
|
##### alias debiantesting="distrobox enter debiantesting"
|
|
##### alias debian="distrobox enter debian"
|
|
##### alias matrix="gomuks"
|
|
##### alias nasm="sshfs -o uid=1000 -o gid=1000 -o reconnect u339896@u339896.your-storagebox.de:/ /media/anon/storagebox/"
|
|
##### alias nasmu="sudo umount /media/anon/storagebox"
|
|
##### alias mountnx="mount -t davfs https://nx.tinfoil-hat.net/remote.php/dav/files/Admin/Backups /media/anon/nextcloud"
|
|
##### alias monero=" cd ~/Software/Archive/xmrig-6.19.2/ && sudo ./xmrig -o xmr-eu1.nanopool.org:14433 -u 43JXSU4beuCXTDyBPnXfgK6jtrSTAqAaMSqVDYTdQkf1CdJsiPALLmmASAdhHsXgA698vobsjejp7VBagTA32QVbJ9UCq2A --tls --coin monero && cd"
|
|
##### alias stable-diffusion="bash ~/Software/scripts/stable-diffusion.sh"
|
|
##### alias kali="sudo docker run --tty --interactive kalilinux/kali-rolling"
|
|
##### alias youtube-dl="yt-dlp --cookies-from-browser chrome:~/.var/app/com.brave.Browser -o '%(title).100B [%(id)s].%(ext)s'"
|
|
##### alias webserver="python3 -m http.server"
|
|
alias installation-age="stat -c %w / | awk '{print $1;}'"
|
|
#####
|
|
# Functions
|
|
|
|
record-small-screen() {
|
|
filename="cast-$(date +"%Y-%m-%d_%H_%M")-$(uname -s)-$(uname -m)"
|
|
ffmpeg -f alsa -ac 2 -f x11grab -r 25 -s 1366x768 -i :0.0 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast -crf 0 -threads 0 -acodec pcm_s16le -y ~/$filename.mkv
|
|
}
|
|
record-big-screen(){
|
|
filename="cast-$(date +"%Y-%m-%d_%H_%M")-$(uname -s)-$(uname -m)"
|
|
ffmpeg -f alsa -ac 2 -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast -crf 0 -threads 0 -acodec pcm_s16le -y ~/$filename.mkv
|
|
}
|
|
|
|
wetter() { curl wttr.in/$1; }
|
|
|
|
ytdl() {
|
|
torsocks mpv ytdl://$@
|
|
}
|
|
news() {
|
|
NNTPSERVER='nntp.aioe.org' && export NNTPSERVER
|
|
slrn -f ~/.jnewsrc --create
|
|
}
|
|
|
|
# Download Plemora emojis; requires curl and jq
|
|
|
|
pleroma-emoji-dl() {
|
|
server=$1
|
|
|
|
curl $server/api/v1/custom_emojis | jq -r 'map(.url)|join("\n")|@text' | xargs wget --random-wait --wait=1
|
|
}
|
|
|
|
# NOTES FILE(S)
|
|
notes() {
|
|
VAR=$1
|
|
if [ -z $VAR ]; then
|
|
/usr/local/bin/vim sftp://chrissly@goliath.tinfoil-hat.net/notes/default.txt
|
|
elif [ "$VAR" == "-h" ]; then
|
|
printf "Usage: notes [-l] [file]\n";
|
|
printf " notes Open/Create \"default.txt\" file\n"
|
|
printf " notes <file> Open/Create \"<file>.txt\" file\n"
|
|
printf " notes -l Show available note files\n"
|
|
printf " notes -h Show this help\n"
|
|
elif [ "$VAR" == "-l" ]; then
|
|
printf "List of notes:\n"
|
|
ssh chrissly@sina.tinfoil-hat.net "ls -1 \$HOME/notes/*.txt | sed 's,.*/\(.*\)\.txt, - \1,g'"
|
|
else
|
|
vim sftp://chrissly@goliath.tinfoil-hat.net/notes/$1.txt
|
|
fi
|
|
}
|
|
|
|
|
|
# Dotfiles - Autocommit
|
|
function dotfiles-autoupdate {
|
|
config add -u && \
|
|
config commit -m "Update $(date +"%Y-%m-%d %H:%M") $(uname -s)/$(uname -m)" && \
|
|
config push origin master
|
|
}
|
|
|
|
# Vars
|
|
GPG_TTY=$(tty)
|
|
NNTPSERVER='news.tilde.club'
|
|
TERMINAL='/usr/local/bin/urxvt'
|
|
|
|
# Exports
|
|
export GPG_TTY
|
|
export LC_ALL=de_DE.UTF-8
|
|
export NNTPSERVER
|
|
export PATH=$HOME/.bin:$PATH
|
|
export EDITOR=vim
|
|
|
|
bind -s 'set completion-ignore-case on'
|
|
# source ~/Software/git/ble.sh/out/ble.sh
|
|
|
|
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
|