From 2e96a05b08a9480407ea790c2853cb2f81cc561d Mon Sep 17 00:00:00 2001 From: Daniel Legt Date: Mon, 4 Dec 2023 21:00:29 +0200 Subject: [PATCH] + Initial Bash Configuration --- .gitignore | 0 configs/bash/.bashrc.k | 143 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100644 .gitignore create mode 100644 configs/bash/.bashrc.k diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/configs/bash/.bashrc.k b/configs/bash/.bashrc.k new file mode 100644 index 0000000..46b596e --- /dev/null +++ b/configs/bash/.bashrc.k @@ -0,0 +1,143 @@ +################################### +# ___ __ __ __ # +# |__/ /\ | / \ |__) / ` # +# | \ /~~\ | \__/ | \ \__, # +################################### + +# ----- [ Colors ] ---- + +# Add color in manpages for less +export LESS_TERMCAP_mb=$'\E[01;31m' +export LESS_TERMCAP_md=$'\E[01;31m' +export LESS_TERMCAP_me=$'\E[0m' +export LESS_TERMCAP_se=$'\E[0m' +export LESS_TERMCAP_so=$'\E[01;44;33m' +export LESS_TERMCAP_ue=$'\E[0m' +export LESS_TERMCAP_us=$'\E[01;32m' + +YELLOW='\033[1;33m' +GRAY='\033[1;30m' +WHITE='\033[1;37m' +RESET='\033[0m' + +# ----- [ Functions ] ----- + +# Fetch the current folder's git branch and tag +git_branch_tag() { + # Call the original __git_ps1 function to get the branch name + local branch=$(__git_ps1 "%s") + + # Get the latest tag + local tag=$(git describe --tags --abbrev=0 2>/dev/null) + + # If we are in a git repository and there is a tag + if [[ -n $branch && -n $tag ]]; then + echo -n "$branch:$tag" + elif [[ -n $branch ]]; then + echo -n "$branch" + fi +} + + +# Extracts any archive(s) (if unp isn't installed) +extract () { + for archive in $*; do + if [ -f $archive ] ; then + case $archive in + *.tar.bz2) tar xvjf $archive ;; + *.tar.gz) tar xvzf $archive ;; + *.bz2) bunzip2 $archive ;; + *.rar) rar x $archive ;; + *.gz) gunzip $archive ;; + *.tar) tar xvf $archive ;; + *.tbz2) tar xvjf $archive ;; + *.tgz) tar xvzf $archive ;; + *.zip) unzip $archive ;; + *.Z) uncompress $archive ;; + *.7z) 7z x $archive ;; + *) echo "don't know how to extract '$archive'..." ;; + esac + else + echo "'$archive' is not a valid file!" + fi + done +} + +# Searches for text in all files in the current folder +ftext () +{ + # -i case-insensitive + # -I ignore binary files + # -H causes filename to be printed + # -r recursive search + # -n causes line number to be printed + # optional: -F treat search term as a literal, not a regular expression + # optional: -l only print filenames and not the matching lines ex. grep -irl "$1" * + grep -iIHrn --color=always "$1" . | less -r +} + +# Copy file with a progress bar +cpp() +{ + set -e + strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \ + | awk '{ + count += $NF + if (count % 10 == 0) { + percent = count / total_size * 100 + printf "%3d%% [", percent + for (i=0;i<=percent;i++) + printf "=" + printf ">" + for (i=percent;i<100;i++) + printf " " + printf "]\r" + } + } + END { print "" }' total_size=$(stat -c '%s' "${1}") count=0 +} + +# IP address lookup +alias whatismyip="whatsmyip" +function whatsmyip () +{ + # Dumps a list of all IP addresses for every device + # /sbin/ifconfig |grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'; + + # Internal IP Lookup + echo -n "Internal IP: " ; /sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}' + + # External IP Lookup + echo -n "External IP: " ; curl ipconfig.sh; echo ""; +} + +# ----- [ Aliases ] ----- + +## Exa +if command -v exa &> /dev/null; then + alias ls='exa --icons' + alias ll='exa --icons --long' +else + echo -e "${YELLOW}[${GRAY}Warn${YELLOW}]:${GRAY} Exa missing, recommended to install for full experience.${WHITE}${RESET}" +fi + +## Custom +alias tfthis="xprop WM_CLASS" # Find out what is the programm that this window comes from called + + +#Generate a random strong password +alias genpasswd="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo" + +#Expand current directory structure in tree form +alias treed="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'" + +#Show active ports +alias n_ports='netstat -tulanp' + +# ----- [ Looks ] ----- + + +# PS1 +# export PS1=" \[\033[38;5;220m\]кπ \[\033[38;5;192m\]\w\[\e[0m\]$ " # Old +export PS1=" \[\033[38;5;220m\]кπ \[\033[38;5;192m\]\w\[\e[0m\]\$(__git_ps1 ' \[\e[38;5;87m\]%s\[\e[0m\]')\$ " +export PS1=" \[\033[38;5;220m\]кπ \[\033[38;5;192m\]\w\[\e[0m\]\$(if [[ \$(git rev-parse --is-inside-work-tree 2>/dev/null) == 'true' ]]; then echo -n ' \[\e[38;5;87m\]'; git_branch_tag; echo -n '\[\e[0m\]'; fi)\$ " \ No newline at end of file