#!/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" # Interactive mksh reads the file named by $ENV. Without this, ~/.mkshrc # (prompt, aliases, modules, history hook) never loads in interactive shells. export ENV="$HOME/.mkshrc" # 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