mirror of
				https://github.com/ItsDrike/dotfiles.git
				synced 2025-11-04 01:16:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			143 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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.
 | 
						|
 | 
						|
# Add all folders in ~/.local/bin into PATH
 | 
						|
# Some window managers require this line to be in profile not in .zshenv
 | 
						|
if [ -d "$HOME/.local/bin" ]; then
 | 
						|
  PATH+=":$(find -L ~/.local/bin -type d | tr '\n' ':' | sed 's/:$//')"
 | 
						|
fi
 | 
						|
 | 
						|
# Add all NPM global binaries to PATH
 | 
						|
if [ -d "$HOME/.local/share/npm/bin" ]; then
 | 
						|
  PATH+=":$HOME/.local/share/npm/bin"
 | 
						|
fi
 | 
						|
 | 
						|
# Prepend rye shims to PATH, to have rye python executables
 | 
						|
# take priority over the system-wide python.
 | 
						|
if [ -d "${RYE_HOME:-$HOME/.rye}/shims" ]; then
 | 
						|
  PATH="${RYE_HOME:-$HOME/.rye}/shims:$PATH"
 | 
						|
fi
 | 
						|
 | 
						|
# Define some variables for POSIX compatibility
 | 
						|
uid="$(id -u)"
 | 
						|
 | 
						|
# Default programs
 | 
						|
export EDITOR="nvim"
 | 
						|
export BROWSER="firefox"
 | 
						|
export TERMINAL="kitty"
 | 
						|
export DIFFPROG="nvim -d"
 | 
						|
export FILEMANAGER="pcmanfm-qt"
 | 
						|
 | 
						|
# XDG Base Directory 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"
 | 
						|
export XDG_STATE_HOME="$HOME/.local/state"
 | 
						|
export XDG_BIN_HOME="$HOME/.local/bin"
 | 
						|
 | 
						|
# XDG User directories (should match ~/.config/user-dirs.dirs)
 | 
						|
export XDG_DESKTOP_DIR="$HOME/Desktop"
 | 
						|
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
 | 
						|
export XDG_TEMPLATES_DIR="$XDG_DATA_HOME/templates"
 | 
						|
export XDG_PUBLICSHARE_DIR="$XDG_DATA_HOME/public"
 | 
						|
#export XDG_DOCUMENTS_DIR="$HOME/Documents"
 | 
						|
export XDG_MUSIC_DIR="$HOME/Media/Music"
 | 
						|
export XDG_PICTURES_DIR="$HOME/Media/Pictures"
 | 
						|
export XDG_VIDEOS_DIR="$HOME/Media/Videos"
 | 
						|
export XDG_SCREENSHOTS_DIR="$HOME/Media/Pictures/Screenshots"
 | 
						|
 | 
						|
# ZSH settings
 | 
						|
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
 | 
						|
export ZSH_CACHE="$HOME/.cache/zsh"
 | 
						|
export HISTFILE="$ZSH_CACHE/history"
 | 
						|
export ZSH_COMPDUMP="$ZSH_CACHE/zcompdump-${ZSH_VERSION:-}"
 | 
						|
 | 
						|
# Per-Application XDG settings
 | 
						|
export LESSHISTFILE="-"
 | 
						|
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc":"$XDG_CONFIG_HOME/gtk-2.0/gtkrc.mine"
 | 
						|
export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
 | 
						|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
 | 
						|
export GOPATH="$XDG_DATA_HOME/go"
 | 
						|
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 NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
 | 
						|
export NPM_CONFIG_CACHE="$XDG_CACHE_HOME/npm"
 | 
						|
export NPM_CONFIG_PREFIX="$XDG_DATA_HOME/npm"
 | 
						|
export NPM_CONFIG_TMP="$XDG_RUNTIME_DIR/npm"
 | 
						|
export NUGET_PACKAGES="$XDG_CACHE_HOME/NuGetPackages"
 | 
						|
export PARALLEL_HOME="$XDG_CONFIG_HOME/parallel"
 | 
						|
export RANDFILE="$XDG_CACHE_HOME/rnd"
 | 
						|
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc.py"
 | 
						|
export PYTHONPYCACHEPREFIX="$XDG_CACHE_HOME/python"
 | 
						|
export PYTHONUSERBASE="$XDG_DATA_HOME/python"
 | 
						|
export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
 | 
						|
export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"
 | 
						|
export IPYTHONDIR="$XDG_CONFIG_HOME/ipython"
 | 
						|
export PYENV_ROOT="$XDG_DATA_HOME/pyenv"
 | 
						|
export MYPY_CACHE_DIR="$XDG_CACHE_HOME/mypy"
 | 
						|
export PYLINTHOME="$XDG_CACHE_HOME/pylint"
 | 
						|
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
 | 
						|
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
 | 
						|
export WINEPREFIX="$XDG_DATA_HOME/wine"
 | 
						|
export MPLAYERHOME="$XDG_CONFIG_HOME/mplayer"
 | 
						|
export ANDROID_HOME="$XDG_DATA_HOME/android"
 | 
						|
export M2_HOME="$XDG_DATA_HOME/m2"
 | 
						|
export NODE_REPL_HISTORY="$XDG_DATA_HOME/node_repl_history"
 | 
						|
export DOTNET_CLI_HOME="$XDG_DATA_HOME/dotnet"
 | 
						|
export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME/jupyter"
 | 
						|
export RYE_HOME="$XDG_CONFIG_HOME/rye"
 | 
						|
export OMNISHARPHOME="$XDG_CONFIG_HOME"/omnisharp
 | 
						|
 | 
						|
# Theming
 | 
						|
export GTK_THEME="Tokyonight-Dark"
 | 
						|
export GTK_USE_PORTAL=1
 | 
						|
 | 
						|
export QT_STYLE_OVERRIDE=kvantum
 | 
						|
export QT_QPA_PLATFORMTHEME="qt5ct"
 | 
						|
export QT_AUTO_SCREEN_SCALE_FACTOR="1"
 | 
						|
export QT_QPA_PLATFORM="wayland;xcb"
 | 
						|
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
 | 
						|
 | 
						|
export XCURSOR_THEME="BreezeX-RosePine-Linux"
 | 
						|
export XCURSOR_SIZE="24"
 | 
						|
 | 
						|
export HYPRCURSOR_THEME="rose-pine-hyprcursor"
 | 
						|
export HYPRCURSOR_SIZE="24"
 | 
						|
 | 
						|
# Colorful man pages!
 | 
						|
# Use neovim to open man pages
 | 
						|
# shellcheck disable=SC2155
 | 
						|
if command -v nvim >/dev/null; then
 | 
						|
  export MANPAGER="nvim +Man!"
 | 
						|
# If neovim isn't installed, but bat is, use it as a manpager
 | 
						|
# (has color support)
 | 
						|
elif command -v bat >/dev/null; then
 | 
						|
  export MANPAGER="sh -c 'col -bx | bat -l man -p'"
 | 
						|
# Export color definitions for less (default manpager) otherwise
 | 
						|
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/gui/prompt/menupass"
 | 
						|
export PIPENV_VENV_IN_PROJECT=1    # Force pipenv to create new environments within projects ./.venv
 | 
						|
 | 
						|
# Remove irrelevant variables added for posix compatibility
 | 
						|
unset posix
 |