blob: ab1b984192250992d9be0b15c938b7da885d9cb8 (
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
|
# ~/.bashrc
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
export CDPATH=.:..
export PAGER=less
export EDITOR=vim
# export MANPAGER='vim +MANPAGER --not-a-term -'
export HISTIGNORE='sudo id:uname:date:exit:df:ll:ls:ps:pwd:tc:top:history'
export HISTCONTROL=ignoreboth:erasedups # no start space and duplicate entries
export HISTSIZE=100000 # big big history
export HISTFILESIZE=100000 # big big history
shopt -s histappend # append to history, don't overwrite it
shopt -s globstar
shopt -s dotglob
stty -ixon # disable Ctrl-S
# Save and reload the history after each command finishes
#export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
[ "$TERM" = xterm-256color ] && export COLORTERM=truecolors
# export GNUTERM='sixelgd enhanced truecolor font "arial,9"'
#
OS=${OS:-$(~/bin/os)}
# Support different operating system environments
case $OS in
(arch|alpine|fedora-asahi-remix)
alias ls='ls --color=auto -v' ll='ls -AlFhv'
[ "$OS" = arch ] || trap 'printf "\e]2;%s\a" "$TERM_TAG ${BASH_COMMAND%ps1}"' DEBUG
;;
(Darwin)
# alias ibrew='arch -x86_64 /usr/local/bin/brew'
. /opt/local/etc/profile.d/bash_completion.sh
. /opt/local/share/fzf/shell/completion.bash
alias ls='ls -GF' ll='ls -AlGFhv'
alias ldd='otool -L'
trap 'printf "\e]2;%s\a" "$TERM_TAG ${BASH_COMMAND%update_terminal_cwd}"' DEBUG
;;
(termux)
PATH=~/bin:${HOME%/*}/usr/bin:~/go/bin
type eza >/dev/null && alias ls='eza' ll='eza -lao --no-user --no-permissions' ||
alias ls='ls --color=auto -v' ll='ls -AlFhv'
;;
esac
# Exported functions
d() { date +%F; }
p() { [ -f "$1" -a ! -x "$1" ] && less "$1" || "$@" 2>&1 | less; }
export -f d p
# [ "$OS" = alpine ] && export MANPAGER='vim +MANPAGER --not-a-term'
export LESS=iXFRx4
# export SHELLCHECK_OPTS='-S warning'
#export BACKUP=bip:/home/backup/marc@$(hostname -s)
# Stopwatch
alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date'
alias apk='doas apk'
alias dotfiles='git --git-dir=$HOME/dotfiles --work-tree=$HOME'
alias dy='YAEGI_AST_DOT=1 YAEGI_CFG_DOT=1 ./yaegi'
alias 2fz='2fa -list | fzf | xargs 2fa -clip'
alias fd='find . -iname'
alias gdt='dlv test -- -test.v -test.run'
alias gob='go build'
alias god='p go doc'
alias goh='p go help'
alias gol='GO111MODULE=off go'
alias grep='grep -i --color'
alias gtb='go test -v -cpuprofile cpu.out -memprofile mem.out -benchmem -bench'
alias gtr='go test -v -run'
alias more='less'
alias oman='MANPAGER=$PAGER man'
alias rg='rg --smart-case'
alias rot13='tr A-Za-z N-ZA-Mn-za-m'
alias vi='vim'
alias view='vim -R'
#alias vi='nvi'
#alias view='nview'
#alias ex='nex'
alias ww='vim ~/Wiki/home_page.md'
alias y='rlwrap yaegi'
alias mp='rlwrap mp'
alias hd='hexdump -C'
alias pacman='sudo pacman'
alias wtree='swaymsg -t get_tree'
# yaegi debug
export YAEGI_DOT_CMD='dotty -'
export YAEGI_UNSAFE=1
export YAEGI_UNRESTRICTED=1
export YAEGI_SYSCALL=1
sshs() { ssh -t "$@" -- screen -d -R; }
man() {
local width=''
[ $(tput cols) -gt 88 ] && width='MANWIDTH=88'
env $width man "$@"
}
meteo() {
local request="wttr.in/${1-Toulouse}?F&T"
[ "$(tput cols)" -lt 125 ] && request+='&n'
curl -H "Accept-Language: fr" --compressed "$request"
}
#eval "$(fzf --bash)" >/dev/null
# Handle missing commands, unless already provided.
type -t command_not_found_handle >/dev/null || command_not_found_handle() {
local pkgs
case $OS in
(alpine) pkgs=$(apk list -Pq "cmd:$1" | awk '{print $2}') ;;
(arch) pkgs=$(pkgfile -b "$1") ;;
(Darwin) # pkgs=$(brew which-formula "$1") ;;
esac
echo "$1: command not found${pkgs:+. Present in: $pkgs}" >&2
}
# Display git status in prompt
. ~/.bash-powerline.sh
|