#-*- mode: shell-script; -*- # # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return # If emacs tramp or eshell, don't execute any of this [[ $TERM == "dumb" ]] && return HISTSIZE=-1 HISTFILESIZE=-1 HISTCONTROL=ignorespace # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then # test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # COLOR THEME # Git branch in prompt. git_current_branch() { local ref ref=$(git symbolic-ref --quiet HEAD 2>/dev/null) local ret=$? if [[ $ret != 0 ]]; then [[ $ret == 128 ]] && return # no git repo. ref=$(git rev-parse --short HEAD 2>/dev/null) || return fi echo "  ${ref#refs/heads/}" } [[ -f /usr/bin/virtualenvwrapper_lazy.sh ]] && source /usr/bin/virtualenvwrapper_lazy.sh python_current_venv() { local orange="\[\e[0;91m\]" if [[ -n ${VIRTUAL_ENV} ]]; then echo " ${orange} $(basename "${VIRTUAL_ENV}")" fi } function __prompt_command { # Must collect exit code very first thing # Just calculating git_branch changes the exit code local EXIT="$?" local red="\[\e[0;31m\]" local green="\[\e[0;32m\]" local yellow="\[\e[0;33m\]" local orange="\[\e[0;91m\]" local normal="\[\e[0m\]" local blue="\[\e[0;34m\]" PS1="\u@\h ${green}\w${blue}$(git_current_branch)$(python_current_venv)" if [[ "${EXIT}" -ne 0 ]]; then PS1+=" ${red}✗ ${yellow}${EXIT}${orange}" else PS1+="${green}" fi PS1+=" ❯${normal} " } PROMPT_COMMAND=__prompt_command export EDITOR='emacsclient' # GPG agent with ssh if [ -z "$SSH_CLIENT" ]; then unset SSH_AGENT_PID if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" export SSH_AUTH_SOCK fi fi # For python lsp export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 alias isrun='ps -ae | grep' alias gdimg='git difftool -t image_diff' alias G='grep -i' alias lar='ls -lahrt' alias ssh='TERM=xterm-256color ssh' alias emacs='TERM=xterm-direct emacs' alias mykeys='setxkbmap -I$HOME/.config/xkb/ oscar -option caps:escape -print | xkbcomp -I$HOME/.config/xkb/ - $DISPLAY'