#!/usr/bin/env bash #echo " "; #echo " ▐▄• ▄ .▄▄ · ▄▄▄▄▄▄▄▄ .·▄▄▄▄▄▄ . ▐ ▄ ▄▄▄ ▄▄· "; #echo " █▌█▌▪▐█ ▀. •██ ▀▄.▀·▐▄▄·▀▄.▀·•█▌▐█▀▄ █·▐█ ▌▪"; #echo " ·██· ▄▀▀▀█▄ ▐█.▪▐▀▀▪▄██▪ ▐▀▀▪▄▐█▐▐▌▐▀▀▄ ██ ▄▄"; #echo " ▪▐█·█▌▐█▄▪▐█ ▐█▌·▐█▄▄▌██▌.▐█▄▄▌██▐█▌▐█•█▌▐███▌"; #echo " ▀ •▀▀ ▀▀ ▀▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀▀ █▪.▀ ▀·▀▀▀ "; # If not running interactively, don't do anything [[ $- != *i* ]] && return # shopt shopt -s autocd # change to named directory shopt -s cdspell # autocorrects cd misspellings shopt -s checkwinsize # checks term size when bash regains control shopt -s cmdhist # save multi-line commands in history as single line shopt -s dotglob # include dotfiles in filename expansion shopt -s expand_aliases # expand aliases shopt -s extglob # extended pattern matching shopt -s histappend # do not overwrite history # tab-completion 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 # start gpg/ssh-agent unset SSH_AGENT_PID if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" fi export GPG_TTY=$(tty) gpg-connect-agent updatestartuptty /bye >/dev/null # if ! pgrep -u "$USER" ssh-agent >/dev/null; then # ssh-agent -t 1h >"$XDG_RUNTIME_DIR/ssh-agent.env" # fi # if [[ ! "$SSH_AUTH_SOCK" ]]; then # source "$XDG_RUNTIME_DIR/ssh-agent.env" >/dev/null # fi envsetup() { umask 022 alias which='command -v' source build/envsetup.sh export LANG=C.UTF-8 export _JAVA_OPTIONS=-XX:-UsePerfData export BUILD_DATETIME=$(cat out/build_date.txt 2>/dev/null || date -u +%s) echo "BUILD_DATETIME=$BUILD_DATETIME" export BUILD_NUMBER=$(cat out/soong/build_number.txt 2>/dev/null || date -u -d @$BUILD_DATETIME +%Y%m%d00) echo "BUILD_NUMBER=$BUILD_NUMBER" export DISPLAY_BUILD_NUMBER=true export BUILD_USERNAME=\u0000 export BUILD_HOSTNAME=\u0000 } # extract | usage: ex ex() { if [ -f "$1" ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1;; *.7z) 7z x $1 ;; *.deb) ar x $1 ;; *.tar.xz) tar xf $1 ;; *.tar.zst) unzstd $1 ;; *) echo "'$1' cannot be extracted via ex()" ;; esac else echo "'$1' is not a valid file" fi } # git-cherry-pick | usage: gcp gcp() { GCP_GIVEN=$1 GCP_URL=$(echo ${GCP_GIVEN} | awk -F'/' '{print $1FS$2FS$3FS$4FS$5}') GCP_COMMIT=$(echo ${GCP_GIVEN} | awk -F'/' '{print $7}') git fetch $GCP_URL $GCP_COMMIT && git cherry-pick FETCH_HEAD } # installed? | usage: is_available is_available() { command -v "$1" >/dev/null 2>&1 } # List lib dependencies of any lib/bin list_blob_deps() { readelf -d $1 | grep "\(NEEDED\)" | sed -r "s/.*\[(.*)\]/\1/" } # pixeldrain upload | usage: pdup PD_API_KEY="$(cat /mnt/files/Documents/store/pixeldrain)" pdup() { [ -z "$1" ] && echo "Error: File not specified!" && return ID=$(curl --progress-bar -T "$1" -u :$PD_API_KEY https://pixeldrain.com/api/file/ | cat | grep -Po '(?<="id":")[^"]*') echo -e "\nhttps://pixeldrain.com/u/$ID" } # repo sync++ | usage: repofastsync repofastsync() { #time schedtool -B -e ionice -n 1 \ time "$(command -v repo)" sync \ -c --no-tags --no-clone-bundle --force-sync -j16 \ "$@" } # random color-script scheme test scheme_test() { local COLOR_SCRIPT_REPO=https://api.github.com/repos/stark/Color-Scripts/contents/color-scripts wget -q -O - $(curl -s $COLOR_SCRIPT_REPO | jq '.[] | "\(.path) \(.download_url)"' -r | shuf -n1 | cut -d " " -f2) | bash } # tere file explorer | usage: tere tere() { local result=$(command tere "$@") [ -n "$result" ] && cd -- "$result" } # fetch random git commit message whatthecommit() { curl --silent --fail https://whatthecommit.com/index.txt } # aliases alias ..="cd .." alias adp="adb push" alias cls="echo -e '\0033\0143'" alias config="/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME" alias cp="cp -i" alias df="df -h" alias du="du -c -h" alias e="$EDITOR" alias fetch="neofetch --ascii ~/.config/neofetch/logo-ascii" alias free="free -m" alias grep="grep --color=tty -d skip" alias jctl="journalctl -p 3 -xb" alias ls='exa -l --color=always --group-directories-first' alias ll='exa -al --color=always --group-directories-first' alias lt='exa -aT --color=always --group-directories-first' alias l.='exa -a | egrep "^\."' alias merge='xrdb -merge ~/.Xresources' alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" alias mkcheetah="m otatools vendorbootimage vendorkernelbootimage target-files-package" alias mkdir="mkdir -p -v" alias more="less" alias mv="mv -i" alias nano="nano -au" alias ping="ping -c 5" alias psa="ps auxf" alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" alias psmem='ps auxf | sort -nr -k 4' alias pscpu='ps auxf | sort -nr -k 3' alias qr_read="maim -qs | zbarimg -q --raw - | xclip -selection clipboard -f" alias reboot="sudo systemctl -i reboot" alias reload="clear && reset && cls && source $HOME/.xstefenrc" alias rm="rm -i" alias rp="repopick " alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash' alias showcommands="croot && gzip -cd out/verbose.log.gz | less -R" alias ss_sel_clip="maim -s | xclip -selection clipboard -t image/png" alias ss_active_save="maim -i $(xdotool getactivewindow) ~/Pictures/maim$(date +%s).jpg" alias ss_full_save="maim ~/Pictures/maim-$(date +%s).png" alias startx="startx $HOME/.xinitrc $@" if is_available doas; then complete -cf doas alias sudoedit="doas rnano" else alias sudo="sudo " fi alias sysu="systemctl --user" alias update-grub="grub-mkconfig -o /boot/grub/grub.cfg" alias wget="wget -c -t 0 --retry-connrefused" alias wttr="curl wttr.in/dfw?format=3" alias obxp='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""' #alias xup="sudo pacman -Sy && sudo powerpill -Su && paru -Su" alias xup='yay' alias yabs="curl -sL yabs.sh | bash" # env vars export USE_CCACHE=1 export CCACHE_DIR="/mnt/ccache" export CCACHE_EXEC="$(command -v ccache)" export EDITOR="nano" export WITHOUT_CHECK_API=true export SKIP_ABI_CHECKS=true export WITH_GAPPS=true export WITH_GMS=true export KERNEL_LTO=thin #export GLOBAL_THINLTO=true export USE_THINLTO_CACHE=true # mounts / path [[ $PATH != ?(*:)$HOME/.local/bin?(:*) ]] && export PATH=$HOME/.local/bin:$PATH [[ $PATH != ?(*:)$HOME/.cargo/bin?(:*) ]] && export PATH=$PATH:$HOME/.cargo/bin [[ ! $(findmnt -rno SOURCE,TARGET /mnt/ccache) ]] && mount /mnt/ccache # ------------------------------------------------------------------ # misc # ------------------------------------------------------------------ # mondays eval $(thefuck --alias FUCK) # sudo prompt colors export SUDO_PROMPT="$(tput bold setab 1 setaf 7)[sudo]$(tput sgr0) $(tput setaf 6)password for$(tput sgr0) $(tput setaf 5)%p$(tput sgr0): " # prompt #colorscript -e random #eval "$(starship init bash)" SBP_PATH=$HOME/.sbp . ${SBP_PATH}/sbp.bash