# -*- mode: sh; -*- # vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=sh: # # ~/.profile # Executed by the login shell # # Aaron LI # # Set file creation mask: be more private! umask 027 ### Functions ---------------------------------------------------------- ## PATH manipulations ## Credit: http://unix.stackexchange.com/a/178822 # Remove the specified part from PATH _path_remove() { PATH=$(echo ":${PATH}:" | sed -e "s|:$1:|:|g" -e "s|^:\(.*\):$|\1|") } # Prepend the supplied part to PATH _path_prepend() { _path_remove "$1" PATH="$1:${PATH}" } # Append the supplied part to PATH _path_append() { _path_remove "$1" PATH="${PATH}:$1" } ## Check the existence/accessibility of a command _exists() { which $1 &> /dev/null } ## Check whether the program is running _running() { pgrep -x -u "${USER}" $1 &> /dev/null } ### Environment Settings ----------------------------------------------- ## PATH # Locally installed NPM packages (see also `~/.npmrc`) if [ -d "${HOME}/.npm-packages/bin" ]; then _path_prepend "${HOME}/.npm-packages/bin" fi # Locally installed programs (e.g., Python) if [ -d "${HOME}/.local/bin" ]; then _path_prepend "${HOME}/.local/bin" fi # ~/bin if [ -d "${HOME}/bin" ]; then _path_prepend "${HOME}/bin" fi # System administration programs if groups | grep -qE '\b(wheel|adm|sudo)\b'; then _path_append "/usr/local/sbin" _path_append "/usr/sbin" _path_append "/sbin" fi ## Language and locale export LANG="en_US.UTF-8" export LC_COLLATE="C" ## Chinese input method export INPUT_METHOD="fcitx" export XMODIFIERS="@im=${INPUT_METHOD}" export GTK_IM_MODULE="${INPUT_METHOD}" export QT_IM_MODULE="${INPUT_METHOD}" ## Xapian # Enable the CJK N-gram tokenization algorithm for CJK indexing and search export XAPIAN_CJK_NGRAM=1 export EDITOR="vim" export VISUAL="${EDITOR}" export PAGER="less" export LESS="--ignore-case --raw-control-chars" ## LS colors if _exists dircolors; then eval $(dircolors -b) fi