From 3e3a64c712bed0faf9cffefb2f4700710f3f73a2 Mon Sep 17 00:00:00 2001 From: Andrew Davidson Date: Sat, 29 Apr 2023 21:42:30 -0700 Subject: [PATCH] adding .emacs.d/bin to $PATH --- bash/#.bashrc# | 288 +++++++++++++++++++++++++++++++++++++++++++++++++ bash/.bashrc | 5 +- 2 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 bash/#.bashrc# diff --git a/bash/#.bashrc# b/bash/#.bashrc# new file mode 100644 index 0000000..703d61a --- /dev/null +++ b/bash/#.bashrc# @@ -0,0 +1,288 @@ +### Andrew's .bashrc + + + +# _ _ +# ___ _ ____ _(_)_ __ ___ _ __ _ __ ___ ___ _ __ | |_ +# / _ \ '_ \ \ / / | '__/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| +# | __/ | | \ V /| | | | (_) | | | | | | | | | __/ | | | |_ +# \___|_| |_|\_/ |_|_| \___/|_| |_|_| |_| |_|\___|_| |_|\__| + + +# Set some defaults. +export EDITOR="emacsclient -t" +export VISUAL="emacsclient -c -a emacs" +export ALTERNATE_EDITOR="" +export PATH=".:~/bin:~/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" +export LSCOLORS="ExGxBxDxCxEgEdxbxgxcxd" + +if [[-d + + + +# checks (stolen from zshuery) +if [[ $(uname) = 'Linux' ]]; then + IS_LINUX=1 +fi + +if [[ $(uname) = 'Darwin' ]]; then + IS_MAC=1 +fi + +if [[ -x `which brew >/dev/null 2>&1` ]]; then + HAS_BREW=1 +fi + +if [[ -x `which apt-get >/dev/null 2>&1` ]]; then + sdfHAS_APT=1 +fi + + + +# _ +# _ __ _ __ ___ _ __ ___ _ __ | |_ +# | '_ \| '__/ _ \| '_ ` _ \| '_ \| __| +# | |_) | | | (_) | | | | | | |_) | |_ +# | .__/|_| \___/|_| |_| |_| .__/ \__| +# |_| |_| + + +# define useful aliases for color codes +sh_norm="\[\033[0m\]" +sh_black="\[\033[0;30m\]" +sh_dark_gray="\[\033[1;30m\]" +sh_blue="\[\033[0;34m\]" +sh_light_blue="\[\033[1;34m\]" +sh_green="\[\033[0;32m\]" +sh_light_green="\[\033[1;32m\]" +sh_cyan="\[\033[0;36m\]" +sh_light_cyan="\[\033[1;36m\]" +sh_red="\[\033[0;31m\]" +sh_light_red="\[\033[1;31m\]" +sh_purple="\[\033[0;35m\]" +sh_light_purple="\[\033[1;35m\]" +sh_brown="\[\033[0;33m\]" +sh_yellow="\[\033[1;33m\]" +sh_light_gray="\[\033[0;37m\]" +sh_white="\[\033[1;37m\]" + +function git_prompt { + PCHANGED="" + PAHEAD="" + PBEHIND="" + local FULL_BRANCH="$(git symbolic-ref -q HEAD 2>/dev/null || git name-rev --name-only --no-undefined --always HEAD 2>/dev/null)" + PBRANCH="$(echo $FULL_BRANCH | sed 's/refs\/heads\///')" + if [ -n $PBRANCH ]; then + echo -n "${PBRANCH} " + # Are there unstaged changes in the working directory + local CHANGED=$(git status --porcelain --ignore-submodule -unormal 2>/dev/null | wc -l) + if [ $CHANGED -gt 0 ]; then + PCHANGED="◊" + fi + # Are we behind the origin? + local NUM_BEHIND="$(git log --oneline ..@{u} 2>/dev/null | wc -l | tr -d ' ' )" + if [ "$NUM_BEHIND" -gt 0 ]; then + PBEHIND="↓" + fi + # Are we ahead of the origin? + local NUM_AHEAD="$(git log --oneline @{u}.. 2>/dev/null | wc -l | tr -d ' ')" + if [ "$NUM_AHEAD" -gt 0 ]; then + PAHEAD="↑" + fi + + if [[ -n $PCHANGED || -n $PAHEAD || -n $PBEHIND ]]; then + echo -n "${PCHANGED}${PBEHIND}${PAHEAD}" + fi + fi +} + + + +# Make a pretty prompt. +export PROMPT_COMMAND='history -a; if [ $? -ne 0 ];then ERROR_FLAG=1;else ERROR_FLAG=;fi;' +export PS1=${HOSTCOLOUR}${sh_light_gray}'\h'${sh_green}':\w'${sh_light_gray}' $(git_prompt)'${sh_light_gray}'${ERROR_FLAG:+'${sh_light_red}'}\$ '${sh_norm} + +# New files and folders should not be world readable +umask 0027 + +# Borrow features from sensible.bash + +# Trim long paths in prompt +PROMPT_DIRTRIM=2 + +# Update window size after every command +shopt -s checkwinsize + + + + + +# _ _ _ +# | |__ (_)___| |_ ___ _ __ _ _ +# | '_ \| / __| __/ _ \| '__| | | | +# | | | | \__ \ || (_) | | | |_| | +# |_| |_|_|___/\__\___/|_| \__, | +# |___/ + +# Append history don't overwrite +shopt -s histappend + +# Save multi-line commands as one line +shopt -s cmdhist + +# Avoid duplicate entries +export HISTCONTROL="erasedups:ignoreboth" + +# Use ISO8601 time format for history file. +export HISTTIMEFORMAT='%F %T ' + +# Big history file +HISTSIZE=500000 +HISTFILESIZE=100000 + + + + +# _ _ +# __ _| (_) __ _ ___ ___ ___ +# / _` | | |/ _` / __|/ _ \/ __| +# | (_| | | | (_| \__ \ __/\__ \ +# \__,_|_|_|\__,_|___/\___||___/ + +# jump down the tree. +alias ..="cd .." + +# empty the screen (or use C-l) +alias c="clear" + +# why wouldn't you want human readable sizes? +alias df="df -h" + +# get outta here! +alias e="exit" + +# grep shortie +alias g="grep --color=auto -i " + +# shorter ls +alias l="ls -G --color" + +# list files with details +alias ll="ls -lh --color" + +# list all files. +alias la="ls -alh --color" + +# List directories. +alias ld="ls --color -Gd */" + +# add some color to grep. +alias grep="grep --color=auto" + +# make the whole directory tree if required and let us know about it. +alias mkdir="mkdir -p -v " + +# don't ping forever. +#alias ping="ping -c5" + +# refresh the shell customizations without opening a new one. +alias refresh="source ~/.bashrc && hash -r" + +# A python calculator +alias pc='python -ic "from __future__ import division; from math import *"' + +# Start nano with line numbering no wrapping and autoindenting +alias nano='nano -ciw ' + +# shortcut for tmux command +alias tm="tmux new-session -A -s main" + +# emacsclient +alias ec="emacsclient -n -c -a emacs" + + + + + +# __ _ _ +# / _|_ _ _ __ ___| |_(_) ___ _ __ ___ +# | |_| | | | '_ \ / __| __| |/ _ \| '_ \/ __| +# | _| |_| | | | | (__| |_| | (_) | | | \__ \ +# |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/ + +# General purpose extract command. +extract () { + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.tar.xz) tar xJf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) rar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1 ;; + *.7z) 7za e $1 ;; + *.xz) xz -dv $1 ;; + *) echo "'$1' cannot be extracted via extract()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + + +# General purpose backup command. +bu () { tar czf ~/.backup/`basename $1`-`date +%Y%m%d%H%M`.tgz $1; } + +# create an archive of a list of files, compress the archive, and encrypt the compressed archive +function archive-and-encrypt { + echo -n "Enter desired output filename: " + read filename + tar cJ $1 | \ + gpg -q -r andrew@amdavidson.com -s -e -o "$filename.tar.xz.gpg" +} + + +# run mosh and tmux to a specific host +function mt { + mosh $1 -- tmux new-session -A -s main +} + + + + +# _ _ +# (_)_ __ ___ _ __ ___ _ __| |_ ___ +# | | '_ ` _ \| '_ \ / _ \| '__| __/ __| +# | | | | | | | |_) | (_) | | | |_\__ \ +# |_|_| |_| |_| .__/ \___/|_| \__|___/ +# |_| + +# import fzf if possible + +# Debian +if [ -d /usr/share/doc/fzf/examples ]; then + source /usr/share/doc/fzf/examples/key-bindings.bash + + if [ -f /usr/share/doc/fzf/examples/completion.bash ]; then + source /usr/share/doc/fzf/examples/completion.bash + fi +fi + +# MacOS +if [ -d /opt/homebrew/opt/fzf/shell ]; then + source /opt/homebrew/opt/fzf/shell/key-bindings.bash + source /opt/homebrew/opt/fzf/shell/completion.bash +fi + + + +# Import local extensions if needed. +if [ -f $HOME/.bashrc_local ]; then + source $HOME/.bashrc_local +fi + diff --git a/bash/.bashrc b/bash/.bashrc index fb42e5a..308a997 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -16,7 +16,10 @@ export ALTERNATE_EDITOR="" export PATH=".:~/bin:~/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" export LSCOLORS="ExGxBxDxCxEgEdxbxgxcxd" - +# include doom in path if it exists +if [ -d ~/.config/emacs/bin ]; then + export PATH="$HOME/.emacs.d/bin:$PATH" +fi # checks (stolen from zshuery) if [[ $(uname) = 'Linux' ]]; then