Created
March 28, 2018 12:56
-
-
Save dvdvnl/745a08d06a5b71516266de433ddf69ad to your computer and use it in GitHub Desktop.
bash config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# @gf3’s Sexy Bash Prompt, inspired by “Extravagant Zsh Prompt” | |
# Shamelessly copied from https://github.com/gf3/dotfiles | |
default_username='unknown' | |
PROMPTCHAR="\$" | |
if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then | |
export TERM=gnome-256color | |
elif infocmp xterm-256color >/dev/null 2>&1; then | |
export TERM=xterm-256color | |
fi | |
if tput setaf 1 &> /dev/null; then | |
tput sgr0 | |
if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then | |
BLUE=$(tput setaf 4) | |
MAGENTA=$(tput setaf 9) | |
ORANGE=$(tput setaf 172) | |
GREEN=$(tput setaf 70) | |
PURPLE=$(tput setaf 141) | |
else | |
BLUE=$(tput setaf 4) | |
MAGENTA=$(tput setaf 5) | |
ORANGE=$(tput setaf 3) | |
GREEN=$(tput setaf 2) | |
PURPLE=$(tput setaf 1) | |
fi | |
BOLD=$(tput bold) | |
RESET=$(tput sgr0) | |
else | |
BLUE="\033[1;34m" | |
MAGENTA="\033[1;31m" | |
ORANGE="\033[1;33m" | |
GREEN="\033[1;32m" | |
PURPLE="\033[1;35m" | |
BOLD="" | |
RESET="\033[m" | |
fi | |
function git_info() { | |
# check if we're in a git repo | |
git rev-parse --is-inside-work-tree &>/dev/null || return | |
# quickest check for what branch we're on | |
branch=$(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||') | |
# check if it's dirty (via github.com/sindresorhus/pure) | |
dirty=$(git diff --quiet --ignore-submodules HEAD &>/dev/null; [ $? -eq 1 ]&& echo -e "*") | |
echo "$RESET$BOLD on $PURPLE$branch$dirty" | |
} | |
# Only show username/host if not default | |
function usernamehost() { | |
if [ "$USER" != $default_username ]; then | |
echo "${BLUE}${OSNAME}${MAGENTA}$USER${RESET}${BOLD}@${ORANGE}$HOSTNAME${RESET}${BOLD} in "; | |
else | |
echo "${BLUE}${OSNAME}"; | |
fi | |
} | |
# iTerm Tab and Title Customization and prompt customization | |
# http://sage.ucsc.edu/xtal/iterm_tab_customization.html | |
# Put the string " [bash] hostname::/full/directory/path" | |
# in the title bar using the command sequence | |
# \[\e]2;[bash] \h::\]$PWD\[\a\] | |
# Put the penultimate and current directory | |
# in the iterm tab | |
# \[\e]1;\]$(basename $(dirname $PWD))/\W\[\a\] | |
PS1="\[\e]2;$PWD\[\a\]\[\e]1;\]$(basename "$(dirname "$PWD")")/\W\[\a\]${BOLD}\$(usernamehost)\[$GREEN\]\w\$(git_info)\[$RESET\]\[$BOLD\]\n${PROMPTCHAR} \[$RESET\]" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ~/.bashrc: executed by bash(1) for non-login shells. | |
# Note: PS1 and umask are already set in /etc/profile. You should not | |
# need this unless you want different defaults for root. | |
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ ' | |
# umask 022 | |
# You may uncomment the following lines if you want `ls' to be colorized: | |
export LS_OPTIONS='--color=auto' | |
eval "`dircolors`" | |
alias ls='ls $LS_OPTIONS' | |
alias ll='ls $LS_OPTIONS -l' | |
alias l='ls $LS_OPTIONS -lA' | |
# | |
# Some more alias to avoid making mistakes: | |
alias rm='rm -i' | |
alias cp='cp -i' | |
alias mv='mv -i' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ~/.profile: executed by the command interpreter for login shells. | |
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login | |
# exists. | |
# see /usr/share/doc/bash/examples/startup-files for examples. | |
# the files are located in the bash-doc package. | |
# the default umask is set in /etc/profile; for setting the umask | |
# for ssh logins, install and configure the libpam-umask package. | |
#umask 022 | |
# if running bash | |
if [ -n "$BASH_VERSION" ]; then | |
# include .bashrc if it exists | |
if [ -f "$HOME/.bashrc" ]; then | |
. "$HOME/.bashrc" | |
fi | |
fi | |
# set PATH so it includes user's private bin if it exists | |
if [ -d "$HOME/bin" ] ; then | |
PATH="$HOME/bin:$PATH" | |
fi | |
if [ -f ~/.bash_prompt ]; then | |
. ~/.bash_prompt | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment