250 lines
6.8 KiB
Bash
250 lines
6.8 KiB
Bash
#!/usr/bin/env sh
|
||
|
||
### Theme
|
||
export COLOR_SCHEME=dark
|
||
|
||
### XDG
|
||
# Source: # https://wiki.archlinux.org/index.php/XDG_Base_Directory
|
||
export XDG_CONFIG_HOME="$HOME/.config"
|
||
export XDG_CACHE_HOME="$HOME/.cache"
|
||
export XDG_DATA_HOME="$HOME/.local/share"
|
||
export XDG_STATE_HOME="$HOME/.local/state"
|
||
export XDG_RUNTIME_DIR=
|
||
{{- if eq .host.distro.family "darwin" -}}
|
||
"$TMPDIR"
|
||
{{- else if not .host.headless -}}
|
||
"/run/user/$(id -u)"
|
||
{{- else -}}
|
||
"/tmp"
|
||
{{- end }}
|
||
{{- if not .host.headless }}
|
||
export XDG_MUSIC_DIR="$HOME/Music"
|
||
export XDG_VIDEOS_DIR="$HOME/Videos"
|
||
export XDG_DESKTOP_DIR="$HOME/Desktop"
|
||
export XDG_PICTURES_DIR="$HOME/Pictures"
|
||
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||
export XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||
export XDG_TEMPLATES_DIR="$HOME/Templates"
|
||
export XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||
{{- end }}
|
||
|
||
### ASDF
|
||
export ASDF_CONFIG_FILE="$XDG_CONFIG_HOME/asdf/asdfrc"
|
||
export ASDF_DIR="$XDG_DATA_HOME/asdf"
|
||
export ASDF_DATA_DIR="$ASDF_DIR"
|
||
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="$XDG_CONFIG_HOME/asdf/default-cargo-pkgs
|
||
export ASDF_GEM_DEFAULT_PACKAGES_FILE="$XDG_CONFIG_HOME/asdf/default-ruby-pkgs
|
||
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="$XDG_CONFIG_HOME/asdf/default-golang-pkgs
|
||
export ASDF_NPM_DEFAULT_PACKAGES_FILE="$XDG_CONFIG_HOME/asdf/default-npm-packages"
|
||
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="$XDG_CONFIG_HOME/asdf/default-python-pkgs
|
||
|
||
### Cargo
|
||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||
|
||
### Go
|
||
export GOPATH="$XDG_DATA_HOME/go"
|
||
|
||
### Homebrew
|
||
export HOMEBREW_BUNDLE_FILE="$XDG_CONFIG_HOME/Brewfile"
|
||
{{- if (and (eq .host.distro.family "darwin") (.host.restricted)) }}
|
||
export HOMEBREW_CASK_OPTS="--appdir=~/Applications"
|
||
{{- end }}
|
||
|
||
### HTTPie
|
||
export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME/httpie"
|
||
|
||
### NPM
|
||
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
|
||
|
||
### Rustup
|
||
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
|
||
|
||
### wget
|
||
export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
|
||
|
||
### Colorize man pages
|
||
export LESS_TERMCAP_mb=$'\e[1;32m'
|
||
export LESS_TERMCAP_md=$'\e[1;32m'
|
||
export LESS_TERMCAP_me=$'\e[0m'
|
||
export LESS_TERMCAP_se=$'\e[0m'
|
||
export LESS_TERMCAP_so=$'\e[01;33m'
|
||
export LESS_TERMCAP_ue=$'\e[0m'
|
||
export LESS_TERMCAP_us=$'\e[1;4;31m'
|
||
export LESSHISTFILE=-
|
||
|
||
### Line Wrap
|
||
setterm -linewrap on 2>/dev/null
|
||
|
||
### History
|
||
export HISTCONTROL=ignoreboth
|
||
export HISTSIZE=5000
|
||
export HIST_STAMPS=mm/dd/yyyy
|
||
export SAVEHIST=5000
|
||
|
||
### Editor
|
||
{{- if not .host.headless }}
|
||
if command -v code > /dev/null; then
|
||
export EDITOR='code --wait'
|
||
else
|
||
# Source: https://unix.stackexchange.com/questions/4859/visual-vs-editor-what-s-the-difference
|
||
export EDITOR='vi -e'
|
||
fi
|
||
{{- else -}}
|
||
export EDITOR='vi -e'
|
||
{{- end -}}
|
||
export VISUAL="$EDITOR"
|
||
|
||
{{- if eq .host.type "wsl" }}
|
||
### WSL
|
||
export LIBGL_ALWAYS_INDIRECT="1"
|
||
export BROWSER='/mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe'
|
||
|
||
{{- end }}
|
||
### PATH
|
||
PATH="$PATH:$HOME/.local/bin:$CARGO_HOME/bin"
|
||
|
||
|
||
# Don’t clear the screen after quitting a manual page
|
||
export MANPAGER="less -X"
|
||
### GTK
|
||
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc"
|
||
|
||
### Homebrew
|
||
if [ -d /home/linuxbrew/.linuxbrew/bin ]; then
|
||
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew"
|
||
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar"
|
||
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew"
|
||
export PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin${PATH+:$PATH}"
|
||
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:"
|
||
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH:-}"
|
||
export WHALEBREW_INSTALL_PATH="/home/linuxbrew/.linuxbrew/whalebrew"
|
||
fi
|
||
|
||
### Whalebrew
|
||
export WHALEBREW_CONFIG_DIR="$HOME/.config/whalebrew"
|
||
|
||
### Go
|
||
export GOPATH="${HOME}/.local/go"
|
||
export GO111MODULE=on
|
||
export PATH="$PATH:${GOPATH}/bin"
|
||
if command -v go > /dev/null && which go | grep -q 'asdf' > /dev/null && command -v asdf > /dev/null; then
|
||
GOROOT="$(asdf where golang)/go"
|
||
export GOROOT
|
||
export PATH="$PATH:${GOROOT}/bin"
|
||
elif command -v go > /dev/null && command -v brew > /dev/null; then
|
||
GOROOT="$(brew --prefix go)/libexec"
|
||
export GOROOT
|
||
export PATH="$PATH:${GOROOT}/bin"
|
||
fi
|
||
|
||
### Android Studio
|
||
if [ -d ~/Library/Android ]; then
|
||
export PATH="$PATH:~/Library/Android/sdk/cmdline-tools/latest/bin"
|
||
export PATH="$PATH:~/Library/Android/sdk/platform-tools"
|
||
export PATH="$PATH:~/Library/Android/sdk/tools/bin"
|
||
export PATH="$PATH:~/Library/Android/sdk/tools"
|
||
fi
|
||
export ANDROID_SDK_HOME="$HOME/.local/android-sdk"
|
||
|
||
### Azure CLI
|
||
export AZURE_CONFIG_DIR="$HOME/.config/azure"
|
||
|
||
### bat
|
||
export BAT_CONFIG_PATH="$HOME/.config/batrc"
|
||
if command -v bat > /dev/null; then
|
||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||
alias bathelp='bat --plain --language=help'
|
||
alias cat='bat -pp'
|
||
alias less='bat --paging=always'
|
||
help() {
|
||
"$@" --help 2>&1 | bathelp
|
||
}
|
||
fi
|
||
|
||
### BitWarden
|
||
# https://bitwarden.com/help/cli/#using-an-api-key
|
||
# BW_CLIENTID client_id
|
||
# BW_CLIENTSECRET
|
||
|
||
### curlie
|
||
if command -v curlie > /dev/null; then
|
||
alias curl='curlie'
|
||
fi
|
||
|
||
### Elastic Agent
|
||
# https://www.elastic.co/guide/en/fleet/current/agent-environment-variables.html#env-common-vars
|
||
|
||
### exa
|
||
if command -v exa > /dev/null; then
|
||
alias ls='exa --long --all --color auto --icons --sort=type'
|
||
alias tree='exa --tree'
|
||
alias la='ls -la'
|
||
alias lt='ls --tree --level=2'
|
||
fi
|
||
|
||
### fzf
|
||
if command -v fd > /dev/null; then
|
||
export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
|
||
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
||
fi
|
||
|
||
### Git
|
||
export GIT_MERGE_AUTOEDIT=no
|
||
|
||
### gitfuzzy
|
||
export GF_BAT_STYLE=changes
|
||
export GF_BAT_THEME=zenbur
|
||
export GF_SNAPSHOT_DIRECTORY="$HOME/.local/git-fuzzy-snapshots"
|
||
if command -v delta > /dev/null; then
|
||
export GF_PREFERRED_PAGER="delta --theme=gruvbox --highlight-removed -w __WIDTH__"
|
||
fi
|
||
|
||
### gping
|
||
# Replacement for ping that includes graph
|
||
if command -v gping > /dev/null; then
|
||
alias ping='gping'
|
||
fi
|
||
|
||
### McFly
|
||
export MCFLY_FUZZY=2
|
||
export MCFLY_RESULTS=14
|
||
export MCFLY_KEY_SCHEME=vim
|
||
|
||
### nnn
|
||
if command -v nnn > /dev/null; then
|
||
alias n='nnn -de'
|
||
alias N='sudo -E nnn -dH'
|
||
alias nnn-install-plugins='curl -Ls https://raw.githubusercontent.com/jarun/nnn/master/plugins/getplugs | sh'
|
||
export NNN_RCLONE='rclone mount --read-only --no-checksum'
|
||
export NNN_SSHFS='sshfs -o reconnect,idmap=user,cache_timeout=3600'
|
||
fi
|
||
|
||
### Poetry
|
||
export POETRY_HOME="$HOME/.local/poetry"
|
||
export PATH="$POETRY_HOME/bin:$PATH"
|
||
|
||
### Rear
|
||
# https://github.com/rear/rear/blob/master/doc/user-guide/03-configuration.adoc
|
||
|
||
### ripgrep
|
||
export RIPGREP_CONFIG_PATH="$HOME/.config/ripgreprc"
|
||
if command -v rg &> /dev/null; then
|
||
alias grep='rg'
|
||
fi
|
||
|
||
### Ruby
|
||
export GEM_HOME="$HOME/.local/gems"
|
||
export PATH="$PATH:$GEM_HOME/bin"
|
||
|
||
### Volta
|
||
export VOLTA_HOME="$HOME/.local/volta"
|
||
export PATH="$VOLTA_HOME/bin:$PATH"
|
||
### SDKMan
|
||
export SDKMAN_DIR="$HOME/.local/sdkman"
|
||
|
||
### Vagrant
|
||
export VAGRANT_DEFAULT_PROVIDER=virtualbox
|
||
export VAGRANT_HOME="$HOME/.local/vagrant.d"
|
||
|
||
### wget
|
||
export WGETRC="$HOME/.config/wgetrc"
|