#!/bin/sh
# Login shell profile -- sourced by sh, mksh, and X session.
# Sets environment variables, PATH, and XDG directories.
# Default programs
export EDITOR="nvim"
export VISUAL="nvim"
export TERMINAL="st"
export TERMINAL_PROG="st"
export BROWSER="librewolf"
# XDG base directories
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
# PATH -- add ~/.local/bin and all subdirectories
for dir in "$HOME"/.local/bin/*/; do
case "$PATH" in
*"$dir"*) ;;
*) export PATH="$PATH:$dir" ;;
esac
done
export PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH="$HOME/.config/emacs/bin:$PATH"
export PLAN9="/usr/lib/plan9"
export PATH="$PATH:$PLAN9/bin"
# Cargo/Rust
export CARGO_HOME="$XDG_DATA_HOME/cargo"
[ -f "$CARGO_HOME/env" ] && . "$CARGO_HOME/env"
# XDG cleanup (keep $HOME tidy)
export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0"
export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default"
export KODI_DATA="$XDG_DATA_HOME/kodi"
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android"
export GOPATH="$XDG_DATA_HOME/go"
export GOMODCACHE="$XDG_CACHE_HOME/go/mod"
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg"
export UNISON="$XDG_DATA_HOME/unison"
export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config"
export ELECTRUMDIR="$XDG_DATA_HOME/electrum"
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
# nnn file manager
export NNN_OPTS="adeHQ"
export NNN_PLUG="p:preview-tui;f:fzcd;o:fzopen;i:imgview;z:autojump"
export NNN_FIFO="/tmp/nnn.fifo"
export NNN_OPENER="$HOME/.config/nnn/plugins/nuke"
export NNN_BMS="d:~/downloads;c:~/.config;p:~/dev;h:~;w:~/content"
export NNN_TRASH=1
export NNN_PREVIEWIMGPROG="ueberzug"
# Program settings
export DICS="/usr/share/stardict/dic/"
export SUDO_ASKPASS="$(command -v dmenupass)"
export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
export LESS="R"
export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null"
export QT_QPA_PLATFORMTHEME="gtk2"
export MOZ_USE_XINPUT2="1"
export AWT_TOOLKIT="MToolkit wmname LG3D"
export _JAVA_AWT_WM_NONREPARENTING=1
# Less colors (man pages)
export LESS_TERMCAP_mb="$(printf '\033[1;31m')"
export LESS_TERMCAP_md="$(printf '\033[1;36m')"
export LESS_TERMCAP_me="$(printf '\033[0m')"
export LESS_TERMCAP_so="$(printf '\033[01;44;33m')"
export LESS_TERMCAP_se="$(printf '\033[0m')"
export LESS_TERMCAP_us="$(printf '\033[1;32m')"
export LESS_TERMCAP_ue="$(printf '\033[0m')"
# Start X on tty1 (only from a real login shell, not when sourced by xprofile)
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ] && ! pgrep -x Xorg >/dev/null 2>&1; then
exec startx "$XINITRC"
fi