aboutsummaryrefslogtreecommitdiff
path: root/Common/bashrc.m4
blob: 344be63de6e8d721deb8bbbc6485b5d8b98e651e (plain) (blame)
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
m4_include(`system.m4')m4_dnl
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# Check if env setup file exists
if [ ! -f ~/.dotfiles_env ]; then
    echo "DEFAULT_USER=$USER" >> ~/.zsh_env_setup
    echo "export GIT_EDITOR=\"DT_EDITOR\"" >> ~/.dotfiles_env
    echo "export GIT_AUTHOR_NAME=\"DT_GIT_USER\"" >> ~/.dotfiles_env
    echo "export GIT_AUTHOR_EMAIL=\"DT_GIT_EMAIL\"" >> ~/.dotfiles_env
fi

export XDG_CONFIG_HOME="${HOME}/.config"

# Source env setup file
source ~/.dotfiles_env

# Add some commons to PATH
export PATH=$HOME/bin:/usr/local/bin:$HOME/.local/bin:$PATH:$HOME/go/bin

# Modify locale and path
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

# Set editor
export EDITOR="DT_EDITOR"

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# Prompt
PS1='\w\$ '

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
alias cda=". $HOME/bin/cd-archive"

# Make tmux window title show the ssh hostname
# Make short hostname only if its not an IP address
__tm_get_hostname(){
    local HOST="$(echo $* | rev | cut -d ' ' -f 1 | rev)"
    if echo $HOST | grep -P "^([0-9]+\.){3}[0-9]+" -q; then
        echo $HOST
    else
        echo $HOST| cut -d . -f 1
    fi
}

__tm_get_current_window(){
    tmux list-windows| awk -F : '/\(active\)$/{print $1}'
}

# Rename window according to __tm_get_hostname and then restore it after the command
__tm_command() {
    if [ "$(ps -p $(ps -p $$ -o ppid=) -o comm=| cut -d : -f 1)" = "tmux" ]; then
        __tm_window=$(__tm_get_current_window)
        # Use current window to change back the setting. If not it will be applied to the active window
        trap "tmux set-window-option -t $__tm_window automatic-rename on 1>/dev/null" EXIT HUP INT QUIT PIPE TERM
        tmux rename-window "$(__tm_get_hostname $*)"
    	command "$@"
        tmux set-window-option -t $__tm_window automatic-rename on 1>/dev/null
	else
    	command "$@"
    fi
}

ssh() {
    __tm_command ssh "$@"
}

# start only one ssh-agent and reuse the created one
# this is used for sway, although keys added do not persist on reboot
SSH_DIR="$HOME"
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
    ssh-agent > "$SSH_DIR/ssh-agent.env"
fi
source "$SSH_DIR/ssh-agent.env" > /dev/null

# enable cargo things
. "$HOME/.cargo/env"

# Enable FZF history
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
m4_ifelse(DT_DISTRO, `fedora', m4_dnl
source /usr/share/fzf/shell/key-bindings.bash
)m4_dnl

# Autocompletion
source DT_DOTFILES_DIR/auto_completion/cd-archive