blob: 44c4306a13a7974d9134ee0792df38a7bfdf9e46 (
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
#! /bin/bash
# PROMPT
function parse_git_branch()
{
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ `whoami` = "root" ]
then
export PS1='\[\033[01;47;31m\]\h\[\033[40;31m\] \u \[\033[37m\]\W \$ \[\033[00m\]'
else
export PS1='\[\033[01;33m\]\u\[\033[01;35m\]@\[\033[00;31m\]\h\[\033[00m\]:\[\033[0;33m\] \W \[\033[01;35m\]$(parse_git_branch)\[\033[0;33m\] \[\033[0m\]\$ '
fi
unset PROMPT_COMMAND
# TERM
if [ -r /usr/share/terminfo/x/xterm-256color ]
then
export TERM='xterm-256color'
else
export TERM='xterm-color'
fi
eval $(dircolors ~/.dir_colors)
# BELL
[ ! -z $DISPLAY ] && xset b 0
# VIMMODE
set -o vi
shopt -s autocd
# DPI
export QT_FONT_DPI=100
# COLORLS
OSNAME=`uname`
case $OSNAME in
Linux)
alias ls="ls --color=auto -F -b -T 0"
alias ll="ls -l --color=auto -F -b -T 0"
;;
FreeBSD)
LSCOLOR="3x5x2x3x1x464301060203"
alias ls="ls -GF"
export LSCOLORS
;;
OpenBSD)
alias ls="colorls -F -G"
export PKG_PATH="ftp://mirror.switch.ch/mirror/OpenBSD/4.0/packages/i386/"
;;
esac
# ENV
function set_if_not_in()
{
env_var=$1
arg=$2
IFS=":";
for p in ${!env_var}; do if [ $p == $arg ]; then IFS=" "; return 0; fi done
IFS=" ";
export ${env_var}=$arg:${!env_var}
}
function export_if_exists()
{
_TMP=`which $2 2>/dev/null`
[ -z ${_TMP} ] && _TMP=$3
eval "export $1=$_TMP"
}
[ -r /etc/profile.d/undistract-me.sh ] && source /etc/profile.d/undistract-me.sh
# prepend ~/bin to path if not already there
HOME_=$(readlink -f ${HOME%/})
export PATH=${HOME_}/bin:${PATH#${HOME_}/bin:}
export_if_exists 'PAGER' 'less' '/bin/more'
export EDITOR=nvim
# RUBY
export GEM_HOME="${HOME_}/.gem/ruby/3.0.0"
set_if_not_in 'PATH' ${GEM_HOME}/bin
# catch and eval dmalloc output
#function dmalloc { eval `command dmalloc -b $*`; }
alias vim=nvim
alias gvim='nvim --listen godothost .'
alias vimdiff="nvim -d"
alias sf='systemctl --user restart pipewire*'
alias fuck='eval $(thefuck $(fc -ln -1)); history -r'
alias tt='taskwarrior-tui'
alias kk='khal calendar'
alias ki='khal interactive'
alias zz='clear && khal calendar && task -old'
alias ddu='zcat ~/.cache/ncdu-data.gz | ncdu -f-'
# FUNCTIONS
function lip () { # local ips
ip -4 -c addr | sed -n '/^[1-9]:/p;/inet/p'
}
function xip () { # external ip
dig +short myip.opendns.com @resolver1.opendns.com
}
function rman () { # centered man
env COLUMNS=$(($COLUMNS/3*2)) man "${@}" | pr -o $((COLUMNS/3/2)) | less
}
function xcon () { # external established connections
ss -t -o state established '( dport = :443 || dport = :80 )' \
| grep -Po '([0-9a-z:.]*)(?=:http[s])' | sort -u \
| netcat whois.cymru.com 43 | grep -v "AS Name" | sort -t'|' -k3
}
function xtract() {
if [ -f "$1" ] ; then
case "$1" in
*.tar.bz2) tar xvjf "$1" ;;
*.tar.gz) tar xvzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xvf "$1" ;;
*.tbz2) tar xvjf "$1" ;;
*.tgz) tar xvzf "$1" ;;
*.zip) unzip "$1" ;;
*.ZIP) unzip "$1" ;;
*.pax) cat "$1" | pax -r ;;
*.pax.Z) uncompress "$1" —stdout | pax -r ;;
*.Z) uncompress "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "don't know how to extract '$1'..." ;;
esac
else
echo "extract: error: $1 is not valid"
fi
}
# SSH
ssh-add -l &>/dev/null
if [ $? -ne 0 ]
then
[ -r ~/.ssh/agent ] && eval "$(<~/.ssh/agent)" >/dev/null
ssh-add -l &>/dev/null
if [ $? -ne 0 ]
then
(umask 066; ssh-agent > ~/.ssh/agent)
eval "$(<~/.ssh/agent)" >/dev/null
fi
fi
|