-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathdot_zshenv
135 lines (119 loc) · 4.88 KB
/
dot_zshenv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Path
export PATH="$PATH:${$(find -L ~/.local/bin -type d -printf %p:)%%:}" > /dev/null 2>&1
# XDG paths
export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}
export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"}
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"}
export XDG_STATE_HOME=${XDG_STATE_HOME:="$HOME/.local/state"}
# Tools
# Rust
export CARGO_HOME="$XDG_DATA_HOME"/cargo
export PATH="$PATH":"$CARGO_HOME"/bin
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
# Go
export GOPATH="$XDG_DATA_HOME"/go
export PATH="$PATH":"$GOPATH"/bin
# Node, NPM
export PATH="$PATH":"$XDG_DATA_HOME"/npm/bin
export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
export NVM_DIR="$XDG_DATA_HOME"/nvm
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
# Java
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
# Python
export PYLINTHOME=${XDG_DATA_HOME:-$HOME/.local/share}/pylint
export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs
export PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/config.py
# Docker
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine
# Haskell
export GHCUP_INSTALL_BASE_PREFIX="$XDG_DATA_HOME"
export PATH="$PATH":"$GHCUP_INSTALL_BASE_PREFIX"/.ghcup/bin
# SQLite
export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history
# W3M
export W3M_DIR="$XDG_STATE_HOME/w3m"
# Notes database
export ZK_NOTEBOOK_DIR=$HOME/Documents/notes/
# ZSH word split
# Delete up until `/` with <C-w>, specially useful when typing paths and need to
# correct just a single section, but by default doing <C-w> deletes the entire "word"
# default: *?_-.[]~=/&;!#$%^(){}<>
# source: https://unix.stackexchange.com/questions/48577/modifying-the-zsh-shell-word-split
# source: https://apple.stackexchange.com/questions/382126/partially-delete-path-in-zsh-option-backspace
export WORDCHARS="*?_-.[]~=&;!#$%^(){}<>"
# Android
export ADB_VENDOR_KEY="$XDG_CONFIG_HOME"/android
export ANDROID_PREFS_ROOT="$XDG_CONFIG_HOME"/android
export ADB_KEYS_PATH="$ANDROID_PREFS_ROOT"
export ANDROID_EMULATOR_HOME="$XDG_DATA_HOME"/android/emulator
export ANDROID_HOME="$XDG_DATA_HOME"/android
export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
# Disable files
export LESSHISTFILE=-
# Fixing Paths
# if [[ ! "$DESKTOP_SESSION" == 'plasma' ]] && [[ ! "$DESKTOP_SESSION" == 'plasmawayland' ]]; then
# export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority # this creates problems with KDE
# export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
# export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc
# fi
export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority
export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
export KDEHOME="$XDG_CONFIG_HOME"/kde
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store"
export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default"
export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
# GPG
export GNUPGHOME="$XDG_DATA_HOME"/gnupg
export GPG_TTY=$(tty)
# FZF
FZF_BINDS="--bind 'f4:toggle-preview,shift-down:preview-half-page-down,shift-up:preview-half-page-up,alt-a:toggle-all'"
FZF_DISPLAY="--layout=reverse --border=sharp --multi --height=60%"
if [ -x "$(command -v bat)" ]; then
FZF_PREVIEW="--preview 'bat --color=always --line-range :50 {}'"
else
FZF_PREVIEW="--preview 'cat {}'"
fi
if [ -x "$(command -v fd)" ]; then
FD_COMMAND='fd --strip-cwd-prefix --hidden --exclude=\*.git/\* --type=file'
FZF_T_OPTS="
--bind 'ctrl-g:transform:[[ ! \$FZF_PROMPT == \" > \" ]] &&
echo \"rebind(ctrl-g)+change-prompt( > )+change-header(:: ctrl-g to Respect .gitignore)+reload($FD_COMMAND --no-ignore)\" ||
echo \"rebind(ctrl-g)+change-prompt(ig> )+change-header(:: ctrl-g to Disable .gitignore)+reload($FD_COMMAND)\"' \
--prompt 'ig> '
--header ':: ctrl-g to Disable .gitignore'
"
else
FZF_COMMAND="find . -type f -not -path '*/\.git/*' -not -path '*/node_modules*'"
FZF_T_OPTS=""
fi
export FZF_DEFAULT_COMMAND="$FD_COMMAND"
export FZF_DEFAULT_OPTS="$FZF_DISPLAY $FZF_BINDS"
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_CTRL_T_OPTS="$FZF_T_OPTS $FZF_PREVIEW"
export FZF_ALT_C_COMMAND="find . -type d -not -path '*/\.git/*'"
export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -50'"
# Dotfiles
export DOTFILES="${XDG_DATA_HOME:-$HOME/.local/share}/chezmoi"
export NVIMRC="${DOTFILES:-$HOME/.local/share/chezmoi}/private_dot_config/nvim"
# MAILDIR
export MAILDIR="$XDG_DATA_HOME/maildir"
# ZSH
export ZDOTDIR=$HOME/.config/zsh
# Others
export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# Default Apps
export EDITOR="nvim"
export VISUAL="nvim"
export MANPAGER='nvim +Man!'
export MANWIDTH=120
export TERMINAL="alacritty"
export BROWSER="firefox"
export VIDEO="mpv"
export COLORTERM="truecolor"