__mkps1_debian_chroot() { # This string is intentionally single-quoted: # It will be evaluated when $PS1 is evaluated to generate the prompt each time. echo '${debian_chroot:+($debian_chroot)}'; } __mkps1_inject_exitcode() { local code=$1 if [ "$code" -ne "0" ]; then echo " $code " fi } __mkps1_exitcode() { local bg_red=`tput setab 1`; local white=`tput setaf 15`; local reset=`tput sgr0`; # We need to run a function at runtime to evaluate the exitcode. echo "\[${bg_red}${white}\]\$(__mkps1_inject_exitcode \$?)\[${reset}\]" } __mkps1_time() { local BG_GRAY=`tput setab 240`; local white=`tput setaf 7`; local reset=`tput sgr0`; echo "\[${BG_GRAY}${white}\] \t \[${reset}\]" } __mkps1_username() { local cyan=`tput setaf 45`; local reset=`tput sgr0`; echo "\[${cyan}\] \u \[${reset}\]"; } __mkps1_arrows() { local bold=`tput bold`; local red=`tput setaf 1`; local green=`tput setaf 34`; local reset=`tput sgr0`; echo "\[${bold}${red}\]🮥🮥\[${green}\]🮥\[${reset}\]"; } __mkps1_workdir() { local bold=`tput bold`; local cyan=`tput setaf 45`; local reset=`tput sgr0`; echo "\[${bold}${cyan}\]\w\[${reset}\]"; } __mkps1_git() { local magenta=`tput setaf 213`; local reset=`tput sgr0`; # Escaping the $ is intentional: # This is evaluated when the prompt is generated. echo "\$(__git_ps1 ' (\[${magenta}\]%s\[${reset}\])')" } __mkps1_box_top() { local cyan=`tput setaf 45`; local reset=`tput sgr0`; echo "\[${cyan}\]╭\[${reset}\]" } __mkps1_box_bottom() { local cyan=`tput setaf 45`; local reset=`tput sgr0`; echo "\[${cyan}\]╰\[${reset}\]" } __mkps1_user_prompt() { local bold=`tput bold`; local reset=`tput sgr0`; echo "\[${bold}\]\$\[${reset}\] "; } __mkps1() { local ps1="\n$(__mkps1_box_top)$(__mkps1_debian_chroot)$(__mkps1_exitcode)$(__mkps1_time)$(__mkps1_username)$(__mkps1_arrows) $(__mkps1_workdir)$(__mkps1_git)\n$(__mkps1_box_bottom)$(__mkps1_user_prompt)"; echo "$ps1"; } transfer(){ if [ $# -eq 0 ];then echo "No arguments specified.\nUsage:\n transfer \n ... | transfer ">&2;return 1;fi;if tty -s;then file="$1";file_name=$(basename "$file");if [ ! -e "$file" ];then echo "$file: No such file or directory">&2;return 1;fi;if [ -d "$file" ];then file_name="$file_name.zip" ,;(cd "$file"&&zip -r -q - .)|curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null,;else cat "$file"|curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null;fi;else file_name=$1;curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null;fi;} alias transfer=transfer # 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 a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac 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="\n$(__mkps1_box_top)$(__mkps1_debian_chroot)$(__mkps1_exitcode)$(__mkps1_time)$(__mkps1_username)$(__mkps1_arrows) $(__mkps1_workdir)$(__mkps1_git)\n$(__mkps1_box_bottom)$(__mkps1_user_prompt)" 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' alias p3='python3' alias apk='sudo apk' # 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 source ~/.git-prompt.sh PATH="$PATH:~/.local/bin"