#!/bin/sh # Environmental variable definitions. # This file is only sourced once after login, unlike .zshrc/.bashrc # # NOTE: This file shouldn't be defined for root account. Sudo # will not source it (and neither will it source .zshrc/.zprofile), # which means the XDG definitions will be ignored anyway, and # defining them may break programs when root is actually logged in. # Define some variables for POSIX compatibility uid="$(id -u)" # Default programs export EDITOR="nvim" export BROWSER="firefox" export TERMINAL="alacritty" export DIFFPROG="nvim -d" export FILEMANAGER="pcmanfm" # XDG Standard paths export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" export XDG_RUNTIME_DIR="/run/user/$uid" # Per-Application XDG settings export ZDOTDIR="$XDG_CONFIG_HOME/zsh" export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc" #export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs. export LESSHISTFILE="-" export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc" export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" export GNUPGHOME="$XDG_DATA_HOME/gnupg" # Less commonly used applications export _ZL_DATA="$XDG_DATA_HOME/zlua" export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc" export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime" export GOPATH="$XDG_DATA_HOME/go" export IPYTHONDIR="$XDG_CONFIG_HOME/ipython" export PYENV_ROOT="$XDG_DATA_HOME/pyenv" export MYPY_CACHE_DIR="$XDG_CACHE_HOME/mypy" export CARGO_HOME="$XDG_DATA_HOME/cargo" export RUSTUP_HOME="$XDG_DATA_HOME/rustup" export GRADLE_USER_HOME="$XDG_DATA_HOME/gradle" export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java" #export PYLINTHOME="$XDG_CACHE_HOME/pylint" #export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" #export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv" # Colorful man pages # If bat is installed, use it as manpager # shellcheck disable=SC2155 if command -v bat > /dev/null; then export MANPAGER="sh -c 'col -bx | bat -l man -p'" else export LESS_TERMCAP_mb="$(printf '%b' '[1;31m')" export LESS_TERMCAP_md="$(printf '%b' '[1;36m')" export LESS_TERMCAP_me="$(printf '%b' '[0m')" export LESS_TERMCAP_so="$(printf '%b' '[01;44;33m')" export LESS_TERMCAP_se="$(printf '%b' '[0m')" export LESS_TERMCAP_us="$(printf '%b' '[1;32m')" export LESS_TERMCAP_ue="$(printf '%b' '[0m')" fi # Other program settings export HISTTIMEFORMAT="%Y-%m-%d %T " export SUDO_ASKPASS="$HOME/.local/bin/scripts/dmenu/dmenupass" export PIPENV_VENV_IN_PROJECT=1 # Force pipenv to create new environments within projects ./.venv export XSECURELOCK_SHOW_HOSTNAME=0 # Don't show hostname in xsecurelock export XSECURELOCK_SHOW_DATETIME=1 # Show current date and time in xsecurelock export QT_QPA_PLATFORMTHEME="qt5ct" # Have QT use theme from qt5ct. #export QT_STYLE_OVERRIDE="gtk2" # Have QT use the gtk2 theme (needs aur/qt5-styleplugins) # Remove irrelevant variables added for posix compatibility unset posix