# (mk)shrc if [ -f /etc/shrc ]; then . /etc/shrc elif [ -f /opt/shrc ]; then . /opt/shrc fi export EDITOR=nvim export KANIDM_URL="https://idm.qalico.net" export KANIDM_USER="$USER" # opt out of .NET telemetry export DOTNET_CLI_TELEMETRY_OPTOUT=true ## Extra paths # Python packages go here if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi # Homebrew (macOS) if [ -d "/opt/homebrew" ] ; then PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/sbin:/usr/sbin:$PATH" HOMEBREW_CASK_OPTS="--appdir=~/Applications" PATH="/opt/homebrew/opt/ruby/bin:$PATH" export HOMEBREW_CASK_OPTS # x86 brew hack if [ -d "$HOME/.x86_64/homebrew" ] ; then brew86() { PATH="$HOME/.x86_64/homebrew/bin:$PATH" arch -x86_64 $HOME/.x86_64/homebrew/bin/brew "$@" } fi fi if [ -f "$HOME/.cargo/env" ] ; then PATH="$HOME/.cargo/bin:$PATH" fi # Flutter if [ -d "$HOME/.opt/flutter" ] ; then PATH="$HOME/.opt/flutter/bin:$PATH" fi # Perl local lib if [ -d "$HOME/perl5/lib/perl5" ] ; then eval $(perl -I ~/perl5/lib/perl5 -Mlocal::lib) fi # Android SDK (for VMs) if [ -d "$HOME/Library/Android/sdk" ] ; then export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk PATH="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/emulator:$ANDROID_SDK_ROOT/platform-tools:$PATH" fi export PATH # Force 256color term for screen if [ "$TERM" = "screen" ] ; then TERM="screen-256color" export TERM fi export LANG=en_US.UTF-8 export LC_ALL= ## Ripped from a custom /etc/shrc, not very useful here if [ -z "$UID" ] ; then UID="$(id -u)" fi BRL="[" BRR="" if [ -n "$BASH_VERSION" ] ; then BRL="\\[\\\\033[" BRR="\\]" fi if [ "$UID" -eq "0" ] ; then PROMPT="#" USER_COLOR="${BRL}31m${BRR}" else PROMPT="$" USER_COLOR="${BRL}96m${BRR}" fi getrv() { # HACK: Since the if statement in get_ps1 will clobber the old # return value, KSH passes a cached version of the old val along # so we can use it here. rv=${1:-$?} if [ "$rv" -ne "0" -a "$rv" -ne "130" ] ; then printf "${BRL}33m${BRR}%d${BRL}0m${BRR} » " "$rv" fi } get_ps1() { # Bash uses a static version of this, so we have to make a couple # changes for post-processing rv=$? if [ -n "$BASH_VERSION" ] ; then printf '$(getrv)' else getrv $rv fi if [ -n "$SSH_TTY" ] ; then printf "${BRL}32m${BRR}SSH » " fi if _branch="$(git branch --show-current 2>/dev/null)" ; then [ -z "${_branch}" ] && _branch="$(git rev-parse --short HEAD 2>/dev/null)" printf "${BRL}97m${BRR}%s » " "${_branch}" unset _branch fi printf "${USER_COLOR}${HOST%%.*} ${BRL}39m${BRR}"; if [ -n "$BASH_VERSION" ] ; then printf "\w" elif [[ "${PWD#$HOME}" != "$PWD" ]] ; then printf "~${PWD#$HOME}" else printf "$PWD" fi printf "${USER_COLOR} \n${BRL}0m${BRR}${PROMPT} " } case "$-" in *i*) # interactive mode settings go here if /bin/test -z "${HOST}"; then HOST="$(hostname)" fi PS1='$(get_ps1)' set -o emacs # This file is used by shells that might not support # set -o tabcomplete, so check before trying to use it. ( set -o tabcomplete 2>/dev/null ) && set -o tabcomplete if command -v xclip >/dev/null ; then alias ctop='xclip -selection clipboard -out | xclip -selection primary -in' alias ptoc='xclip -selection primary -out | xclip -selection primary -in' fi alias define='dict' if command -v nvim >/dev/null ; then alias vim='nvim' fi # Hack to bubble up profile, see bin/tmux-shim alias tmux="$HOME/bin/tmux-shim" # Alias dotfiles alias dotfiles='git --git-dir=$HOME/.dotfiles.git/ --work-tree=$HOME' # Set bash PS1 if [ -n "$BASH_VERSION" ] ; then PS1="$(get_ps1)" export PS1 elif [ "${KSH_VERSION:-notksh}" != "notksh" ] ; then [[ "${KSH_VERSION}" == *"MIRBSD KSH"* ]] && bind '^L=clear-screen' else hn="$(hostname)" PS1='${hn}:${PWD} \$ ' fi # Tiny helper functions calc() { echo "$@" | bc } ## Bitwarden auto-unlock if command -v bw >/dev/null ; then if ! command -v jq >/dev/null ; then cat </dev/null ; then export INFLUX_TOKEN="$(bw get password influx_token)" fi "$real_influx" "$@" else echo "influx not installed; not continuing" fi } nconv() { if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then echo "usage: nconv [from-base] [to-base] [num]" >&2 return 1 fi echo "obase=$2; ibase=$1; $3" | bc } ;; esac