feature: more dotfile types moved from HOME to XDG_*

- Python: history, cache, userbase moved
- Dotnet: Nuget, monisharp moved
- Postgres: psql_history, config, password, rc files moved
- Zsh: Retry at moving .zshcompdump file
This commit is contained in:
Pratik Tripathy
2024-07-05 17:31:08 +05:30
parent b00a3ffa11
commit b3007ee23d
2 changed files with 42 additions and 29 deletions

View File

@@ -31,8 +31,8 @@ eval "$(ssh-agent -s)" >/dev/null
# shellcheck disable=SC3045 # shellcheck disable=SC3045
ulimit -n 10240 ulimit -n 10240
[ ! -f "$XDG_CONFIG_HOME/templates/.gitignore" ] || export GITIGNORE_TEMPLATE="$XDG_CONFIG_HOME/templates/.gitignore" [ ! -f "${XDG_CONFIG_HOME}/templates/.gitignore" ] || export GITIGNORE_TEMPLATE="${XDG_CONFIG_HOME}/templates/.gitignore"
[ ! -f "$XDG_CONFIG_HOME/templates/.prettierrc" ] || export PRETTIER_TEMPLATE="$XDG_CONFIG_HOME/templates/.prettierrc" [ ! -f "${XDG_CONFIG_HOME}/templates/.prettierrc" ] || export PRETTIER_TEMPLATE="${XDG_CONFIG_HOME}/templates/.prettierrc"
EDITOR=$(command -v nvim 2>/dev/null || command -v vim 2>/dev/null) EDITOR=$(command -v nvim 2>/dev/null || command -v vim 2>/dev/null)
export EDITOR export EDITOR
@@ -42,10 +42,10 @@ export VISUAL="$EDITOR"
# To disable ~/.oracle_jre_usage/ from being created # To disable ~/.oracle_jre_usage/ from being created
if [ "$(uname -s)" = "Linux" ]; then if [ "$(uname -s)" = "Linux" ]; then
export __GL_SHADER_DISK_CACHE_PATH="$XDG_CACHE_HOME/nvidia" export __GL_SHADER_DISK_CACHE_PATH="${XDG_CACHE_HOME}/nvidia"
# Needs upstream fix to work: https://bugs.kde.org/show_bug.cgi?id=415770 # Needs upstream fix to work: https://bugs.kde.org/show_bug.cgi?id=415770
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc":"$XDG_CONFIG_HOME/gtk-2.0/gtkrc.mine" export GTK2_RC_FILES="${XDG_CONFIG_HOME}/gtk-2.0/gtkrc":"${XDG_CONFIG_HOME}/gtk-2.0/gtkrc.mine"
export CUDA_CACHE_PATH="XDG_CACHE_HOME/nv" export CUDA_CACHE_PATH="XDG_CACHE_HOME/nv"
# Map caps-lock to escape TIP: also added to /etc/profile # Map caps-lock to escape TIP: also added to /etc/profile
@@ -55,57 +55,67 @@ fi
export QT_PLUGIN_PATH="$HOME/local/lib/qt/plugins/:" export QT_PLUGIN_PATH="$HOME/local/lib/qt/plugins/:"
if [ "$XDG_SESSION_DESKTOP" = "KDE" ]; then if [ "$XDG_SESSION_DESKTOP" = "KDE" ]; then
export KDEHOME="$XDG_CONFIG_HOME/KDE" export KDEHOME="${XDG_CONFIG_HOME}/KDE"
fi fi
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg" export GNUPGHOME="${XDG_CONFIG_HOME}/gnupg"
export LESSHISTFILE="$XDG_STATE_HOME/shell/lesshst" export LESSHISTFILE="${XDG_STATE_HOME}/shell/lesshst"
export WGETRC="$XDG_CONFIG_HOME/wgetrc" export WGETRC="${XDG_CONFIG_HOME}/wgetrc"
# Move the Android device keys to .config (TODO: This needs to be tested) # Move the Android device keys to .config (TODO: This needs to be tested)
export ADB_VENDOR_KEYS="$XDG_CONFIG_HOME/android" export ADB_VENDOR_KEYS="${XDG_CONFIG_HOME}/android"
# Setup Python # Setup Python
export PYENV_ROOT="$XDG_DATA_HOME/pyenv" export PYTHON_HISTORY="${XDG_STATE_HOME}/shell/python_history" # will be picked up by Python 3.13+
export PYTHONPYCACHEPREFIX="${XDG_CACHE_HOME}/python"
export PYTHONUSERBASE="${XDG_DATA_HOME}/python"
export PYENV_ROOT="${XDG_DATA_HOME}/pyenv"
command -v pyenv >/dev/null && export PATH="$PATH:$PYENV_ROOT/bin:$PYENV_ROOT/shims" command -v pyenv >/dev/null && export PATH="$PATH:$PYENV_ROOT/bin:$PYENV_ROOT/shims"
command -v pyenv >/dev/null && eval "$(pyenv init -)" command -v pyenv >/dev/null && eval "$(pyenv init -)"
export PYTHON_HISTORY="$XDG_STATE_HOME/shell/python_history" # will be picked up by Python 3.13+
# Setup Rust # Setup Rust
export CARGO_HOME="$XDG_DATA_HOME/rust/cargo" export CARGO_HOME="${XDG_DATA_HOME}/rust/cargo"
export RUSTUP_HOME="$XDG_DATA_HOME/rust/rustup" export RUSTUP_HOME="${XDG_DATA_HOME}/rust/rustup"
export PATH="$PATH:$CARGO_HOME/bin" export PATH="$PATH:$CARGO_HOME/bin"
export RUSTC_WRAPPER=sccache export RUSTC_WRAPPER=sccache
export SCCACHE_CACHE_SIZE="20G" export SCCACHE_CACHE_SIZE="20G"
# Setup DotNet # Setup DotNet
export DOTNET_CLI_TELEMETRY_OPTOUT=1 export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_CLI_HOME="$XDG_CONFIG_HOME/dotnet" export DOTNET_CLI_HOME="${XDG_CONFIG_HOME}/dotnet"
export DOTNET_TOOLS_PATH="$XDG_DATA_HOME/dotnet" export DOTNET_TOOLS_PATH="${XDG_DATA_HOME}/dotnet"
export NUGET_PACKAGES="${XDG_CACHE_HOME}/NuGetPackages"
export OMNISHARPHOME="${XDG_CONFIG_HOME}/omnisharp"
# Postgres
export PSQLRC="${XDG_CONFIG_HOME}/postgres/psqlrc"
export PGPASSFILE="${XDG_CONFIG_HOME}/postgres/pgpass"
export PGSERVICEFILE="${XDG_CONFIG_HOME}/postgres/pg_service.conf"
export PSQL_HISTORY="${XDG_STATE_HOME}/psql_history"
# Go # Go
export GOPATH=/media/pratik/Projects/DevSetUps/gopath/ export GOPATH=/media/pratik/Projects/DevSetUps/gopath/
# FIX: BELOW DID NOT WORK: added to /etc/profile, need to recheck on reboot # FIX: BELOW DID NOT WORK: added to /etc/profile, need to recheck on reboot
# alias code="code --extensions-dir $XDG_DATA_HOME/vscode" # alias code="code --extensions-dir ${XDG_DATA_HOME}/vscode"
# Java # Java
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME/java" export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="${XDG_CONFIG_HOME}/java"
# Setup Node & n # Setup Node & n
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/node/npmrc" export NPM_CONFIG_USERCONFIG="${XDG_CONFIG_HOME}/node/npmrc"
export NODE_REPL_HISTORY="$XDG_CONFIG_HOME/node/node_repl_history" export NODE_REPL_HISTORY="${XDG_CONFIG_HOME}/node/node_repl_history"
export N_PREFIX="$XDG_DATA_HOME/n_node" export N_PREFIX="${XDG_DATA_HOME}/n_node"
export PATH="$N_PREFIX/bin:$PATH" export PATH="$N_PREFIX/bin:$PATH"
export AWS_CONFIG_FILE="$XDG_CONFIG_HOME/aws/config" export AWS_CONFIG_FILE="${XDG_CONFIG_HOME}/aws/config"
export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME/aws/credentials" export AWS_SHARED_CREDENTIALS_FILE="${XDG_CONFIG_HOME}/aws/credentials"
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
export FZF_DEFAULT_COMMAND='rg --files --hidden' export FZF_DEFAULT_COMMAND='rg --files --hidden'
export FZF_DEFAULT_OPTS='--layout=reverse --cycle --inline-info --height=~50% --border' export FZF_DEFAULT_OPTS='--layout=reverse --cycle --inline-info --height=~50% --border'
export TLDR_CACHE_DIR="$XDG_CACHE_HOME/tldr" export TLDR_CACHE_DIR="${XDG_CACHE_HOME}/tldr"
export OLLAMA_HOME="$XDG_CONFIG_HOME/ollama" export OLLAMA_HOME="${XDG_CONFIG_HOME}/ollama"

