-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot_bashrc
104 lines (87 loc) · 2.09 KB
/
dot_bashrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# .bashrc
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# Source global definitions
if [[ -f /etc/bashrc ]]; then
source /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
export PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
### DISTRO INFO ###
DISTRO=$(cat /etc/os-release | grep ^ID | cut -d= -f2)
case $DISTRO in
fedora)
PACK_MAN="dnf"
DISTRO_ICON=""
;;
arch)
PACK_MAN="pacman --color always"
DISTRO_ICON=""
;;
gentoo)
PACK_MAN="emerge"
DISTRO_ICON=""
;;
ubuntu)
PACK_MAN="apt"
DISTRO_ICON=""
;;
esac
### ALIASES ###
source ~/.alias
[[ $DISTRO = fedora ]] && alias 7z="7za"
### GIT AUTO COMPLETE AND PROMPT###
source ~/.config/git-completion.bash
source ~/.config/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
### COLORS ###
NORMAL="\[\e[0;00m\]"
BLACK="\[\e[1;30m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
YELLOW="\[\e[1;33m\]"
BLUE="\[\e[1;34m\]"
MAGENTA="\[\e[1;35m\]"
CYAN="\[\e[1;36m\]"
WHITE="\[\e[1;37m\]"
B_BLACK="\[\e[1;90m\]"
B_RED="\[\e[1;91m\]"
B_GREEN="\[\e[1;92m\]"
B_YELLOW="\[\e[1;93m\]"
B_BLUE="\[\e[1;94m\]"
B_MAGENTA="\[\e[1;95m\]"
B_CYAN="\[\e[1;96m\]"
B_WHITE="\[\e[1;97m\]"
### PROMPT ###
PROMPT_COMMAND=__prompt_command
__prompt_command() {
if [[ $? != 0 ]]; then
EXIT="$RED"
else
EXIT="$GREEN"
fi
local PS1L="$RED┌[$YELLOW\w$RED]$(__git_ps1 "─[$CYAN %s$RED ]")"
local PS1R="[$YELLOW$(whoami)$CYAN@$BLUE$(hostnamectl | awk -F ": " NR==2'{print $2}') $B_CYAN$DISTRO_ICON $MAGENTA$(date +%T)$RED]"
local LINE="$RED"
local i=0
local c=6 # the number of color codes used in $PS1R
local n=$(($COLUMNS + (12*$c) - ${#PS1R}))
while [[ $i -lt $n ]]
do
((i++))
LINE+="─"
done
PS1=$(printf "%s\r%s" "$LINE$PS1R" "$PS1L")
PS1+="\n$RED└$EXIT>>> $NORMAL"
}
### AUTO START TMUX ###
if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ ! "$(tmux ls)" =~ ^[main*attached] ]];
then
command tmux new-session -A -s main
fi
### ENVIRONMENT VARIABLES ###
[[ $TERM =~ kitty ]] && export TERM=xterm-256color
export EDITOR=nvim