Created
December 12, 2021 14:03
-
-
Save mvidaldp/7ae82309c92b478ad7c9686658c40cd1 to your computer and use it in GitHub Desktop.
Gentoo's modification of /etc/bashrc for a colored Bash
This file contains hidden or 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
# Gentoo's modification of /etc/bash/bashrc | |
# | |
# This file is sourced by all *interactive* bash shells on startup, | |
# including some apparently interactive shells such as scp and rcp | |
# that can't tolerate any output. So make sure this doesn't display | |
# anything or bad things will happen ! | |
# Test for an interactive shell. There is no need to set anything | |
# past this point for scp and rcp, and it's important to refrain from | |
# outputting anything in those cases. | |
if [[ $- != *i* ]] ; then | |
# Shell is non-interactive. Be done now! | |
return | |
fi | |
# Bash won't get SIGWINCH if another process is in the foreground. | |
# Enable checkwinsize so that bash will check the terminal size when | |
# it regains control. #65623 | |
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) | |
shopt -s checkwinsize | |
# Disable completion when the input buffer is empty. i.e. Hitting tab | |
# and waiting a long time for bash to expand all of $PATH. | |
shopt -s no_empty_cmd_completion | |
# Enable history appending instead of overwriting when exiting. #139609 | |
shopt -s histappend | |
# Save each command to the history file as it's executed. #517342 | |
# This does mean sessions get interleaved when reading later on, but this | |
# way the history is always up to date. History is not synced across live | |
# sessions though; that is what `history -n` does. | |
# Disabled by default due to concerns related to system recovery when $HOME | |
# is under duress, or lives somewhere flaky (like NFS). Constantly syncing | |
# the history will halt the shell prompt until it's finished. | |
#PROMPT_COMMAND='history -a' | |
# # Change the window title of X terminals | |
# case ${TERM} in | |
# [aEkx]term*|rxvt*|gnome*|konsole*|interix|tmux*) | |
# PS1='\[\033]0;\u@\h:\w\007\]' | |
# ;; | |
# screen*) | |
# PS1='\[\033k\u@\h:\w\033\\\]' | |
# ;; | |
# *) | |
# unset PS1 | |
# ;; | |
# esac | |
# Set colorful PS1 only on colorful terminals. | |
# dircolors --print-database uses its own built-in database | |
# instead of using /etc/DIR_COLORS. Try to use the external file | |
# first to take advantage of user additions. | |
# We run dircolors directly due to its changes in file syntax and | |
# terminal name patching. | |
use_color=false | |
if type -P dircolors >/dev/null ; then | |
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489 | |
LS_COLORS= | |
if [[ -f ~/.dir_colors ]] ; then | |
eval "$(dircolors -b ~/.dir_colors)" | |
elif [[ -f /etc/DIR_COLORS ]] ; then | |
eval "$(dircolors -b /etc/DIR_COLORS)" | |
else | |
eval "$(dircolors -b)" | |
fi | |
# Note: We always evaluate the LS_COLORS setting even when it's the | |
# default. If it isn't set, then `ls` will only colorize by default | |
# based on file attributes and ignore extensions (even the compiled | |
# in defaults of dircolors). #583814 | |
if [[ -n ${LS_COLORS:+set} ]] ; then | |
use_color=true | |
else | |
# Delete it if it's empty as it's useless in that case. | |
unset LS_COLORS | |
fi | |
else | |
# Some systems (e.g. BSD & embedded) don't typically come with | |
# dircolors so we need to hardcode some terminals in here. | |
case ${TERM} in | |
[aEkx]term*|rxvt*|gnome*|konsole*|screen|tmux|cons25|*color) use_color=true;; | |
esac | |
fi | |
if ${use_color} ; then | |
if [[ ${EUID} == 0 ]] ; then | |
PS1='\[$(tput setaf 6)\][\d \A]\[$(tput bold)\]\[$(tput setaf 1)\] \u\[$(tput setaf 2)\]@\[$(tput setaf 3)\]\h \[$(tput bold)\]\[$(tput setaf 4)\]\w\[$(tput bold)\]\[$(tput setaf 1)\] \\$\[$(tput sgr0)\] ' | |
else | |
PS1='\[$(tput setaf 6)\][\d \A]\[$(tput bold)\]\[$(tput setaf 2)\] \u\[$(tput setaf 0)\]@\[$(tput setaf 3)\]\h \[$(tput setaf 4)\]\w\[$(tput bold)\]\[$(tput setaf 2)\] \\$\[$(tput sgr0)\] ' | |
fi | |
#BSD#@export CLICOLOR=1 | |
#GNU#@alias ls='ls --color=auto' | |
alias grep='grep --colour=auto' | |
alias egrep='grep -E --colour=auto' | |
alias fgrep='grep -F --colour=auto' | |
else | |
# show root@ when we don't have colors | |
PS1='\[\033]0;\u@\h:\w\007\]\u@\h \w \$ ' | |
fi | |
for sh in /etc/bash/bashrc.d/* ; do | |
[[ -r ${sh} ]] && source "${sh}" | |
done | |
# Try to keep environment pollution down, EPA loves us. | |
unset use_color sh |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment