blob: b2177d9ebd99f1d1c80f329177441667eda7f395 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/bin/bash
# .bashrc
# Craig Jennings <c@cjennings.net>
#
# Bash-specific interactive shell settings.
# Aliases, functions, prompt, completions, shell options.
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# =============================================================================
# Environment Variables (from .profile)
# =============================================================================
# Source .profile for env vars (needed for non-login interactive shells)
[ -f "$HOME/.profile" ] && . "$HOME/.profile"
# =============================================================================
# Shell Options
# =============================================================================
shopt -s histappend # append to history file, don't overwrite
shopt -s checkwinsize # update LINES and COLUMNS after each command
shopt -s autocd # cd to directory by typing its name
shopt -s cdspell # correct minor spelling errors in cd
shopt -s dirspell # correct spelling errors during tab-completion
# =============================================================================
# History
# =============================================================================
HISTCONTROL=ignoreboth # ignore duplicates and lines starting with space
HISTSIZE=100000
HISTFILESIZE=10000000
HISTIGNORE="ls:ll:cd:pwd:bg:fg:history:exit"
PROMPT_COMMAND="history -a; history -n" # append and reload after each command
# =============================================================================
# Prompt
# =============================================================================
PS1='[\d, \t] \u@\H:\w \n$ '
# =============================================================================
# Completions
# =============================================================================
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
# =============================================================================
# Source modular bash configs from .bashrc.d/
# =============================================================================
if [ -d "$HOME/.bashrc.d" ]; then
for file in "$HOME/.bashrc.d"/*.sh; do
[ -r "$file" ] && . "$file"
done
unset file
fi
# =============================================================================
# Tool-specific initialization
# =============================================================================
# FZF
[ -f "$HOME/.fzf.bash" ] && . "$HOME/.fzf.bash"
# Deno
[ -f "$HOME/.deno/env" ] && . "$HOME/.deno/env"
[ -f "$HOME/.local/share/bash-completion/completions/deno.bash" ] && \
. "$HOME/.local/share/bash-completion/completions/deno.bash"
# Zoxide (smart cd)
command -v zoxide >/dev/null 2>&1 && eval "$(zoxide init bash)"
|