emacs: use conf-mode .*rc files, but use sh-mode for .bashrc
[~bandali/configs] / .bashrc
1 # If not running interactively, don't do anything else
2 [[ $- != *i* ]] && return
3
4 [[ $TERM = "eterm-color" || $TERM = "screen" ]] && source ~/.bash_profile
5
6 # from https://unix.stackexchange.com/a/55935
7 a_prompt() {
8 cwd=$(sed -e "s:$HOME:~:" -e "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD)
9 printf $cwd
10 }
11 PS1="\u@\h \$(a_prompt)> "
12
13 # i-beam cursor
14 # echo -e "\033[5 q" # blinking
15 echo -e "\033[6 q" # non-blinking
16
17 # various bash tweaks
18 shopt -s histappend
19 shopt -s cmdhist
20 HISTSIZE=
21 HISTFILESIZE=
22 HISTCONTROL=ignoreboth
23 HISTIGNORE='ls:l:s:g:[bf]g:history'
24 HISTTIMEFORMAT='%F %T '
25 stty stop ""
26
27 # aliases
28 alias ls='ls --color=auto'
29 alias l='ls -lh' # long format and human-readable sizes
30 alias ll='l -A' # long format, all files
31 alias g='git'
32 include /usr/share/bash-completion/completions/git && __git_complete g _git
33 alias mpv="mpv --ytdl-format mp4"
34 alias mv="mv -iv"
35 alias cp="cp -iv"
36 alias scl=systemctl
37 alias jcl=journalctl
38 alias mbsync='mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc'
39 alias getmail='getmail --getmaildir "$XDG_CONFIG_HOME"/getmail --rcfile getmailrc'
40 alias mb="mbsync csclub; mbsync uwaterloo; mbsync amin"
41 alias gm="getmail"
42 alias m="mb; gm"
43 alias best="youtube-dl -f best"
44
45 aur() {
46 cd ~/usr/builds
47 [ -d ${1} ] || git clone https://aur.archlinux.org/${1}.git
48 cd ${1}
49 }
50
51 # fzf
52 include /usr/share/fzf/key-bindings.bash
53 include /usr/share/fzf/completion.bash
54
55 if ! pgrep -u "$USER" ssh-agent > /dev/null; then
56 ssh-agent > ~/.ssh-agent-thing
57 fi
58 if [[ ! "$SSH_AUTH_SOCK" ]]; then
59 eval "$(<~/.ssh-agent-thing)"
60 fi