dotfiles/.zshenv

160 lines
6.6 KiB
Plaintext
Raw Normal View History

export_existing() {
local var=$1
while test $# -gt 0
do test -d "$2" && export $var="$2" && break
shift
done
}
export_existing DATA $HOME/daten $HOME/data
2022-05-03 09:21:04 +00:00
export MUSIC="$DATA/4-media/music"
export BORG_REPO='/mnt/backup/borg'
2022-08-04 08:57:08 +00:00
export BORG_PASSCOMMAND='pass service/device/borg/backup'
2021-11-25 12:18:57 +00:00
2020-06-26 21:27:38 +00:00
# xdg
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_CACHE_HOME="$HOME/.local/cache"
2020-06-26 21:27:38 +00:00
export XDG_CONFIG_HOME="$HOME/.config"
2021-11-23 12:02:12 +00:00
export JOURNAL="$(eval "dirname $(grep -1 journals $XDG_CONFIG_HOME/jrnl/jrnl.yaml | tail -1 | cut -d':' -f2-)" ||
2022-05-03 09:21:04 +00:00
echo "$DATA/2-box/journal")"
export_existing INSTALEE_HOME "$HOME/projects/instalee" "$DATA/1-projects/1-personal/instalee"
export_existing VOSK_MODELS "/mnt/data/projects/vosk/models"
2020-09-04 10:09:08 +00:00
# adjust programs to use xdg
2021-12-02 09:43:35 +00:00
export MNT=/run/media/$USER
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
2021-04-13 15:20:24 +00:00
2022-04-03 20:24:47 +00:00
export LYNX_CFG_PATH="$XDG_CONFIG_HOME"/lynx.cfg
export GNUPGHOME="$XDG_DATA_HOME"/gnupg
export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
2022-02-12 08:35:40 +00:00
export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap
export LESSHISTFILE="$XDG_STATE_HOME"/lesshst
2022-02-12 08:35:40 +00:00
## Graphical
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
export KDEHOME="$XDG_STATE_HOME"/kdehome
2021-12-02 09:43:35 +00:00
export DOOMLOCALDIR="$XDG_STATE_HOME"/emacs
export WINEPREFIX="$XDG_DATA_HOME"/wine
## Development tools
export GOPATH="$XDG_STATE_HOME"/go
2022-08-04 08:57:08 +00:00
export KREW_ROOT="$XDG_DATA_HOME"/krew
2022-09-09 13:56:18 +00:00
export CARGO_HOME="$XDG_STATE_HOME"/cargo
export RUSTUP_HOME="$XDG_STATE_HOME"/rustup
2022-08-04 08:57:08 +00:00
2023-09-11 23:16:35 +00:00
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
2021-12-14 18:46:28 +00:00
export NVM_DIR="$XDG_DATA_HOME"/nvm
2022-08-04 08:57:08 +00:00
export N_PREFIX="$XDG_STATE_HOME"/n
2021-04-13 15:20:24 +00:00
export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config
export CABAL_DIR="$XDG_CACHE_HOME"/cabal
2021-06-19 19:25:10 +00:00
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
export BUNDLE_USER_PLUGIN="$XDG_STATE_HOME"/bundle
export PYTHONSTARTUP="$XDG_CONFIG_HOME"/pythonstartup.py
export KSCRIPT_CACHE_DIR="$XDG_CACHE_HOME"/kscript
2021-06-19 19:25:10 +00:00
2022-09-08 20:44:01 +00:00
export RBENV_ROOT="$XDG_STATE_HOME"/rbenv
export R_LIBS="$XDG_STATE_HOME"/R/lib
# Java & Android
2020-10-13 09:19:09 +00:00
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME/java"
export GRADLE_USER_HOME="$XDG_STATE_HOME"/gradle
export ANDROID_PREFS_ROOT="$XDG_CONFIG_HOME"/android
export ANDROID_EMULATOR_HOME="$XDG_STATE_HOME"/android/emulator
2022-08-04 08:57:08 +00:00
export ANDROID_SDK_ROOT="/opt/android/sdk"
# taskwarrior & timewarrior
export TIMEWARRIORDB="$XDG_DATA_HOME"/timewarrior
export TASKRC="$XDG_CONFIG_HOME"/task/taskrc
export TASKDATA="$XDG_DATA_HOME"/task
2020-09-04 10:09:08 +00:00
# zsh dirs
export ZDOTDIR="$XDG_CONFIG_HOME"/zsh
export ZSH="$XDG_DATA_HOME"/zsh/oh-my-zsh
export HISTFILE="$XDG_STATE_HOME"/zsh/history
export CONFIG_ZSH="$XDG_CONFIG_HOME"/zsh
export CONFIG_SHELLS="$XDG_CONFIG_HOME"/shell
mkdir -p "$XDG_STATE_HOME/zsh"
2020-09-04 10:09:08 +00:00
2020-06-26 21:27:38 +00:00
# environment
2022-07-06 07:10:13 +00:00
BIN="$HOME/.local/bin"
2022-09-15 09:58:07 +00:00
export PATH="$BIN/scripts:$BIN:$RBENV_ROOT/shims:$PATH:$XDG_CONFIG_HOME/emacs/bin:$N_PREFIX:$GOPATH/bin:$ANDROID_SDK_ROOT/platform-tools:$CARGO_HOME/bin:$KREW_ROOT/bin:$XDG_DATA_HOME/gem/ruby/3.0.0/bin:$HOME/.rvm/bin"
2022-06-13 20:56:05 +00:00
export ALTERNATE_EDITOR="$(
if which nvim >/dev/null
then echo nvim
else echo vi
fi)"
export EDITOR="$(
if which emacs >/dev/null
2022-07-06 07:10:13 +00:00
then echo $BIN/scripts/emacstty
2022-06-13 20:56:05 +00:00
else echo $ALTERNATE_EDITOR
fi
)"
export IHP_EDITOR="$BIN/scripts/emacs-line"
2022-11-29 22:32:54 +00:00
export LS_OPTIONS='--color=auto --human-readable --si --group-directories-first --file-type --dereference-command-line'
2023-06-12 09:08:37 +00:00
export LESS="--raw-control-chars --ignore-case --LONG-PROMPT --jump-target=5 $(test $(less --version | head -1 | cut -f2 -d' ') -ge 590 && echo --incsearch)"
2022-02-12 08:35:40 +00:00
# TODO put into config file and use --exclude-from
2022-11-29 22:32:54 +00:00
# -x 'System Volume Information'
export DIRS_GENERATED="-x generated -x .gradle -x cmake_build -x dist-newstyle -x node_modules -x __pycache__"
2022-05-10 07:25:01 +00:00
export DIRS_IGNORE_SAFE="-x .cache -x .cpan -x *Cache -x .pyenv -x .local/cache -x share/baloo -x share/cabal -x share/cargo -x share/digikam -x share/gem -x share/JetBrains -x share/tldr -x share/syncthing -x share/Steam/ubuntu* -x share/Steam/package -x share/virtualenv -x share/Zeal -x state/gradle -x state/android -x Ferdi/Partitions -x oh-my-zsh -x wine/drive_c/windows -x vendor/cache $DIRS_GENERATED"
export DIRS_IGNORE="-x .sync -x .stfolder -x *build -x .git -x .idea -x env -x out -x cache -x Partitions -x vendor/bundle -x log $DIRS_IGNORE_SAFE"
2020-09-04 10:09:08 +00:00
# red stderr
test -f "/usr/lib/libstderred.so" && export LD_PRELOAD="/usr/lib/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
2020-06-26 21:27:38 +00:00
# software config
2022-08-29 22:06:26 +00:00
export OSFONTDIR="$XDG_DATA_HOME"/fonts:/usr/share/fonts
2022-09-27 20:04:13 +00:00
export TEXMF=/usr/share/texmf-dist/texmf-context
export KSCRIPT_IDEA_COMMAND=intellij-idea-ultimate-edition
## enable pass extensions
export PASSWORD_STORE_ENABLE_EXTENSIONS="true"
## man
export MANPAGER="less --squeeze-blank-lines +Gg"
export LESS_TERMCAP_mb=$'\e[1;31m' # begin bold
export LESS_TERMCAP_md=$'\e[1;32m' # begin blink
export LESS_TERMCAP_so=$'\e[36m' # bottom indication and search highlight
export LESS_TERMCAP_us=$'\e[4;33m' # begin underline
export LESS_TERMCAP_me=$'\e[0m' # reset bold/blink
export LESS_TERMCAP_se=$'\e[0m' # reset reverse video
export LESS_TERMCAP_ue=$'\e[0m' # reset underline
export GROFF_NO_SGR=1 # for konsole and gnome-terminal
## fzf defaults
[[ "$(fzf --version 2>/dev/null | grep --only-matching '[0-9]\.[^. ]*')" > 0.31 ]] && _fzf_latest=true || _fzf_latest=false
2021-11-04 11:19:43 +00:00
FZF_BINDINGS=$(echo "
change:top
alt-enter:execute(test -O {} && $EDITOR {} || sudoedit {})
alt-bspace:execute(gio trash {})
double-click:execute(xdg-open {})
ctrl-a:select-all
2022-02-12 08:35:40 +00:00
ctrl-l:kill-line
alt-a:select-all
alt-c:yank
alt-w:toggle-preview-wrap
2022-02-12 08:35:40 +00:00
ctrl-alt-h:backward-kill-word
$($_fzf_latest && echo "shift-down:preview-half-page-down,shift-up:preview-half-page-up
2022-01-17 20:00:50 +00:00
alt-j:preview-half-page-down,alt-k:preview-half-page-up
alt-shift-down:preview-down,alt-shift-up:preview-up,esc:close")
2021-11-04 11:19:43 +00:00
" | xargs -I% echo -n "%," | head -c-1)
#alt-r:preview(bat {}),
export FZF_HISTDIR="$XDG_STATE_HOME/fzf"
mkdir -p "$XDG_STATE_HOME/fzf"
2022-11-18 03:20:13 +00:00
export FZF_DEFAULT_OPTS="--exit-0 --ansi
--tiebreak=$($_fzf_latest && echo "chunk,")end,length --history=$FZF_HISTDIR/history --bind='$FZF_BINDINGS'
2022-01-17 12:56:33 +00:00
$($_fzf_latest && echo '--preview-window=60%,border-left --marker=o')"
FD_BASE="fd --hidden --color=always --no-ignore-vcs"
export FZF_DEFAULT_COMMAND="$FD_BASE --type file"
export FZF_CTRL_T_COMMAND="$FD_BASE -d 7"
2023-09-11 23:16:35 +00:00
## cplusplus - ctest, cmake, ninja
SPARE_CORES=$(expr $(lscpu --extended | awk '{print $7}' | sort | uniq -c | head -1 | awk '{print $1}') \* 4 / 5)
export CMAKE_BUILD_PARALLEL_LEVEL=${SPARE_CORES}
export CTEST_PARALLEL_LEVEL=${SPARE_CORES}
2020-09-04 10:09:08 +00:00
export CTEST_PROGRESS_OUTPUT=1
export CTEST_OUTPUT_ON_FAILURE=1
2023-06-12 09:08:37 +00:00
2023-06-21 10:33:33 +00:00
# TODO move to proper place - is also called when firenvim starts
#autolight
2023-06-12 09:08:37 +00:00
#export TZ='Europe/Dublin'