Files
dotfiles/.bashrc
jackman fe247039dd rpi
2024-04-27 13:41:14 -04:00

126 lines
3.5 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|foot|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=nano
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>
if [[ -e /usr/share/fzf/key-bindings.bash ]]; then
source /usr/share/fzf/key-bindings.bash
source /usr/share/fzf/completion.bash
fi
#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