118 lines
3.5 KiB
Bash
118 lines
3.5 KiB
Bash
#
|
|
# /etc/bashrc
|
|
#
|
|
|
|
# If not running interactively, don't do anything
|
|
[[ $- != *i* ]] && return
|
|
|
|
### Prompt ###
|
|
organization="$(echo $HOSTNAME | rev | cut -f 2 -d '.' | rev)"
|
|
PS1='\[\033[00;31m\][ \[\033[01;32m\]\u\[\033[00;31m\]@\H:${SHELL} {\[\033[m\]$? \[\033[00;36m\]\D{%F-%R} \[\033[00;35m\]\w\[\033[00;31m\]\[\033[00;31m\]\[\033[00;33m\]$(git_prompt_var)\[\033[00;31m\]} ]\n|\[\033[m\]> '
|
|
PS2='> '
|
|
PS3='> '
|
|
PS4='+ '
|
|
case ${TERM} in
|
|
screen|xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
|
|
PROMPT_COMMAND='echo -en "\033]0;'${organization^^}'/'${HOSTNAME%%.*}'\a"'
|
|
;;
|
|
esac
|
|
|
|
# Terminal settings
|
|
export TERM=xterm-256color
|
|
alias weechat="TERM=screen weechat"
|
|
|
|
# Disable bracketed paste mode
|
|
printf "\e[?2004l"
|
|
|
|
### MOTD ###
|
|
[ -f /etc/bash.motd ] && cat /etc/bash.motd
|
|
|
|
### AniNIX Customizations ###
|
|
alias get-commands='for i in $( echo $PATH | sed "s/:/\n/g"); do ls $i; done | sort | less'
|
|
alias whoison='who | grep -v tmux'
|
|
function vncdesktop() {
|
|
set -x
|
|
if [ -z "$@" ]; then
|
|
vncserver :2 -rfbport 5901
|
|
else
|
|
vncserver $@
|
|
fi
|
|
export DISPLAY=`vncserver -list | tail -n 1 | awk '{print $1; }' `
|
|
sleep 3
|
|
xfce4-session
|
|
vncserver -kill "$DISPLAY"
|
|
set +x
|
|
}
|
|
alias vi=vim
|
|
alias view="vim -R"
|
|
alias top="top -o %CPU"
|
|
alias make-entrypoints="egrep '^[a-zA-Z0-9\-]*:' Makefile"
|
|
if [ -x `which torsocks 2>/dev/null` ] && [ `systemctl status tor 2>/dev/null| grep -c running` -eq 1 ]; then
|
|
alias tor-lynx="torsocks lynx https://check.torproject.org/";
|
|
fi
|
|
IFS="
|
|
"
|
|
|
|
### GIT ###
|
|
source /usr/share/git/completion/git-prompt.sh
|
|
|
|
function git_prompt_var() {
|
|
### If $PWD is a Git repo, add URL and branch to PS1
|
|
url=`git config remote.origin.url 2>/dev/null`
|
|
if [ -n "$url" ]; then
|
|
branch=`__git_ps1 '%s'`
|
|
url=`basename "$url"`
|
|
echo " $url($branch)"
|
|
fi
|
|
}
|
|
|
|
### SSH ###
|
|
# Tell shell about ssh-agent -- enable with 'systemctl enable ssh-agent@$USER.service'
|
|
export SSH_AGENT_PID="$(pgrep -fu "$USER" ssh-agent)"
|
|
if [ -n "$SSH_AGENT_PID" ]; then
|
|
export SSH_AUTH_SOCK="$(ls -ld /tmp/ssh-*/agent.* | grep -m 1 "$USER" | awk '{ print $9; }')"
|
|
echo ssh-agent PID is $SSH_AGENT_PID
|
|
fi
|
|
if [ -n "$SSH_AUTH_SOCK" ] && [ `ssh-add -L | grep -c no\ identities` -eq 1 ]; then
|
|
ssh-add
|
|
ssh-add -L
|
|
fi
|
|
|
|
### GPG ###
|
|
export GPG_TTY=$(tty)
|
|
|
|
### Ansible ###
|
|
export ANSIBLE_VAULT_PASSWORD_FILE=$HOME/password-store/${organization}.vault.password
|
|
export ANSIBLE_VAULT_FILE=$HOME/password-store/${organization}.vault
|
|
|
|
# ### User-directory .gitbare Support (Git) ###
|
|
# if [ -d ~/.git ]; then
|
|
# cd
|
|
# printf "~/.git: "
|
|
# if [ $SHLVL -eq 1 ] && [ -z "$TMUX" ]; then
|
|
# git pull
|
|
# else
|
|
# git rev-parse --short HEAD
|
|
# fi
|
|
# git status
|
|
# fi
|
|
#
|
|
# Set up screen/tmux safety nest by default for remote sessions
|
|
if [ -n "$SSH_CLIENT" ]; then
|
|
# Prefer tmux
|
|
if [ -x "$(which tmux 2>/dev/null)" ] && [ -z "$TMUX" ]; then
|
|
if [ `tmux list-sessions | grep created | wc -l` -eq 0 ]; then
|
|
exec tmux
|
|
elif [ `tmux list-sessions | grep created | wc -l` -eq 1 ] && [ `tmux list-sessions | grep attached | wc -l` -eq 0 ]; then
|
|
exec tmux a -d -t `tmux list-sessions | grep created | cut -f 1 -d ':'`
|
|
else
|
|
tmux list-sessions
|
|
fi
|
|
alias tat="exec tmux a -d -t"
|
|
fi;
|
|
|
|
### XFCE4 ###
|
|
elif [ `who -m | egrep "^$(whoami)" | awk '{ print $2; }' | egrep -c "^tty"` -eq 1 ] && [ -x /usr/sbin/startxfce4 ] && [ `pgrep -ac xinit` -eq 0 ] && [ `whoami` != 'root' ]; then
|
|
exec startxfce4
|
|
fi
|