commit
91aa536724
99
.bashrc
99
.bashrc
@ -1,98 +1,5 @@
|
|||||||
# .bashrc by TheK4n
|
# .bashrc by TheK4n
|
||||||
|
# https://github.com/TheK4n/dotfiles
|
||||||
|
|
||||||
if [ -f $HOME/.bash_aliases ]; then
|
if [ -f $HOME/.subbash/sourcer ]; then
|
||||||
source $HOME/.bash_aliases
|
source $HOME/.subbash/sourcer
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f $HOME/.bash_functions ]; then
|
|
||||||
source $HOME/.bash_functions
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/bash_completion.d/all ]; then
|
|
||||||
source /etc/bash_completion.d/all
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if type shopt 2>/dev/null 1>&2; then
|
|
||||||
|
|
||||||
# corrections
|
|
||||||
shopt -s cdspell
|
|
||||||
shopt -s dirspell
|
|
||||||
|
|
||||||
shopt -s histappend
|
|
||||||
PROMPT_COMMAND='history -a'
|
|
||||||
fi
|
|
||||||
|
|
||||||
export HISTSIZE=10000
|
|
||||||
export HISTIGNORE="&:l[lsa\.]:[bf]g:exit:q:clear:c:history:h"
|
|
||||||
|
|
||||||
|
|
||||||
parse_git_branch() {
|
|
||||||
|
|
||||||
if ! [ -x "$(which git)" ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local branch status
|
|
||||||
|
|
||||||
# current branch
|
|
||||||
branch="$(git branch --show-current 2> /dev/null)"
|
|
||||||
|
|
||||||
# current status
|
|
||||||
# M = modified
|
|
||||||
# A = added
|
|
||||||
# D = deleted
|
|
||||||
# R = renamed
|
|
||||||
# C = copied
|
|
||||||
# U = updated but unmerged
|
|
||||||
|
|
||||||
status="$(git status -s 2>/dev/null | cut -c 1 | sort -u | tr -d " \n?")"
|
|
||||||
|
|
||||||
if [ -n "$status" ]; then
|
|
||||||
status="-[$status]"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$branch" ]]; then
|
|
||||||
echo "($branch)$status"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
virtualenv_info() {
|
|
||||||
|
|
||||||
# Get Virtual Env
|
|
||||||
if [[ -n "$VIRTUAL_ENV" ]]; then
|
|
||||||
# Strip out the path and just leave the env name
|
|
||||||
echo "($(basename $VIRTUAL_ENV))"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
close_color='\[\e[m\]'
|
|
||||||
red_color='\[\033[1;31m\]'
|
|
||||||
|
|
||||||
prompt_color='\[\033[;32m\]'
|
|
||||||
info_color='\[\033[1;34m\]'
|
|
||||||
prompt_symbol='㉿'
|
|
||||||
end_symbol='$'
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$EUID" -eq 0 ]; then # Change prompt colors and symbols for root user
|
|
||||||
prompt_color='\[\033[;94m\]'
|
|
||||||
info_color='\[\033[1;31m\]'
|
|
||||||
end_symbol='#'
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
|
|
||||||
prompt_symbol='📡'
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
|
||||||
VENV_="\$(virtualenv_info)";
|
|
||||||
|
|
||||||
BRANCH_="\$(parse_git_branch)";
|
|
||||||
|
|
||||||
# last
|
|
||||||
PS1="\n$prompt_color┌─${VENV_}─($close_color$info_color\u$prompt_symbol\H$close_color$prompt_color)-[$close_color\w$prompt_color]$close_color $red_color${BRANCH_}$close_color\n$prompt_color└─$close_color$info_color$end_symbol$close_color "
|
|
||||||
|
|||||||
10
.profile
10
.profile
@ -5,13 +5,3 @@ if [ -n "$BASH_VERSION" ]; then
|
|||||||
. "$HOME/.bashrc"
|
. "$HOME/.bashrc"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set PATH so it includes user's private bin if it exists
|
|
||||||
if [ -d "$HOME/bin" ] ; then
|
|
||||||
export PATH="$PATH:$HOME/bin"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set PATH so it includes user's private bin if it exists
|
|
||||||
if [ -d "$HOME/.local/bin" ] ; then
|
|
||||||
export PATH="$PATH:$HOME/.local/bin"
|
|
||||||
fi
|
|
||||||
|
|||||||
16
.subbash/export
Normal file
16
.subbash/export
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
export EDITOR=vim
|
||||||
|
|
||||||
|
export HISTSIZE=10000
|
||||||
|
export HISTFILESIZE=10000
|
||||||
|
export HISTTIMEFORMAT="%F %T "
|
||||||
|
export HISTIGNORE="&:l[lsa\.]:[bf]g:exit:q:clear:c:history:h"
|
||||||
|
|
||||||
|
# set PATH so it includes user's private bin if it exists
|
||||||
|
if [ -d "$HOME/bin" ] ; then
|
||||||
|
export PATH="$PATH:$HOME/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set PATH so it includes user's private bin if it exists
|
||||||
|
if [ -d "$HOME/.local/bin" ] ; then
|
||||||
|
export PATH="$PATH:$HOME/.local/bin"
|
||||||
|
fi
|
||||||
90
.subbash/prompt
Normal file
90
.subbash/prompt
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
|
||||||
|
parse_git_branch() {
|
||||||
|
|
||||||
|
if ! [ -x "$(which git)" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local branch status
|
||||||
|
|
||||||
|
# current branch
|
||||||
|
branch="$(git branch --show-current 2> /dev/null)"
|
||||||
|
|
||||||
|
# current status
|
||||||
|
# M = modified
|
||||||
|
# A = added
|
||||||
|
# D = deleted
|
||||||
|
# R = renamed
|
||||||
|
# C = copied
|
||||||
|
# U = updated but unmerged
|
||||||
|
|
||||||
|
status="$(git status -s 2>/dev/null | cut -c 1 | sort -u | tr -d " \n?")"
|
||||||
|
|
||||||
|
if [ -n "$status" ]; then
|
||||||
|
status="-[$status]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$branch" ]]; then
|
||||||
|
echo "($branch)$status"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
virtualenv_info() {
|
||||||
|
|
||||||
|
# Get Virtual Env
|
||||||
|
if [[ -n "$VIRTUAL_ENV" ]]; then
|
||||||
|
# Strip out the path and just leave the env name
|
||||||
|
echo "($(basename "$VIRTUAL_ENV"))"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
rightprompt()
|
||||||
|
{
|
||||||
|
if [[ $1 -ne 0 ]]; then
|
||||||
|
printf "%*s" $COLUMNS "$1 ⨯"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export PROMPT_COMMAND=__prompt_command
|
||||||
|
|
||||||
|
__prompt_command() {
|
||||||
|
|
||||||
|
local EXIT=${PIPESTATUS[-1]}
|
||||||
|
|
||||||
|
close_color='\[\e[m\]'
|
||||||
|
red_color='\[\033[1;31m\]'
|
||||||
|
|
||||||
|
prompt_color='\[\033[;32m\]'
|
||||||
|
info_color='\[\033[1;34m\]'
|
||||||
|
prompt_symbol='㉿'
|
||||||
|
end_symbol='$'
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$EUID" -eq 0 ]; then # Change prompt colors and symbols for root user
|
||||||
|
prompt_color='\[\033[;94m\]'
|
||||||
|
info_color='\[\033[1;31m\]'
|
||||||
|
end_symbol='#'
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
|
||||||
|
prompt_symbol='📡'
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||||
|
|
||||||
|
VENV_="\$(virtualenv_info)"
|
||||||
|
BRANCH_="\$(parse_git_branch)"
|
||||||
|
TERMINAL_NAME="\[\e]2;${0^^}\a\]"
|
||||||
|
|
||||||
|
if [ $EXIT != 0 ]; then
|
||||||
|
PS1="$TERMINAL_NAME\n$prompt_color┌─${VENV_}─($close_color$info_color\u$prompt_symbol\H$close_color$prompt_color)-[$close_color\w$prompt_color]$close_color $red_color${BRANCH_}$close_color\n\[$(tput sc; rightprompt $EXIT; tput rc)\]$prompt_color└─$close_color$info_color$end_symbol$close_color "
|
||||||
|
else
|
||||||
|
PS1="$TERMINAL_NAME\n$prompt_color┌─${VENV_}─($close_color$info_color\u$prompt_symbol\H$close_color$prompt_color)-[$close_color\w$prompt_color]$close_color $red_color${BRANCH_}$close_color\n$prompt_color└─$close_color$info_color$end_symbol$close_color "
|
||||||
|
fi
|
||||||
|
|
||||||
|
PS2="> "
|
||||||
|
}
|
||||||
11
.subbash/shopt
Normal file
11
.subbash/shopt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
## Misc
|
||||||
|
shopt -s histappend ## Appends hist on exit
|
||||||
|
shopt -s cmdhist ## Save multi-line hist as one line
|
||||||
|
shopt -s checkwinsize ## Update col/lines after commands
|
||||||
|
|
||||||
|
### Completion
|
||||||
|
shopt -s autocd 2>/dev/null ## Can change dir without `cd`
|
||||||
|
shopt -s cdspell ## Fixes minor spelling errors in cd paths
|
||||||
|
shopt -s no_empty_cmd_completion ## Stops empty line tab comp
|
||||||
|
shopt -s dirspell 2>/dev/null ## Tab comp can fix dir name typos
|
||||||
23
.subbash/sourcer
Normal file
23
.subbash/sourcer
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
if [ -f "$HOME"/.subbash/aliases ]; then
|
||||||
|
source "$HOME"/.subbash/aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$HOME"/.subbash/functions ]; then
|
||||||
|
source "$HOME"/.subbash/functions
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$HOME"/.subbash/shopt ]; then
|
||||||
|
source "$HOME"/.subbash/shopt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$HOME"/.subbash/prompt ]; then
|
||||||
|
source "$HOME"/.subbash/prompt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$HOME"/.subbash/export ]; then
|
||||||
|
source "$HOME"/.subbash/export
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /etc/bash_completion.d/all ]; then
|
||||||
|
source /etc/bash_completion.d/all
|
||||||
|
fi
|
||||||
10
README.md
10
README.md
@ -1,4 +1,4 @@
|
|||||||
<h1 align="center">BashConfig</h1>
|
<h1 align="center">dotfiles</h1>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/TheK4n">
|
<a href="https://github.com/TheK4n">
|
||||||
@ -29,10 +29,10 @@ Bash config files
|
|||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/thek4n/BashConfig
|
git clone https://github.com/TheK4n/dotfiles
|
||||||
chmod u+x BashConfig/setup.sh
|
chmod u+x dotfiles/setup.sh
|
||||||
BashConfig/setup.sh
|
dotfiles/setup.sh
|
||||||
rm -rf BashConfig
|
rm -rf dotfiles
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user