mirror of
https://github.com/Matir/skel.git
synced 2026-05-25 21:19:09 -07:00
141 lines
4.0 KiB
Plaintext
Executable File
141 lines
4.0 KiB
Plaintext
Executable File
# Sourced by zshrc as well as bash.
|
|
# Should only use POSIX shell constructs.
|
|
|
|
umask 027
|
|
|
|
# Paths and preferences
|
|
export PYTHONPATH="$HOME/.python:$PYTHONPATH"
|
|
export GOPATH="$HOME/go:$HOME/Projects/Go:/usr/share/gocode"
|
|
export PATH="$HOME/bin:$HOME/bin/tools:/sbin:/usr/sbin:$PATH:$HOME/go/bin:$HOME/.npm-packages/bin"
|
|
export VISUAL=vim
|
|
export EDITOR=vim
|
|
export DEBEMAIL="david@systemoverlord.com"
|
|
export DEBFULLNAME="David Tomaschik"
|
|
export LESS="-MR"
|
|
export QUOTING_STYLE="literal" # Coreutils quotes
|
|
|
|
# Fix gnome-terminal
|
|
if [ "$TERM" = "xterm" ] && [ "$COLORTERM" = "gnome-terminal" ] ; then
|
|
# Requires `ncurses-base` package for terminfo.
|
|
export TERM="xterm-256color"
|
|
fi
|
|
|
|
# Terminal preferences for i3
|
|
if [ -z "${TERMINAL}" ] ; then
|
|
for t in urxvt gnome-terminal; do
|
|
if TERMINAL=$(command -v ${t}) ; then
|
|
export TERMINAL
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Browser preferences
|
|
if [ -z "${BROWSER}" ] ; then
|
|
for t in google-chrome-beta google-chrome firefox ; do
|
|
if BROWSER=$(command -v ${t}); then
|
|
export BROWSER
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# For virtualenvwrapper
|
|
export WORKON_HOME=$HOME/.virtualenvs
|
|
|
|
# GPG full key id
|
|
export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
|
|
|
|
# Setup locale
|
|
if test -x /usr/bin/locale ; then
|
|
for l in en_US.utf8 en_US.UTF-8 C.UTF-8 C.utf8 C ; do
|
|
if /usr/bin/locale -a | grep -q "${l}" ; then
|
|
export LC_CTYPE=${l}
|
|
export LC_NUMERIC=${l}
|
|
export LC_TIME=${l}
|
|
export LC_MONETARY=${l}
|
|
export LC_MESSAGES=${l}
|
|
export LC_PAPER=${l}
|
|
export LC_NAME=${l}
|
|
export LC_ADDRESS=${l}
|
|
export LC_TELEPHONE=${l}
|
|
export LC_MEASUREMENT=${l}
|
|
export LC_IDENTIFICATION=${l}
|
|
break
|
|
fi
|
|
done
|
|
else
|
|
export LC_CTYPE=C
|
|
export LC_NUMERIC=C
|
|
export LC_TIME=C
|
|
export LC_MONETARY=C
|
|
export LC_MESSAGES=C
|
|
export LC_PAPER=C
|
|
export LC_NAME=C
|
|
export LC_ADDRESS=C
|
|
export LC_TELEPHONE=C
|
|
export LC_MEASUREMENT=C
|
|
export LC_IDENTIFICATION=C
|
|
fi
|
|
export LC_COLLATE=C
|
|
|
|
# Opt out of .net telemetry
|
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
|
|
# Suppress lvm warnings
|
|
export LVM_SUPPRESS_FD_WARNINGS=1
|
|
|
|
# Default disable SSH forwarding in EARTHLY
|
|
export EARTHLY_SSH_AUTH_SOCK=""
|
|
|
|
# Handle SSH_AUTH_SOCK for tmux consistency
|
|
_SSH_AUTH_LINK="${HOME}/.ssh/ssh_auth_sock"
|
|
if [ -z "${SSH_AUTH_SOCK:-}" ] || [ ! -S "${SSH_AUTH_SOCK}" ] ; then
|
|
# Try to find a working GPG agent SSH socket if no agent is set or current is broken
|
|
if command -v gpgconf >/dev/null 2>&1; then
|
|
_GPG_SSH_SOCK=$(gpgconf --list-dirs agent-ssh-socket 2>/dev/null)
|
|
fi
|
|
# Fallback to common paths if gpgconf fails or isn't present
|
|
if [ -z "${_GPG_SSH_SOCK}" ] || [ ! -S "${_GPG_SSH_SOCK}" ]; then
|
|
_GPG_SSH_SOCK="${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent.ssh"
|
|
[ -S "$_GPG_SSH_SOCK" ] || _GPG_SSH_SOCK="/run/user/$(id -u)/gnupg/S.gpg-agent.ssh"
|
|
fi
|
|
|
|
if [ -S "${_GPG_SSH_SOCK}" ] ; then
|
|
export SSH_AUTH_SOCK="$_GPG_SSH_SOCK"
|
|
fi
|
|
unset _GPG_SSH_SOCK
|
|
fi
|
|
|
|
# If we have a valid socket but it's not our stable link, sync the link and use it.
|
|
# This ensures tmux (using the static path) always finds the most recent agent.
|
|
if [ -S "${SSH_AUTH_SOCK:-}" ] && [ "${SSH_AUTH_SOCK}" != "${_SSH_AUTH_LINK}" ] ; then
|
|
[ -d "$(dirname "${_SSH_AUTH_LINK}")" ] || mkdir -p "$(dirname "${_SSH_AUTH_LINK}")"
|
|
ln -sf "${SSH_AUTH_SOCK}" "${_SSH_AUTH_LINK}"
|
|
export SSH_AUTH_SOCK="${_SSH_AUTH_LINK}"
|
|
fi
|
|
unset _SSH_AUTH_LINK
|
|
|
|
# Setup XDG-like dirs on MacOS
|
|
# Based on https://leebyron.com/til/mac-xdg/
|
|
if [ "$(uname)" = "Darwin" ] ; then
|
|
original_options=$(echo "$-")
|
|
set -a
|
|
# Anything set here will be exported
|
|
: "${XDG_BIN_HOME:=$HOME/.local/bin}"
|
|
: "${XDG_CACHE_HOME:=$HOME/Library/Caches}"
|
|
: "${XDG_CONFIG_HOME:=$HOME/.config}"
|
|
: "${XDG_DATA_HOME:=$HOME/.local/share}"
|
|
: "${XDG_RUNTIME_DIR:=$TMPDIR/runtime-$UID}"
|
|
: "${XDG_STATE_HOME:=$HOME/.local/state}"
|
|
set -f # Temporarily disable globbing to handle options with special characters
|
|
set -- "-$original_options"
|
|
unset original_options
|
|
fi
|
|
|
|
if test -e "$HOME/.localenv"; then
|
|
# shellcheck source=/dev/null
|
|
. "$HOME/.localenv"
|
|
else
|
|
true
|
|
fi
|