124 lines
3.4 KiB
Bash
124 lines
3.4 KiB
Bash
#
|
|
# ~/.bashrc
|
|
#
|
|
|
|
# If not running interactively, don't do anything
|
|
[[ $- != *i* ]] && return
|
|
|
|
# add from /etc/bash.bashrc default with fix for alacritty window title bars
|
|
case ${TERM} in
|
|
xterm*|rxvt*|Eterm|alacritty|aterm|kterm|gnome*)
|
|
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
|
|
|
|
;;
|
|
screen*)
|
|
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
|
|
;;
|
|
esac
|
|
|
|
#customize prompt see https://wiki.archlinux.org/index.php/Bash/Prompt_customization
|
|
RED="\[$(tput setaf 1)\]"
|
|
YELLOW="\[$(tput setaf 3)\]"
|
|
LIGHTBLUE="\[$(tput setaf 4)\]"
|
|
BLUE="\[$(tput setaf 27)\]"
|
|
RESET="\[$(tput sgr0)\]"
|
|
if [[ -z "$DISPLAY" ]]; then
|
|
PS1="${YELLOW}\u@\h \W>${RESET} "
|
|
else
|
|
#PS1="${BLUE}\u@\h \W>${RESET} "
|
|
PS1="${LIGHTBLUE}\W>${RESET} "
|
|
fi
|
|
|
|
man() {
|
|
LESS_TERMCAP_md=$'\e[01;31m' \
|
|
LESS_TERMCAP_me=$'\e[0m' \
|
|
LESS_TERMCAP_se=$'\e[0m' \
|
|
LESS_TERMCAP_so=$'\e[01;44;33m' \
|
|
LESS_TERMCAP_ue=$'\e[0m' \
|
|
LESS_TERMCAP_us=$'\e[01;32m' \
|
|
command man "$@"
|
|
}
|
|
|
|
alias ls='ls --color=always'
|
|
alias l='ls'
|
|
alias la='ls -A'
|
|
alias ll='ls -lah'
|
|
alias tree='tree -CL 2'
|
|
alias nv='nvim'
|
|
export EDITOR=nvim
|
|
export VISUAL=wm_spawn
|
|
alias feh='feh --scale-down'
|
|
|
|
#alias xclip="xclip -selection clipboard"
|
|
#alias ts="date --iso-8601='seconds' | tr -d '\n' | xclip"
|
|
|
|
# Base16 Shell
|
|
BASE16_SHELL="$HOME/.config/base16-shell/"
|
|
[ -n "$PS1" ] && \
|
|
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
|
|
eval "$("$BASE16_SHELL/profile_helper.sh")"
|
|
|
|
#add private usr bin to path if exists
|
|
if [ -d "$HOME/bin" ] ; then
|
|
export PATH="$HOME/bin:$PATH"
|
|
fi
|
|
|
|
if [ -d "$HOME/.local/bin" ] ; then
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
fi
|
|
|
|
|
|
#---begin fzf setup---
|
|
#fast fuzzy file searching with fzf
|
|
#fzf kbd shortcuts: <alt-c>, <ctrl-t>, <ctrl-p>
|
|
source /usr/share/fzf/key-bindings.bash
|
|
source /usr/share/fzf/completion.bash
|
|
|
|
#use ripgrep with fzf
|
|
#export FZF_DEFAULT_COMMAND='rg -i --files --glob "!.git/*"'
|
|
#export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow --glob "!.git/*"'
|
|
|
|
#bat instead of cat
|
|
#fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'
|
|
|
|
#or use fd with fzf
|
|
# export FZF_DEFAULT_COMMAND="fd --type file --color=always"
|
|
# export FZF_DEFAULT_COMMAND='fd --type file --hidden --color=always --follow --exclude .git'
|
|
# export FZF_DEFAULT_OPTS="--ansi"
|
|
|
|
#use ansi color codes and bind ctrl-y to copy selection
|
|
export FZF_DEFAULT_OPTS=' --ansi --bind "ctrl-y:execute-silent(printf {} | cut -f 2- | wl-copy --trim-newline)"'
|
|
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
|
|
|
#bind ctrl-p to text editor
|
|
alias fzfcmd='fzf --bind "enter:execute($EDITOR {})"'
|
|
bind -x '"\C-p": fzfcmd;'
|
|
#---end fzf setup---
|
|
|
|
|
|
#setup bash history
|
|
export HISTIGNORE="ls*:cd*:exit:ps*:history:pass*:gpg*:start*"
|
|
# export HISTSIZE=4096
|
|
export HISTSIZE=-1 #make unlimited
|
|
# export HISTSIZE=0 #disable history
|
|
# export HISTFILESIZE=32768
|
|
unset HISTFILESIZE
|
|
export HISTCONTROL=ignoreboth:erasedups
|
|
shopt -s histappend
|
|
# export HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S | '
|
|
|
|
#
|
|
# if [ -d "$HOME/bin/Fiji.app" ]; then
|
|
# alias fiji="~/bin/Fiji.app/ImageJ-linux64"
|
|
# fi
|
|
|
|
#source custom user aliases
|
|
if [[ -e $HOME/.bashrc.local ]]; then
|
|
source $HOME/.bashrc.local
|
|
fi
|
|
|
|
# if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then
|
|
# tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux
|
|
# fi
|
|
|