# # ~/.bashrc # # Thurstylark ### MISC ### # If not running interactively, don't do anything [[ $- != *i* ]] && return # Use powerline if it's installed [ ! -z "$USING_TTY" -a -s "/usr/lib/python3.5/site-packages/powerline/bindings/bash/powerline.sh" ] && { powerline-daemon -q POWERLINE_BASH_CONTINUATION=1 POWERLINE_BASH_SELECT=1 . /usr/lib/python3.5/site-packages/powerline/bindings/bash/powerline.sh } # Don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # These are the default colors, but some other programs, such as tee(1), like to use this variable LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' export LS_COLORS # Prefer vim, but if it's not installed, nano will do [[ -s /usr/bin/vim ]] && export EDITOR=vim || export EDITOR=nano # Enable pkgfile to automatically search for packages if pkgfile is installed [[ -s /usr/share/doc/pkgfile/command-not-found.bash ]] && source /usr/share/doc/pkgfile/command-not-found.bash # 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 "$@" } # Do the same for awman awman() { 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' \ awman "$@" } ### 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 -AF --color=auto' # Map "la" to `ls -la` alias la='ls -laFh --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 -E systemctl' # Always use sudo when using nmap. alias nmap='sudo -E nmap' # 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) # If you don't have weechat installed, connect to the existing screen session through mosh [[ ! -s /usr/bin/weechat ]] && alias weechat='mosh vps -- screen -dr weechat' # If you are thurstylark-vps, connect to the existing screen session locally [[ "$HOSTNAME" = "thurstylark-vps" ]] && alias weechat='screen -dr weechat'