blob: ebd0b68047706eb5ee27e35ac8239a5e64f4c33f (
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
77
78
79
80
81
82
83
84
85
|
# Software list:
# xss-lock xkbset xclip xsel cifs-utils picom
# vim git tmux maim mc htop entr rsync jq rofi stow newsboat
# st rsync curl hstr tree make gdb nvtop ctags mpv lazygit fd
# Only run if the script is being sourced (bashrc).
if [[ "${BASH_SOURCE[0]}" != "${0}" ]]; then
# Magical environment variables.
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export COLORTERM=truecolor
export TERM=xterm-256color
export VISUAL=vim
export EDITOR=vim
# Customized Bash prompt.
SYMBOL='\[\e[38;5;214m\]\$\[\e[0m\]'
git_branch() { git branch 2>/dev/null | sed -n 's/^\* \(.*\)/(\1)/p'; }
export PS1="\n$SYMBOL \u@\h \t \w \$(git_branch)\n$SYMBOL "
# General aliases.
alias l='ls -lh --group-directories-first --color=always'
alias ll='ls -lha --group-directories-first --color=always'
alias t='tree -L 2'
alias ..='cd ..'
alias gg='lazygit'
alias less='less -R'
alias tmux='tmux -T 256 -u'
alias server='python3 -m http.server 6969'
alias newsboat='newsboat -r -u ~/.feeds.txt'
alias emptytrash='gio trash --empty'
# Custom folder jump commands.
alias j='cd ~/Junk'
alias p='cd ~/Projects'
alias d='cd ~/Downloads'
# History and search. Stolen from J.
HISTCONTROL=ignoreboth
shopt -s histappend
export HISTSIZE=
export HISTFILESIZE=
export HISTFILE=~/.bash_history_infinite
PROMPT_COMMAND="history -a; ${PROMPT_COMMAND}"
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
export HSTR_CONFIG=hicolor
if [[ $- =~ .i. ]]; then bind '"\C-h": "\C-a hstr -- \C-j"'; fi
# Custom paths.
export PATH="$PATH:$HOME/.local/bin"
export PATH="$PATH:$HOME/.cargo/bin"
export PATH="$PATH:$HOME/go/bin"
export PATH="$PATH:$HOME/Applications"
fi
backup() {
SNAPSHOT=$(date +%Y-%m-%d)-$(whoami)@$(hostname)
mkdir -p /tmp/$SNAPSHOT
archive_sets=(
"ssh.zip $HOME/.ssh"
"bash_history_infinite.zip $HOME/.bash_history_infinite"
"projects.zip $HOME/Projects"
)
for entry in "${archive_sets[@]}"; do
zip -r /tmp/$SNAPSHOT/${entry} -x "**/.venv/*" "**/.git/*" "**/.import/*" "**/.godot/*" "**/.zig-cache/*" "**/node_modules/*"
done
rsync -azhv /tmp/$SNAPSHOT /media/Void/Backup
rm -Rf /tmp/$SNAPSHOT
}
slugify() {
local text="$1"
echo "$text" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g'
}
worldclocks() {
printf "%-18s %s\n" "Local:" "$(TZ='Europe/Ljubljana' date +'%a %H:%M')"
printf "%-18s %s\n" "Brisbane:" "$(TZ='Australia/Brisbane' date +'%a %H:%M')"
printf "%-18s %s\n" "San Francisco:" "$(TZ='America/Los_Angeles' date +'%a %H:%M')"
printf "%-18s %s\n" "New York:" "$(TZ='America/New_York' date +'%a %H:%M')"
}
|