View File

@@ -81,18 +81,21 @@ zi ice as"completion"
zi snippet OMZP::fd/_fd zi snippet OMZP::fd/_fd
# ZSH Auto-completion settings # ZSH Auto-completion settings
[ -d "${XDG_CACHE_HOME}/zsh" ] || mkdir -p "${XDG_CACHE_HOME}/zsh"
ZCOMP_CACHE_FILE="${XDG_CACHE_HOME}/zsh/zcompcache"
autoload -Uz compinit autoload -Uz compinit
compinit -d "${XDG_CACHE_HOME}/zsh/zcompdump-${ZSH_VERSION}"
_comp_options+=(globdots) # Include hidden files _comp_options+=(globdots) # Include hidden files
zmodload zsh/complist zmodload zsh/complist
zinit cdreplay -q zinit cdreplay -q
# Completion files: Use XDG dirs
ZCOMP_CACHE_HOME="${XDG_CACHE_HOME}/zsh"
ZCOMP_CACHE_FILE="${ZCOMP_CACHE_HOME}/zcompcache"
[ -d "${ZCOMP_CACHE_HOME}" ] || mkdir -p "${ZCOMP_CACHE_HOME}"
zstyle ':completion:*' cache-path "$ZCOMP_CACHE_FILE"
compinit -d "${ZCOMP_CACHE_HOME}/zcompdump-${ZSH_VERSION}"
# Completion styling # Completion styling
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # Case INsensitive completion match zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # Case INsensitive completion match
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Add color to completion suggestions zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Add color to completion suggestions
zstyle ':completion:*' cache-path "$ZCOMP_CACHE_FILE"
zstyle ':completion::complete:*' gain-privileges 1 menu select cache-path "$ZCOMP_CACHE_FILE" zstyle ':completion::complete:*' gain-privileges 1 menu select cache-path "$ZCOMP_CACHE_FILE"
# To customize prompt, run `p10k configure` # To customize prompt, run `p10k configure`