#!/usr/bin/env sh # # ~/.profile # Sourced once per login by most shells. # Some shells, such as csh may use a symlink from ~/.login instead. # Used to set important variables, such as PATH, XDG_ and alike. # export PATH=".local/bin:$PATH" export LANG="en_GB.UTF-8" # Use neovim for editor whenever available. type nvim >/dev/null && { export EDITOR='nvim' export VISUAL='nvim' export MANPAGER='nvim +Man!' } # Read https://specifications.freedesktop.org/basedir-spec/latest/ # or https://wiki.archlinux.org/title/XDG_Base_Directory # for more information about these values. # Default Analogous to export XDG_CONFIG_HOME="$HOME/.config" # ~/.config /etc export XDG_DATA_HOME="$HOME/.local/share" # ~/.local/share /usr/share export XDG_STATE_HOME="$HOME/.var/lib" # ~/.local/state /var/lib export XDG_CACHE_HOME="$HOME/.var/cache" # ~/.cache /var/cache [ -r "$XDG_CONFIG_HOME/user-dirs.dirs" ] && . "$XDG_CONFIG_HOME/user-dirs.dirs" # I am not going to set environment variables such as HISTFILE, # Since, cleaning up my $HOME is a losing battle, *every* application # will put its crap there. # Create symlinks from the defaults to our configured locations # Since, not all applications follow the XDG base directory rules. [ -L "$HOME/.local/state" ] || ln -sf "$XDG_STATE_HOME" "$HOME/.local/state" [ -L "$HOME/.cache" ] || ln -sf "$XDG_CACHE_HOME" "$HOME/.cache" # coloured GCC warnings and errors export GCC_COLORS=auto # Load the SSH agent [ -z "$SSH_AUTH_SOCK" ] && { eval "$(ssh-agent -s)" >/dev/null ssh-add "$HOME/.ssh/github" >/dev/null 2>&1 ssh-add "$HOME/.ssh/gitea" >/dev/null 2>&1 ssh-add "$HOME/.ssh/admin@homeserver" >/dev/null 2>&1 } #shellcheck disable=SC1091 # Source ~/.bashrc, when in interactive mode, but not POSIX/sh mode. [ "$BASH" ] && [ "$PS1" ] && [ -z "$POSIXLY_CORRECT" ] && [ "${0#-}" != 'sh' ] && [ -r "$HOME/.bashrc" ] && . "$HOME/.bashrc"