mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 08:43:00 +00:00
feat(zsh): Finished reorganise zsh with a same entry point for all platforms
This commit is contained in:
parent
bd5ca49c3e
commit
2b21b63a13
22 changed files with 503 additions and 369 deletions
0
platforms/linux/.gitkeep
Normal file
0
platforms/linux/.gitkeep
Normal file
|
|
@ -1,33 +0,0 @@
|
||||||
# pip
|
|
||||||
alias pip=pip3
|
|
||||||
alias python=python3
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
|
||||||
# npm
|
|
||||||
npm config set registry https://registry.npmmirror.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Homebrew
|
|
||||||
# 手动设置
|
|
||||||
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
|
|
||||||
|
|
||||||
# 注:自 brew 4.0 起,大部分 Homebrew 用户无需设置 homebrew/core 和 homebrew/cask 镜像,只需设置 HOMEBREW_API_DOMAIN 即可。
|
|
||||||
# 如果需要使用 Homebrew 的开发命令 (如 `brew cat <formula>`),则仍然需要设置 homebrew/core 和 homebrew/cask 镜像。
|
|
||||||
# 请按需执行如下两行命令:
|
|
||||||
brew tap --custom-remote --force-auto-update homebrew/core https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
|
|
||||||
brew tap --custom-remote --force-auto-update homebrew/cask https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
|
|
||||||
|
|
||||||
# 除 homebrew/core 和 homebrew/cask 仓库外的 tap 仓库仍然需要设置镜像
|
|
||||||
brew tap --custom-remote --force-auto-update homebrew/cask-fonts https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-fonts.git
|
|
||||||
brew tap --custom-remote --force-auto-update homebrew/cask-versions https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-versions.git
|
|
||||||
brew tap --custom-remote --force-auto-update homebrew/command-not-found https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-command-not-found.git
|
|
||||||
brew tap --custom-remote --force-auto-update homebrew/services https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-services.git
|
|
||||||
brew update
|
|
||||||
|
|
||||||
# 或使用下面的几行命令自动设置
|
|
||||||
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
|
|
||||||
for tap in core cask{,-fonts,-versions} command-not-found services; do
|
|
||||||
brew tap --custom-remote --force-auto-update "homebrew/${tap}" "https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-${tap}.git"
|
|
||||||
done
|
|
||||||
brew update
|
|
||||||
|
|
@ -1,22 +1,15 @@
|
||||||
# $XDG_CONFIG_HOME/zsh/.zshrc
|
# $DOTFILES/platforms/mac/zshrc
|
||||||
# ln -s $DOTFILES/mac/.zshrc $XDG_CONFIG_HOME/zsh/.zshrc
|
# Sourced by user's zshrc if is macOS 在用户的 zshrc 中被引用,macOS 特定配置
|
||||||
### Variables ###
|
# Entry point in $DOTFILES/tools/zsh/common.zshrc (入口点)
|
||||||
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
# Homebrew Path
|
||||||
export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH
|
export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH
|
||||||
for file in $DOTFILES/zsh/*.zsh; do
|
|
||||||
source $file
|
|
||||||
done
|
|
||||||
export ARCHFLAGS="-arch arm64"
|
|
||||||
|
|
||||||
### Navigation ###
|
# macOS #
|
||||||
# Absolute navigation
|
|
||||||
alias doku="cd ~/doku && ls"
|
alias xclip="pbcopy"
|
||||||
alias docs="cd ~/Documents"
|
alias clip="pbcopy"
|
||||||
alias dt="cd ~/Desktop"
|
alias paste="pbpaste"
|
||||||
alias down="cd ~/Downloads"
|
|
||||||
alias one="cd ~/OneDrive"
|
|
||||||
alias gdrive="cd ~/Google\ Drive"
|
|
||||||
|
|
||||||
# >>> conda initialize >>>
|
# >>> conda initialize >>>
|
||||||
# !! Contents within this block are managed by 'conda init' !!
|
# !! Contents within this block are managed by 'conda init' !!
|
||||||
|
|
@ -33,16 +26,3 @@ fi
|
||||||
unset __conda_setup
|
unset __conda_setup
|
||||||
# <<< conda initialize <<<
|
# <<< conda initialize <<<
|
||||||
|
|
||||||
# >>> juliaup initialize >>>
|
|
||||||
|
|
||||||
# !! Contents within this block are managed by juliaup !!
|
|
||||||
|
|
||||||
path=('$HOME/.juliaup/bin' $path)
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
# <<< juliaup initialize <<<
|
|
||||||
|
|
||||||
# macOS #
|
|
||||||
|
|
||||||
alias xclip="pbcopy"
|
|
||||||
alias clip="pbcopy"
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
# $XDG_CONFIG_HOME/zsh/.zshrc
|
|
||||||
# ln -s $DOTFILES/wsl/.zshrc $XDG_CONFIG_HOME/zsh/.zshrc
|
|
||||||
### Variables ###
|
|
||||||
|
|
||||||
export IS_WSL=true
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
|
||||||
for file in $DOTFILES/zsh/*.zsh; do
|
|
||||||
source $file
|
|
||||||
done
|
|
||||||
source $DOTFILES/wsl/winterop.zsh
|
|
||||||
source $ZDOTDIR/.zprivate.zsh
|
|
||||||
export ARCHFLAGS="-arch x86_64"
|
|
||||||
|
|
||||||
# Absolute navigation
|
|
||||||
alias src="cd ~/Source && ls"
|
|
||||||
alias dotfiles="cd $DOTFILES && ls"
|
|
||||||
|
|
||||||
|
|
||||||
### WSL Options ###
|
|
||||||
|
|
||||||
# WSL open
|
|
||||||
open() {
|
|
||||||
local target=$1
|
|
||||||
|
|
||||||
if command -v explorer.exe > /dev/null; then
|
|
||||||
explorer.exe "$target"
|
|
||||||
else
|
|
||||||
command open "$target"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# WSL Neovide
|
|
||||||
gvi() {
|
|
||||||
local target=$1
|
|
||||||
|
|
||||||
if command -v neovide.exe > /dev/null; then
|
|
||||||
neovide.exe "$target"
|
|
||||||
else
|
|
||||||
if command -v neovide > /dev/null; then
|
|
||||||
neovide "$target"
|
|
||||||
else
|
|
||||||
echo "neovide is not installed"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
### Misc ###
|
|
||||||
|
|
||||||
export PATH=/opt/bin:$PATH
|
|
||||||
|
|
||||||
# Conda #
|
|
||||||
|
|
||||||
# >>> conda initialize >>>
|
|
||||||
# !! Contents within this block are managed by 'conda init' !!
|
|
||||||
__conda_setup="$('/home/js0ny/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
eval "$__conda_setup"
|
|
||||||
else
|
|
||||||
if [ -f "/home/js0ny/miniconda3/etc/profile.d/conda.sh" ]; then
|
|
||||||
. "/home/js0ny/miniconda3/etc/profile.d/conda.sh"
|
|
||||||
else
|
|
||||||
export PATH="/home/js0ny/miniconda3/bin:$PATH"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
unset __conda_setup
|
|
||||||
# <<< conda initialize <<<
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f /usr/share/doc/pkgfile/command-not-found.sh ]; then
|
|
||||||
source /usr/share/doc/pkgfile/command-not-found.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# vcpkg
|
|
||||||
|
|
||||||
export VCPKG_ROOT=~/vcpkg
|
|
||||||
|
|
||||||
# Package Manager
|
|
||||||
|
|
||||||
alias pac="sudo pacman"
|
|
||||||
alias paci="sudo pacman -S"
|
|
||||||
alias pacr="sudo pacman -R"
|
|
||||||
alias pacu="sudo pacman -Syu"
|
|
||||||
|
|
@ -1,3 +1,10 @@
|
||||||
|
# $DOTFILES/platforms/wsl/winterop.zsh
|
||||||
|
# Sourced by $DOTFILES/platforms/wsl/zshrc 在 $DOTFILES/platforms/wsl/zshrc 中被引用
|
||||||
|
|
||||||
|
# Defines the interop commands between WSL and Windows
|
||||||
|
|
||||||
|
export FILE_EXPLORER="dopus.exe" # Directory Opus
|
||||||
|
|
||||||
alias clip="clip.exe"
|
alias clip="clip.exe"
|
||||||
alias xclip="clip.exe"
|
alias xclip="clip.exe"
|
||||||
alias paste='pwsh.exe -NoProfile -Command "Get-Clipboard"'
|
alias paste='pwsh.exe -NoProfile -Command "Get-Clipboard"'
|
||||||
|
|
@ -13,3 +20,14 @@ alias diskpart="diskpart.exe"
|
||||||
alias winget="winget.exe"
|
alias winget="winget.exe"
|
||||||
alias pastew='pwsh.exe -NoProfile -Command "Get-Clipboard"'
|
alias pastew='pwsh.exe -NoProfile -Command "Get-Clipboard"'
|
||||||
alias ollama="ollama.exe"
|
alias ollama="ollama.exe"
|
||||||
|
|
||||||
|
# WSL open
|
||||||
|
open() {
|
||||||
|
local target=$1
|
||||||
|
|
||||||
|
if command -v "$FILE_EXPLORER" > /dev/null; then
|
||||||
|
"$FILE_EXPLORER" "$target"
|
||||||
|
else
|
||||||
|
command open "$target"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
||||||
31
platforms/wsl/zshrc
Normal file
31
platforms/wsl/zshrc
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
# $DOTFILES/platforms//zshrc
|
||||||
|
# Sourced by user's zshrc if is WSL 在用户的 zshrc 中被引用,WSL 特定配置
|
||||||
|
# Entry point in $DOTFILES/tools/zsh/common.zshrc (入口点)
|
||||||
|
# TODO: Test on WSL
|
||||||
|
|
||||||
|
### Variables ###
|
||||||
|
export IS_WSL=true
|
||||||
|
export ARCHFLAGS="-arch x86_64"
|
||||||
|
source $DOTFILES/wsl/winterop.zsh
|
||||||
|
|
||||||
|
|
||||||
|
### Misc ###
|
||||||
|
|
||||||
|
export PATH=/opt/bin:$PATH
|
||||||
|
|
||||||
|
# Conda #
|
||||||
|
|
||||||
|
# >>> conda initialize >>>
|
||||||
|
# !! Contents within this block are managed by 'conda init' !!
|
||||||
|
__conda_setup="$('$HOME/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
eval "$__conda_setup"
|
||||||
|
else
|
||||||
|
if [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then
|
||||||
|
. "$HOME/miniconda3/etc/profile.d/conda.sh"
|
||||||
|
else
|
||||||
|
export PATH="$HOME/miniconda3/bin:$PATH"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset __conda_setup
|
||||||
|
# <<< conda initialize <<<
|
||||||
40
scripts/update.zsh
Normal file
40
scripts/update.zsh
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# $DOTFILES/scripts/update.zsh
|
||||||
|
# call by `update` alias defined in tools/zsh/alias.zsh
|
||||||
|
# 使用别名 `update` 引用,别名定义于 tools/zsh/alias.zsh
|
||||||
|
|
||||||
|
# Plugins #
|
||||||
|
# Auto `git pull` on $ZDOTDIR/plugins
|
||||||
|
for plugin in $ZDOTDIR/plugins/*; do
|
||||||
|
if [ -d "$plugin" ]; then
|
||||||
|
cd $plugin
|
||||||
|
git pull --quiet --no-edit
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Update package managers #
|
||||||
|
# Homebrew, macOS
|
||||||
|
if command -v brew > /dev/null; then
|
||||||
|
brew update
|
||||||
|
brew upgrade
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Arch
|
||||||
|
if command -v pacman > /dev/null; then
|
||||||
|
sudo pacman -Syu
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Debian
|
||||||
|
if command -v apt > /dev/null; then
|
||||||
|
sudo apt update
|
||||||
|
sudo apt upgrade
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fedora
|
||||||
|
if command -v dnf > /dev/null; then
|
||||||
|
sudo dnf update
|
||||||
|
fi
|
||||||
|
|
||||||
|
# WSL
|
||||||
|
if command -v winget.exe > /dev/null; then
|
||||||
|
winget.exe upgrade
|
||||||
|
fi
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
# ~/.zshenv
|
|
||||||
# ln -s $DOTFILES/zsh/.zshenv $ZDOTDIR/.zshenv
|
|
||||||
# This file is sourced by all zsh sessions upon startup.
|
|
||||||
|
|
||||||
# Use XDG Base Directory Specification
|
|
||||||
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
||||||
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
|
|
||||||
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
|
||||||
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
|
||||||
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
|
||||||
# Disable shell sessions on macOS when using default terminal
|
|
||||||
SHELL_SESSIONS_DISABLE=1
|
|
||||||
|
|
||||||
# Zsh
|
|
||||||
export ZDOTDIR="${XDG_CONFIG_HOME}/zsh"
|
|
||||||
|
|
||||||
# Also put in /etc/zsh/zshenv
|
|
||||||
# or /etc/zshenv in macOS
|
|
||||||
# sudo cp $DOTFILES/zsh/.zshenv /etc/zsh/zshenv
|
|
||||||
# sudo cp $DOTFILES/zsh/.zshenv /etc/zshenv
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
# PowerShell Equivalent #
|
|
||||||
alias ni=touch
|
|
||||||
alias cls=clear
|
|
||||||
alias ii=open
|
|
||||||
|
|
||||||
# Dev #
|
|
||||||
alias g++='g++ -std=c++2b' # Set the default C++ standard to C++20
|
|
||||||
alias gcc='gcc -std=c99' # Set the default C standard to C99
|
|
||||||
alias cl='clang -std=c99'
|
|
||||||
alias clpp='clang++ -std=c++2b'
|
|
||||||
alias python=python3 # Set the default Python version to Python 3
|
|
||||||
alias py=python # Alias for Python
|
|
||||||
alias pip=pip3 # Alias for pip
|
|
||||||
# alias bashcfg="nvim ~/.bashrc"
|
|
||||||
alias zshcfg="nvim $ZDOTDIR/.zshrc"
|
|
||||||
alias shcfg=zshcfg
|
|
||||||
alias reload="source $ZDOTDIR/.zshrc"
|
|
||||||
alias nvimrc="nvim $XDG_CONFIG_HOME/nvim/"
|
|
||||||
alias ohmyzsh="code ~/.oh-my-zsh"
|
|
||||||
alias pulldots="cd $DOTFILES && git pull"
|
|
||||||
|
|
||||||
# Conda #
|
|
||||||
alias pyact="conda activate"
|
|
||||||
alias pydact="conda deactivate"
|
|
||||||
alias pylsenv="conda env list"
|
|
||||||
alias pymkenv="conda create --name"
|
|
||||||
|
|
||||||
# Editors #
|
|
||||||
alias v=nvim
|
|
||||||
alias c=code
|
|
||||||
|
|
||||||
# lsd #
|
|
||||||
alias ls='lsd -a'
|
|
||||||
alias l='lsd -lah'
|
|
||||||
# Misc #
|
|
||||||
alias cf=cfiles
|
|
||||||
|
|
||||||
# Functions #
|
|
||||||
mkcd() {
|
|
||||||
mkdir -p $1 && cd $1
|
|
||||||
}
|
|
||||||
cdls(){
|
|
||||||
cd $1 && ls
|
|
||||||
}
|
|
||||||
tc(){
|
|
||||||
touch $1 && code $1
|
|
||||||
}
|
|
||||||
tv(){
|
|
||||||
touch $1 && nvim $1
|
|
||||||
}
|
|
||||||
33
tools/zsh/common.zshrc
Normal file
33
tools/zsh/common.zshrc
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# $DOTFILES/zsh/common.zshrc
|
||||||
|
# This is the entry point for all zsh configuration files
|
||||||
|
# 这是所有zsh配置文件的入口点
|
||||||
|
|
||||||
|
# Location: $ZDOTDIR/.zshrc (default: $HOME/.zshrc)
|
||||||
|
# Linking:
|
||||||
|
# ln -sf $DOTFILES/tools/zsh/common.zshrc $ZDOTDIR/.zshrc
|
||||||
|
|
||||||
|
export DOTFILES=$HOME/.dotfiles
|
||||||
|
|
||||||
|
case "$(uname)" in
|
||||||
|
Linux)
|
||||||
|
if grep -q Microsoft /proc/version || [[ -n "$WSL_DISTRO_NAME" ]]; then
|
||||||
|
# WSL-specific configuration
|
||||||
|
source "$DOTFILES/platforms/wsl/zshrc"
|
||||||
|
else
|
||||||
|
# Native Linux configuration
|
||||||
|
source "$DOTFILES/platforms/linux/zshrc"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
Darwin)
|
||||||
|
# macOS-specific configuration
|
||||||
|
source "$DOTFILES/platforms/mac/zshrc"
|
||||||
|
;;
|
||||||
|
# CYGWIN*|MINGW*|MSYS*)
|
||||||
|
# source "$DOTFILES/platform/wsl.zsh"
|
||||||
|
# ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for file in $DOTFILES/tools/zsh/mod/*.zsh; do
|
||||||
|
source $file
|
||||||
|
done
|
||||||
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
# ZSH Config #
|
|
||||||
export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
|
||||||
export PATH=$HOME/.local/share/gem/ruby/3.3.0/bin:$PATH # Ruby Executables
|
|
||||||
HIST_STAMPS="yyyy-mm-dd"
|
|
||||||
HISTSIZE=10000
|
|
||||||
SAVEHIST=10000
|
|
||||||
|
|
||||||
export NVM_DIR="$HOME/.config/nvm"
|
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
||||||
|
|
||||||
# plugins=(git web-search jsontools z vi-mode zsh-syntax-highlighting zsh-autosuggestions)
|
|
||||||
|
|
||||||
# Plugins (Manually Managed) #
|
|
||||||
# $ZDOTDIR/plugins
|
|
||||||
|
|
||||||
# echo "[DEBUG] Loading plugins..."
|
|
||||||
# echo $ZDOTDIR
|
|
||||||
# Load zsh-syntax-highlighting before zsh-history-substring-search
|
|
||||||
# Reference: https://github.com/zsh-users/zsh-history-substring-search?tab=readme-ov-file#usage
|
|
||||||
source $ZDOTDIR/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
|
||||||
source $ZDOTDIR/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
||||||
source $ZDOTDIR/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh
|
|
||||||
|
|
||||||
# Tools Related Environment Variables #
|
|
||||||
|
|
||||||
PAGER="less"
|
|
||||||
EDITOR="nvim"
|
|
||||||
VISUAL="nvim"
|
|
||||||
|
|
||||||
# Use XDG Base Directory Specification #
|
|
||||||
|
|
||||||
# ~/.azure/ -> $XDG_DATA_HOME/azure/
|
|
||||||
export AZURE_CONFIG_DIR="$XDG_DATA_HOME"/azure
|
|
||||||
# ~/.cargo/ -> $XDG_DATA_HOME/cargo
|
|
||||||
export CARGO_HOME="$XDG_DATA_HOME"/cargo
|
|
||||||
# ~/.cgdb/ -> $XDG_CONFIG_HOME/cgdb/
|
|
||||||
export CGDB_DIR="$XDG_CONFIG_HOME"/cgdb
|
|
||||||
# ~/.docker -> $XDG_CONFIG_HOME/docker
|
|
||||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
|
|
||||||
# ~/.dotnet -> $XDG_DATA_HOME/dotnet
|
|
||||||
# Not working
|
|
||||||
# export DOTNET_CLI_HOME="$XDG_DATA_HOME"/dotnet
|
|
||||||
# ~/.gnupg -> $XDG_CONFIG_HOME/gnupg
|
|
||||||
export GNUPGHOME="$XDG_DATA_HOME"/gnupg
|
|
||||||
# ~/go -> $XDG_DATA_HOME/go
|
|
||||||
export GOPATH="$XDG_DATA_HOME"/go
|
|
||||||
# ~/.inputrc -> $XDG_CONFIG_HOME/readline/inputrc
|
|
||||||
export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
|
|
||||||
# ~/.juliaup/ -> $XDG_DATA_HOME/julia/
|
|
||||||
export JULIA_DEPOT_PATH="$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH"
|
|
||||||
# Check if node is installed
|
|
||||||
if command -v node > /dev/null; then
|
|
||||||
# ~/.node_repl_history -> $XDG_STATE_HOME/node/repl_history
|
|
||||||
export NODE_REPL_HISTORY="$XDG_STATE_HOME"/node/repl_history
|
|
||||||
# ~/.ts_node_repl_history -> $XDG_STATE_HOME/node/ts_node_repl_history
|
|
||||||
export TS_NODE_REPL_HISTORY="$XDG_STATE_HOME"/node/ts_node_repl_history
|
|
||||||
# ~/.npmrc -> $XDG_CONFIG_HOME/npm/npmrc
|
|
||||||
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
|
|
||||||
# ~/.npm -> $XDG_CACHE_HOME/npm
|
|
||||||
export NPM_CONFIG_INIT_MODULE="$XDG_CONFIG_HOME"/npm/config/npm-init.js
|
|
||||||
export NPM_CONFIG_CACHE="$XDG_CACHE_HOME"/npm
|
|
||||||
export NPM_CONFIG_TMP="$XDG_RUNTIME_DIR"/npm
|
|
||||||
fi
|
|
||||||
# ~/.nv -> $XDG_CACHE_HOME/nv (CUDA)
|
|
||||||
# macOS does not have Cuda; Check if CUDA is installed
|
|
||||||
if [ "$(uname)" != "Darwin" ] && [ -d "/usr/local/cuda" ]; then
|
|
||||||
export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
|
|
||||||
fi
|
|
||||||
# ~/,parallel -> $XDG_CONFIG_HOME/parallel
|
|
||||||
export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
|
|
||||||
# ~/.python_history -> $XDG_DATA_HOME/python/history
|
|
||||||
# Works only with Python 3.13.0a3 and later
|
|
||||||
export PYTHON_HISTORY="$XDG_DATA_HOME"/python/history
|
|
||||||
# ~/.screenrc -> $XDG_CONFIG_HOME/screen/screenrc
|
|
||||||
export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc
|
|
||||||
# ~/.screen/ -> $XDG_RUNTIME_DIR/screen
|
|
||||||
export SCREENDIR="${XDG_RUNTIME_DIR}/screen"
|
|
||||||
# ~/.spacemacs/ -> $XDG_CONFIG_HOME/spacemacs
|
|
||||||
export SPACEMACSDIR="$XDG_CONFIG_HOME"/spacemacs
|
|
||||||
# ~/.tldrc/ -> $XDG_CACHE_HOME/tldr
|
|
||||||
export TLDR_CACHE_DIR="$XDG_CACHE_HOME"/tldr
|
|
||||||
# ~/.w3m -> $XDG_DATA_HOME/w3m
|
|
||||||
export W3M_DIR="$XDG_DATA_HOME"/w3m
|
|
||||||
# ~/.wakatime.cfg -> $XDG_CONFIG_HOME/wakatime.cfg
|
|
||||||
# ~/.wakatime/ -> $XDG_CONFIG_HOME/wakatime/
|
|
||||||
export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"
|
|
||||||
# ~/.wget-hsts -> $XDG_DATA_HOME/wget-hsts
|
|
||||||
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
|
|
||||||
# ~/.z -> $XDG_DATA_HOME/z
|
|
||||||
export _Z_DATA="$XDG_DATA_HOME/z"
|
|
||||||
# ~/.zcompdump* -> $XDG_CACHE_HOME/zsh/zcompdump*
|
|
||||||
# compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
|
||||||
# ~/.zsh_history -> $XDG_STATE_HOME/zsh/history
|
|
||||||
export HISTFILE="$XDG_STATE_HOME"/zsh/history
|
|
||||||
|
|
||||||
# https://unix.stackexchange.com/questions/33994/
|
|
||||||
# Use `set -k` to mark leading `#` as a comment character
|
|
||||||
set -k
|
|
||||||
20
tools/zsh/global.zshenv
Normal file
20
tools/zsh/global.zshenv
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# $DOTFILES/tools/zsh/global.zshenv
|
||||||
|
# system-wide zshenv file 系统级别的 zshenv 文件,用于设置全局环境变量
|
||||||
|
|
||||||
|
# Location:
|
||||||
|
# /etc/zshenv: (macOS and some distro)
|
||||||
|
# /etc/zsh/zshenv: (some distro)
|
||||||
|
# Linking:
|
||||||
|
# sudo cp $DOTFILES/tools/zsh/global.zshenv /etc/zshenv # or /etc/zsh/zshenv
|
||||||
|
|
||||||
|
# Set ZDOTDIR to $HOME/.config/zsh if it exists
|
||||||
|
# This allows us to keep our zsh configuration in $HOME/.config/zsh
|
||||||
|
# and zshenv will be located at $HOME/.config/zsh/.zshenv instead of
|
||||||
|
# $HOME/.zshenv
|
||||||
|
# 如果存在 $HOME/.config/zsh 目录,则将 ZDOTDIR 设置为 $HOME/.config/zsh
|
||||||
|
# 防止 .zshenv 文件自动生成在用户目录下
|
||||||
|
|
||||||
|
# Ensure SPACE between [ and -d and ]
|
||||||
|
if [ -d $HOME/.config/zsh ]; then
|
||||||
|
export ZDOTDIR=$HOME/.config/zsh
|
||||||
|
fi
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# $DOTFILES/keymap.zsh
|
|
||||||
bindkey -v # Vi Keybindings
|
|
||||||
|
|
||||||
# Colemak hnei
|
|
||||||
# bindkey -M vicmd 'h' vi-backward-char # No change
|
|
||||||
bindkey -M vicmd 'n' down-line-or-history
|
|
||||||
bindkey -M vicmd 'e' up-line-or-history
|
|
||||||
bindkey -M vicmd 'i' vi-forward-char
|
|
||||||
|
|
||||||
# Similar position to [i] in QWERTY
|
|
||||||
bindkey -M vicmd 'l' vi-insert
|
|
||||||
bindkey -M vicmd 'L' vi-insert-bol
|
|
||||||
# Ne{[k]s}t
|
|
||||||
bindkey -M vicmd 'k' vi-repeat-search
|
|
||||||
bindkey -M vicmd 'K' vi-rev-repeat-search
|
|
||||||
# [J]ump
|
|
||||||
bindkey -M vicmd 'j' vi-forward-word-end
|
|
||||||
bindkey -M vicmd 'J' vi-forward-blank-word-end
|
|
||||||
# Use N to Join
|
|
||||||
bindkey -M vicmd 'N' vi-join
|
|
||||||
|
|
||||||
# Search History with [r]everse (default emacs keybinding)
|
|
||||||
bindkey '^R' history-incremental-search-backward
|
|
||||||
89
tools/zsh/mod/alias.zsh
Normal file
89
tools/zsh/mod/alias.zsh
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
# $DOTFILES/tools/zsh/mod/alias.zsh
|
||||||
|
# Sourced by user's zshrc 在用户的 zshrc 中被引用
|
||||||
|
|
||||||
|
# PowerShell Equivalent, for cross-platform compatibility
|
||||||
|
alias ni=touch
|
||||||
|
alias cls=clear
|
||||||
|
alias ii=open
|
||||||
|
|
||||||
|
# Dev #
|
||||||
|
alias gpp='g++ -std=c++2b' # Set the default C++ standard to C++20
|
||||||
|
alias gcc='gcc -std=c99' # Set the default C standard to C99
|
||||||
|
alias cl='clang -std=c99'
|
||||||
|
alias clpp='clang++ -std=c++2b'
|
||||||
|
alias python=python3 # Set the default Python version to Python 3
|
||||||
|
alias py=python # Alias for Python
|
||||||
|
alias pip=pip3 # Alias for pip
|
||||||
|
# alias bashcfg="nvim ~/.bashrc"
|
||||||
|
alias zshcfg="nvim $ZDOTDIR/.zshrc"
|
||||||
|
alias shcfg=zshcfg
|
||||||
|
alias reload="source $ZDOTDIR/.zshrc"
|
||||||
|
alias nvimrc="nvim $XDG_CONFIG_HOME/nvim/"
|
||||||
|
alias pulldots="cd $DOTFILES && git pull"
|
||||||
|
|
||||||
|
# Editors #
|
||||||
|
alias v=nvim
|
||||||
|
alias c=code
|
||||||
|
alias sv="sudo vim"
|
||||||
|
alias sn="sudo nvim"
|
||||||
|
|
||||||
|
# lsd - modern ls
|
||||||
|
if command -v lsd > /dev/null; then
|
||||||
|
alias ls='lsd -A'
|
||||||
|
alias l='lsd -lah'
|
||||||
|
alias ll='lsd -l'
|
||||||
|
alias tree='lsd --tree'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Functions #
|
||||||
|
mkcd() {
|
||||||
|
mkdir -p $1 && cd $1
|
||||||
|
}
|
||||||
|
cdls(){
|
||||||
|
cd $1 && ls
|
||||||
|
}
|
||||||
|
tc(){
|
||||||
|
touch $1 && code $1
|
||||||
|
}
|
||||||
|
tv(){
|
||||||
|
touch $1 && nvim $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use neovide as gVim
|
||||||
|
gvi() {
|
||||||
|
local target=$1
|
||||||
|
|
||||||
|
if command -v neovide.exe > /dev/null; then
|
||||||
|
neovide.exe "$target"
|
||||||
|
else
|
||||||
|
if command -v neovide > /dev/null; then
|
||||||
|
neovide "$target"
|
||||||
|
else
|
||||||
|
echo "neovide is not installed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
alias update="source $DOTFILES/scripts/update.zsh"
|
||||||
|
|
||||||
|
if command -v pacman > /dev/null; then
|
||||||
|
alias pac="sudo pacman"
|
||||||
|
alias paci="sudo pacman -S"
|
||||||
|
alias pacr="sudo pacman -R"
|
||||||
|
alias pacu="sudo pacman -Syu"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v apt > /dev/null; then
|
||||||
|
alias apt="sudo apt"
|
||||||
|
alias apti="sudo apt install"
|
||||||
|
alias aptu="sudo apt update && sudo apt upgrade"
|
||||||
|
alias aptr="sudo apt autoremove && sudo apt remove"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v brew > /dev/null; then
|
||||||
|
alias brewi="brew install"
|
||||||
|
alias brewu="brew update && brew upgrade"
|
||||||
|
alias brewc="brew cleanup"
|
||||||
|
alias brewr="brew uninstall"
|
||||||
|
fi
|
||||||
41
tools/zsh/mod/config.zsh
Normal file
41
tools/zsh/mod/config.zsh
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
# $DOTFILES/tools/zsh/mod/config.zsh
|
||||||
|
# Sourced by user's zshrc 在用户的 zshrc 中被引用
|
||||||
|
|
||||||
|
# ZSH Config, no need to `export` these variables
|
||||||
|
HISTFILE="$XDG_STATE_HOME"/zsh/history
|
||||||
|
HIST_STAMPS="yyyy-mm-dd"
|
||||||
|
HISTSIZE=10000
|
||||||
|
SAVEHIST=10000
|
||||||
|
|
||||||
|
|
||||||
|
# Manually manage plugins 手动管理插件
|
||||||
|
# Load zsh-syntax-highlighting before zsh-history-substring-search
|
||||||
|
# Reference: https://github.com/zsh-users/zsh-history-substring-search?tab=readme-ov-file#usage
|
||||||
|
plugins=(
|
||||||
|
"zsh-autosuggestions"
|
||||||
|
"zsh-syntax-highlighting"
|
||||||
|
"zsh-history-substring-search"
|
||||||
|
)
|
||||||
|
|
||||||
|
plugin_dir="$ZDOTDIR/plugins"
|
||||||
|
|
||||||
|
for plugin in "${plugins[@]}"; do
|
||||||
|
plugin_path="$plugin_dir/$plugin/$plugin.zsh"
|
||||||
|
if [[ -f $plugin_path ]]; then
|
||||||
|
source "$plugin_path"
|
||||||
|
else
|
||||||
|
echo "Warning: Plugin not found: $plugin_path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# https://unix.stackexchange.com/questions/33994/
|
||||||
|
# Use `set -k` to mark leading `#` as a comment character
|
||||||
|
set -k
|
||||||
|
|
||||||
|
# TODO: Below should be reorganized
|
||||||
|
export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
||||||
|
export PATH=$HOME/.local/share/gem/ruby/3.3.0/bin:$PATH # Ruby Executables
|
||||||
|
|
||||||
|
export NVM_DIR="$HOME/.config/nvm"
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
46
tools/zsh/mod/keymap.zsh
Normal file
46
tools/zsh/mod/keymap.zsh
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# $DOTFILES/tools/zsh/mod/keymap.zsh
|
||||||
|
# Sourced by user's zshrc 在用户的 zshrc 中被引用
|
||||||
|
|
||||||
|
|
||||||
|
bindkey -v # Vi Keybindings
|
||||||
|
|
||||||
|
# Colemak hnei
|
||||||
|
# ^
|
||||||
|
# n
|
||||||
|
# < h i >
|
||||||
|
# e
|
||||||
|
# v
|
||||||
|
# bindkey -M vicmd 'h' vi-backward-char # No change
|
||||||
|
bindkey -M vicmd 'n' down-line-or-history
|
||||||
|
bindkey -M vicmd 'e' up-line-or-history
|
||||||
|
bindkey -M vicmd 'i' vi-forward-char
|
||||||
|
|
||||||
|
# Similar position to [i] in QWERTY
|
||||||
|
bindkey -M vicmd 'l' vi-insert
|
||||||
|
bindkey -M vicmd 'L' vi-insert-bol
|
||||||
|
# Ne{[k]s}t
|
||||||
|
bindkey -M vicmd 'k' vi-repeat-search
|
||||||
|
bindkey -M vicmd 'K' vi-rev-repeat-search
|
||||||
|
# [J]ump
|
||||||
|
bindkey -M vicmd 'j' vi-forward-word-end
|
||||||
|
bindkey -M vicmd 'J' vi-forward-blank-word-end
|
||||||
|
# Use N to Join
|
||||||
|
bindkey -M vicmd 'N' vi-join
|
||||||
|
|
||||||
|
# Emacs Hybrid
|
||||||
|
bindkey '^A' beginning-of-line
|
||||||
|
bindkey '^E' end-of-line
|
||||||
|
bindkey '^F' forward-char
|
||||||
|
bindkey '^B' backward-char
|
||||||
|
bindkey '^P' up-line-or-history
|
||||||
|
bindkey '^N' down-line-or-history
|
||||||
|
bindkey '^R' history-incremental-search-backward
|
||||||
|
# TODO: did not test
|
||||||
|
bindkey '^K' kill-line
|
||||||
|
bindkey '^X^E' edit-command-line
|
||||||
|
|
||||||
|
# LEADER CONVENTION
|
||||||
|
# ^X defines as a prefix key in shell
|
||||||
|
# ^A defines as a prefix key in tmux
|
||||||
|
# ^B defines as a prefix key in Terminal Emulators
|
||||||
|
# SPC defines as a prefix key in nvim
|
||||||
39
tools/zsh/mod/navi.zsh
Normal file
39
tools/zsh/mod/navi.zsh
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# $DOTFILES/tools/zsh/mod/navi.zsh
|
||||||
|
# Sourced by user's zshrc 在用户的 zshrc 中被引用
|
||||||
|
|
||||||
|
# Relative navigation #
|
||||||
|
alias ..="cd .."
|
||||||
|
alias ...="cd ../.."
|
||||||
|
alias ....="cd ../../.."
|
||||||
|
alias .....="cd ../../../.."
|
||||||
|
alias ......="cd ../../../../.."
|
||||||
|
|
||||||
|
# Use `-` to jump to the previous directory
|
||||||
|
# Oh-My-Zsh defines a similar one
|
||||||
|
function - { cd - }
|
||||||
|
|
||||||
|
# Use `z` to jump to a directory
|
||||||
|
eval "$(zoxide init zsh)"
|
||||||
|
|
||||||
|
# Absolute navigation #
|
||||||
|
alias dotfiles="cd $DOTFILES && ls"
|
||||||
|
# TODO: Test on WSL
|
||||||
|
if [ "$IS_WSL" = true ]; then # IS_WSL is defined in $DOTFILES/platforms/wsl/zshrc
|
||||||
|
alias dt="cd /mnt/c/Users/$(whoami)/Desktop && ls"
|
||||||
|
alias doku="cd /mnt/c/Users/$(whoami)/Documents && ls"
|
||||||
|
alias down="cd /mnt/c/Users/$(whoami)/Downloads && ls"
|
||||||
|
alias src="cd /mnt/d/Source"
|
||||||
|
alias one="cd /mnt/c/Users/$(whoami)/OneDrive"
|
||||||
|
alias gdrive="cd /mnt/g"
|
||||||
|
else
|
||||||
|
alias dt="cd $HOME/Desktop && ls"
|
||||||
|
alias doku="cd $HOME/Documents && ls"
|
||||||
|
alias down="cd $HOME/Downloads && ls"
|
||||||
|
alias src="cd $HOME/Documents/Source"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# macOS specific, no OneDrive & Google Drive on Linux
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
alias one="cd $HOME/OneDrive"
|
||||||
|
alias gdrive="cd $HOME/Google\ Drive"
|
||||||
|
fi
|
||||||
6
tools/zsh/mod/prompt.zsh
Normal file
6
tools/zsh/mod/prompt.zsh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# $DOTFILES/tools/zsh/mod/prompt.zsh
|
||||||
|
# Sourced by user's zshrc 在用户的 zshrc 中被引用
|
||||||
|
|
||||||
|
export STARSHIP_CONFIG=$DOTFILES/tools/starship/starship_zsh.toml
|
||||||
|
|
||||||
|
eval "$(starship init zsh)"
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
|
|
||||||
# Relative navigation
|
|
||||||
alias ..="cd .."
|
|
||||||
alias ...="cd ../.."
|
|
||||||
alias ....="cd ../../.."
|
|
||||||
alias .....="cd ../../../.."
|
|
||||||
alias ......="cd ../../../../.."
|
|
||||||
|
|
||||||
function - { cd - }
|
|
||||||
|
|
||||||
eval "$(zoxide init zsh)"
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
export STARSHIP_CONFIG=$DOTFILES/.config/starship/starship_zsh.toml
|
|
||||||
|
|
||||||
eval "$(starship init zsh)"
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# $DOTFILES/zsh/update.sh
|
|
||||||
|
|
||||||
# This file won't be sourced by zsh by default
|
|
||||||
# Use `source` to run this file for updating plugins
|
|
||||||
|
|
||||||
# Plugins #
|
|
||||||
# Auto `git pull` on $ZDOTDIR/plugins
|
|
||||||
for plugin in $ZDOTDIR/plugins/*; do
|
|
||||||
if [ -d "$plugin" ]; then
|
|
||||||
cd $plugin
|
|
||||||
git pull --quiet --no-edit
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ which brew > /dev/null ]; then
|
|
||||||
brew update
|
|
||||||
brew upgrade
|
|
||||||
fi
|
|
||||||
|
|
||||||
131
tools/zsh/zshenv
Normal file
131
tools/zsh/zshenv
Normal file
|
|
@ -0,0 +1,131 @@
|
||||||
|
# $DOTFILES/tools/zsh/zshenv
|
||||||
|
# User-specific environment variables for zsh 用户级别的 zsh 环境变量
|
||||||
|
|
||||||
|
# Location:
|
||||||
|
# $ZDOTDIR/.zshenv (specified by ZDOTDIR)
|
||||||
|
# ~/.zshenv (default location)
|
||||||
|
# Linking:
|
||||||
|
# ln -sf $DOTFILES/tools/zsh/.zshenv $ZDOTDIR/.zshenv
|
||||||
|
# This file is sourced by all zsh sessions upon startup.
|
||||||
|
|
||||||
|
# For me (this user), define XDG Base Directory Specification variables
|
||||||
|
# and some configs that does not obey XDG Base Directory Specification
|
||||||
|
# but can be configured(by setting the variables) to (just like) obey it.
|
||||||
|
# 在此定义 XDG 基础目录规范变量和一些不遵循 XDG 基础目录规范的配置,
|
||||||
|
# 使得他们可以通过设置变量来遵循 XDG 基础目录规范。
|
||||||
|
|
||||||
|
# XDG Base Directory Specification
|
||||||
|
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||||
|
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||||
|
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
||||||
|
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||||
|
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
||||||
|
# Disable shell sessions on macOS when using default terminal
|
||||||
|
SHELL_SESSIONS_DISABLE=1
|
||||||
|
|
||||||
|
# Zsh # Redefine to make sure it's in $XDG_CONFIG_HOME
|
||||||
|
export ZDOTDIR="${XDG_CONFIG_HOME}/zsh"
|
||||||
|
|
||||||
|
# Tools Related Environment Variables
|
||||||
|
export PAGER="less -R"
|
||||||
|
export EDITOR="nvim"
|
||||||
|
export VISUAL="nvim"
|
||||||
|
|
||||||
|
# macOS Specific
|
||||||
|
# This syntax is POSIX standard, for portability
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Linux Specific
|
||||||
|
if [ "$(uname)" = "Linux" ]; then
|
||||||
|
# CUDA
|
||||||
|
export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Azure CLI
|
||||||
|
if command -v az > /dev/null; then
|
||||||
|
export AZURE_CONFIG_DIR="$XDG_DATA_HOME"/azure
|
||||||
|
fi
|
||||||
|
# Cargo
|
||||||
|
if command -v cargo > /dev/null; then
|
||||||
|
export CARGO_HOME="$XDG_DATA_HOME"/cargo
|
||||||
|
fi
|
||||||
|
# CGDB
|
||||||
|
if command -v cgdb > /dev/null; then
|
||||||
|
export CGDB_DIR="$XDG_CONFIG_HOME"/cgdb
|
||||||
|
fi
|
||||||
|
# .NET
|
||||||
|
if command -v dotnet > /dev/null; then
|
||||||
|
export DOTNET_CLI_HOME="$XDG_DATA_HOME"/dotnet
|
||||||
|
fi
|
||||||
|
# Docker
|
||||||
|
if command -v docker > /dev/null; then
|
||||||
|
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
|
||||||
|
fi
|
||||||
|
# GnuPG
|
||||||
|
if command -v gpg > /dev/null; then
|
||||||
|
export GNUPGHOME="$XDG_DATA_HOME"/gnupg
|
||||||
|
fi
|
||||||
|
# Go
|
||||||
|
if command -v go > /dev/null; then
|
||||||
|
export GOPATH="$XDG_DATA_HOME"/go
|
||||||
|
fi
|
||||||
|
# Julia
|
||||||
|
if command -v julia > /dev/null; then
|
||||||
|
export JULIA_DEPOT_PATH="$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH"
|
||||||
|
fi
|
||||||
|
# Node.js
|
||||||
|
if command -v node > /dev/null; then
|
||||||
|
export NODE_REPL_HISTORY="$XDG_STATE_HOME"/node/repl_history
|
||||||
|
export TS_NODE_REPL_HISTORY="$XDG_STATE_HOME"/node/ts_node_repl_history
|
||||||
|
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
|
||||||
|
export NPM_CONFIG_INIT_MODULE="$XDG_CONFIG_HOME"/npm/config/npm-init.js
|
||||||
|
export NPM_CONFIG_CACHE="$XDG_CACHE_HOME"/npm
|
||||||
|
export NPM_CONFIG_TMP="$XDG_RUNTIME_DIR"/npm
|
||||||
|
fi
|
||||||
|
# Parallel
|
||||||
|
if command -v parallel > /dev/null; then
|
||||||
|
export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
|
||||||
|
fi
|
||||||
|
# Python
|
||||||
|
# Works only with Python 3.13.0a3 and later
|
||||||
|
if command -v python3 > /dev/null; then
|
||||||
|
export PYTHON_HISTORY="$XDG_DATA_HOME"/python/history
|
||||||
|
fi
|
||||||
|
# GNU Screen
|
||||||
|
if command -v screen > /dev/null; then
|
||||||
|
export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc
|
||||||
|
export SCREENDIR="${XDG_RUNTIME_DIR}/screen"
|
||||||
|
fi
|
||||||
|
# Spacemacs
|
||||||
|
if command -v emacs > /dev/null; then
|
||||||
|
export SPACEMACSDIR="$XDG_CONFIG_HOME"/spacemacs
|
||||||
|
fi
|
||||||
|
# tldr
|
||||||
|
# Works only with C client (did not verify)
|
||||||
|
if command -v tldr > /dev/null; then
|
||||||
|
export TLDR_CACHE_DIR="$XDG_CACHE_HOME"/tldr
|
||||||
|
fi
|
||||||
|
# W3M
|
||||||
|
if command -v w3m > /dev/null; then
|
||||||
|
export W3M_DIR="$XDG_DATA_HOME"/w3m
|
||||||
|
fi
|
||||||
|
# Wakatime
|
||||||
|
if command -v wakatime > /dev/null; then
|
||||||
|
export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"
|
||||||
|
fi
|
||||||
|
# Wget
|
||||||
|
if command -v wget > /dev/null; then
|
||||||
|
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
|
||||||
|
fi
|
||||||
|
# z
|
||||||
|
if command -v z > /dev/null; then
|
||||||
|
export _Z_DATA="$XDG_DATA_HOME/z"
|
||||||
|
fi
|
||||||
|
# zsh .zcompdump
|
||||||
|
# compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
||||||
|
# Vcpkg TODO: Move vcpkg path
|
||||||
|
if command -v vcpkg > /dev/null; then
|
||||||
|
export VCPKG_ROOT="$XDG_DATA_HOME"/vcpkg
|
||||||
|
fi
|
||||||
Loading…
Add table
Add a link
Reference in a new issue