diff options
Diffstat (limited to 'bash/bashrc')
| -rw-r--r-- | bash/bashrc | 131 |
1 files changed, 55 insertions, 76 deletions
diff --git a/bash/bashrc b/bash/bashrc index 2c43535..03e1d31 100644 --- a/bash/bashrc +++ b/bash/bashrc @@ -1,18 +1,15 @@ -# ~/.bashrc: executed by bash(1) for non-login shells. (That's why ~/.profile -# is needed. To source it from login shells? What does login shell mean -# anyway). - +# +# ~/.bashrc: executed by bash(1) for interactive shells +# # Tinkerer's guide to a prettier and colorful CLI: # https://wiki.archlinux.org/title/Color_output_in_console -# Basic -# ====================================================================== - # If not running interactively, don't do anything -case $- in - *i*) ;; - *) return;; -esac +[[ $- != *i* ]] && return + + +# Bash configuration +# ================== # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options @@ -26,7 +23,7 @@ HISTSIZE=1000 HISTFILESIZE=2000 # check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. +# update the values of LINES and COLUMNS. (Isn't this the default behaviour?) shopt -s checkwinsize # If set, the pattern "**" used in a pathname expansion context will @@ -37,58 +34,44 @@ shopt -s checkwinsize #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # colored GCC warnings and errors -export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # Alias definitions. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi -# enable programmable completion features (you don't need to enable -# this, if it's already enabled in /etc/bash.bashrc and /etc/profile -# sources /etc/bash.bashrc). Requires `bash-completion package -if ! shopt -oq posix; then - if [ -f /usr/share/bash-completion/bash_completion ]; then - . /usr/share/bash-completion/bash_completion - elif [ -f /etc/bash_completion ]; then - . /etc/bash_completion - fi -fi +# Don't forget to install bash-completion -# set PATH so it includes user's private bin if it exists -if [ -d "$HOME/.local/bin" ] ; then - PATH="$HOME/.local/bin:$PATH" -fi +# Prompt +# ------ -# Custom prompt: +# - Basic [user@host $pwd]$ +#PS1='[\u@\h \W]\$ ' # - Blue timestamp and italic green pwd #PS1='\[\033[34m\]|\D{%H:%M:%S}| \[\033[3;32m\][\w]\[\033[00m\]\n\$ ' -# If error `-bash: __git_ps1: command not found`, uncomment the following line + +# - user@host pwd (git prompt) # Ref.: https://stackoverflow.com/a/15398153/7498073 -source ~/.git-prompt.sh -# user@host pwd (git prompt) +source ~/mahcode/dotfiles/git/git-prompt.sh PS1='\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ ' -# Extra -# ====================================================================== - -# My binaries -if [ -d "$HOME/mahcode/bin" ]; then - PATH="$HOME/mahcode/bin:$PATH" -fi +# Environment +# =========== -# Default editor. Affects a lot of programs. -export EDITOR=vim +export EDITOR=nvim +export PATH="$HOME/.local/bin:$PATH" +export PATH="$HOME/mahcode/bin:$PATH" -# redundant but useful # XDG = Cross-Desktop Group # For more info see https://wiki.archlinux.org/index.php/XDG_Base_Directory export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" -#export XDG_DATA_DIRS="/usr/local/share:/usr/share" -#export XDG_CONFIG_DIRS="/etc/xdg" +export XDG_STATE_HOME="$HOME/.local/state" + +export LC_COLLATE=C # less LESS="-i " # ignore case @@ -96,46 +79,26 @@ LESS+="-S " # don't chop long lines LESS+="--RAW-CONTROL-CHARS" export LESS +# Extra programs +# -------------- + # tldr -export TLDR_CONFIG_DIR="$XDG_CONFIG_HOME" +[ -f /usr/bin/tldr ] && export TLDR_CONFIG_DIR="$XDG_CONFIG_HOME" # gpg -export GPG_TTY=$(tty) +#export GPG_TTY=$(tty) # tmux -export TERM="xterm-256color" - -# EGA/VGA font (used with ArchLinux in pre-Xorg session) -#if [ -z $DESKTOP_SESSION ]; then -# setfont LatGrkCyr-8x16 -#fi +#export TERM="xterm-256color" # nvm -source /usr/share/nvm/init-nvm.sh - - - -# Optional -# ====================================================================== +#source /usr/share/nvm/init-nvm.sh -# Bash completition for pandoc +# Pandoc: Bash completition for pandoc if [ -f /usr/bin/pandoc ]; then eval "$(pandoc --bash-completion)" fi -# Greeting or salute -if [ -f /usr/games/cowsay ] || [ -f /usr/bin/cowsay ]; then - # TODO: randomly select one of the following greeting commands - #cowsay -f flaming-sheep "oh no" # original - #cowsay $(fortune -e 30% debian-hints 20% linux 20% science \ - #cowsay $(fortune 30% debian-hints 20% linux 20% science \ - # 20% off/linux 10% off/black-humor) - cowsay $(fortune) - #fortune ascii-art -else - echo "Welcome back $LOGNAME" -fi - # Homebrew (linuxbrew) if [ -f /usr/bin/brew ]; then # for elf executables @@ -147,15 +110,31 @@ if [ -f /usr/bin/brew ]; then fi # Node.js -export NODE_PATH=~/code/nodejs/node-v16.15.1-linux-x64/lib/node_modules +#export NODE_PATH=~/code/nodejs/node-v16.15.1-linux-x64/lib/node_modules # Rust #. "$HOME/.cargo/env" # Ruby on Rails #https://stackoverflow.com/a/19072136/7498073 -gempath="$HOME/.local/share/gem/ruby/3.0.0/bin" -export GEM_HOME="$(ruby -e 'puts Gem.user_dir')" -if [[ -d $gempath ]]; then - export PATH="$PATH:$GEM_HOME/bin" +#gempath="$HOME/.local/share/gem/ruby/3.0.0/bin" +#export GEM_HOME="$(ruby -e 'puts Gem.user_dir')" +#if [[ -d $gempath ]]; then +# export PATH="$PATH:$GEM_HOME/bin" +#fi + + +# Fun +# === + +# Greeting or salute +if [ -f /usr/games/cowsay ] || [ -f /usr/bin/cowsay ]; then + #cowsay -f flaming-sheep "oh no" # original + #cowsay $(fortune -e 30% debian-hints 20% linux 20% science \ + #cowsay $(fortune 30% debian-hints 20% linux 20% science \ + # 20% off/linux 10% off/black-humor) + cowsay $(fortune) + #fortune ascii-art +else + echo "Welcome back $LOGNAME" fi |
