bashrc/.bashrc

92 lines
2.9 KiB
Bash
Raw Normal View History

2016-01-20 17:06:54 +00:00
#
# ~/.bashrc
#
# Thurstylark
### MISC ###
2016-01-20 17:06:54 +00:00
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# Don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# Prefer vim, but if it's not installed, nano will do
if [[ -s /usr/bin/vim ]]; then
export EDITOR=vim
else
export EDITOR=nano
fi
# Enable pkgfile to automatically search for packages if pkgfile is installed
if [[ -s /usr/share/doc/pkgfile/command-not-found.bash ]];then
source /usr/share/doc/pkgfile/command-not-found.bash
fi
# Enable less syntax hilighting if src-hilight is installed
if [[ -s /usr/bin/src-hilite-lesspipe.sh ]]; then
export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
export LESS=' -R '
fi
2016-01-20 17:06:54 +00:00
# If a directory is given without any
# command, CD into it.
shopt -s autocd
# Enables colored Man pages:
man() {
env LESS_TERMCAP_mb=$'\E[01;31m' \
LESS_TERMCAP_md=$'\E[01;38;5;74m' \
LESS_TERMCAP_me=$'\E[0m' \
LESS_TERMCAP_se=$'\E[0m' \
LESS_TERMCAP_so=$'\E[38;5;246m' \
LESS_TERMCAP_ue=$'\E[0m' \
LESS_TERMCAP_us=$'\E[04;38;5;146m' \
man "$@"
}
### PROMPT ###
# [hh:mm][username@hostname pwd]$
if [ -n "$SSH_CLIENT" ]; then
# Remotely, hostname is red.
PS1="\[\033[38;5;4m\][\A]\[$(tput sgr0)\]\[\033[38;5;6m\][\[$(tput bold)\]\[$(tput sgr0)\]\[\033[38;5;14m\]\u\[$(tput sgr0)\]\[$(tput sgr0)\]\[\033[38;5;6m\]@\[$(tput bold)\]\[$(tput sgr0)\]\[\033[38;5;1m\]\h\[$(tput sgr0)\]\[$(tput sgr0)\]\[\033[38;5;6m\] \W]\[$(tput sgr0)\]\[\033[38;5;7m\]\\$ \[$(tput sgr0)\]"
else
# Locally, hostname is cyan.
PS1="\[\033[38;5;4m\][\A]\[$(tput sgr0)\]\[\033[38;5;6m\][\[$(tput bold)\]\[$(tput sgr0)\]\[\033[38;5;14m\]\u\[$(tput sgr0)\]\[$(tput sgr0)\]\[\033[38;5;6m\]@\h \W]\[$(tput sgr0)\]\[\033[38;5;7m\]\\$ \[$(tput sgr0)\]"
fi
### ALIASES ###
# Colorize all `ls` output:
alias ls='ls -F --color=auto'
# Map "la" to `ls -la`
alias la='ls -laF --color=auto'
# Colorize `grep` output
alias grep='grep --color=auto'
# Change layout of lsblk to include FSTYPE and remove MAJ:MIN, RM, and RO collumns.
alias lsblk='lsblk -o NAME,FSTYPE,SIZE,TYPE,MOUNTPOINT'
# Always use sudo when using systemctl. Pairs well with passwordless sudo for systemctl.
alias systemctl='sudo --preserve-env systemctl'
# I'm tired of managing weechat configs and multiple nicks
# Client depends: ssh, mosh, correct ssh host configuration
# Server depends: ssh, mosh, screen, weechat, weechat.service (custom)
# Only do this if weechat isn't installed and you aren't thurstyserv
if [[ ! -s /usr/bin/weechat ]]; then
# Connect to the existing screen session through mosh
# (disconnecting it elsewhere if necessary)
alias weechat='mosh home -- screen -dr weechat'
elif [[ "$HOSTNAME" -eq "thurstyserv" ]]; then
# Connect to the existing screen session locally
# (disconnecting it elsewhere if necessary)
alias weechat='screen -dr weechat'
fi