.zshenv 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. ################################################################################
  2. # ZSH Configuration
  3. ################################################################################
  4. export XDG_CACHE_HOME=$HOME/.cache
  5. export XDG_DATA_HOME=$HOME/.local/share
  6. export XDG_STATE_HOME=$HOME/.local/state
  7. export XDG_RUNTIME_DIR=$HOME/.run
  8. export XDG_DATA_DIRS=/usr/local/share:/usr/share
  9. export XDG_CONFIG_DIRS=/etc/xdg
  10. export DOTFILES_DIR=${${(%):-%N}:h:h:h}
  11. export XDG_CONFIG_HOME=$DOTFILES_DIR/.config
  12. export ZDOTDIR=$XDG_CONFIG_HOME/zsh
  13. ################################################################################
  14. # Disable /etc/zprofile, /etc/zshrc, /etc/zlogin and /etc/zlogout
  15. ################################################################################
  16. unsetopt GLOBAL_RCS
  17. ################################################################################
  18. # $PATH and similar
  19. ################################################################################
  20. PATH="/bin:/sbin"
  21. PATH="${PATH}:/usr/local/bin"
  22. PATH="${PATH}:/opt/homebrew/sbin"
  23. PATH="${PATH}:/opt/homebrew/bin"
  24. PATH="${PATH}:/usr/bin"
  25. PATH="${PATH}:/usr/sbin"
  26. # Additional Homebrew items that aren't linked by default
  27. PATH="${PATH}:/opt/homebrew/opt/ruby/bin"
  28. PATH="${PATH}:/opt/homebrew/opt/libpq/bin"
  29. PATH="${PATH}:${DOTFILES_DIR}/.scripts"
  30. export GOPATH="${HOME}/.go"
  31. PATH="${PATH}:${GOPATH}/bin"
  32. PATH="${PATH}:${HOME}/.gem/bin"
  33. PATH="${PATH}:${HOME}/.cargo/bin"
  34. PATH="${PATH}:${HOME}/.poetry/bin"
  35. PATH="${PATH}:${HOME}/.rvm/bin"
  36. # Run `path_helper`, and make its entries appear last, to preserve path ordering
  37. if [ -x /usr/libexec/path_helper ]; then
  38. oldpath="${PATH}"
  39. eval `/usr/libexec/path_helper -s`
  40. PATH="${oldpath}:${PATH}"
  41. fi
  42. # Remove duplicate entries
  43. typeset -U PATH
  44. export PATH
  45. ################################################################################
  46. # Miscellaneous configuration options
  47. ################################################################################
  48. export HOMEBREW_NO_ANALYTICS=1
  49. export HOMEBREW_PREFIX="/opt/homebrew"
  50. export HOMEBREW_BUNDLE_FILE="$DOTFILES_DIR/.config/brew/Brewfile"
  51. ################################################################################
  52. # Color palette and dark mode
  53. ################################################################################
  54. source $XDG_CONFIG_HOME/jonathandarker/palette.sh
  55. export LIGHTMODE_TOGGLE_FLAG_FILE="$XDG_RUNTIME_DIR/lightmode.toggled.flag"
  56. if [ -f $LIGHTMODE_TOGGLE_FLAG_FILE ]; then
  57. export JONATHANDARKER_COLOR_BG="$JONATHANDARKER_COLOR_15"
  58. export JONATHANDARKER_COLOR_BA="$JONATHANDARKER_COLOR_07"
  59. export JONATHANDARKER_COLOR_FG="$JONATHANDARKER_COLOR_00"
  60. export JONATHANDARKER_COLOR_FA="$JONATHANDARKER_COLOR_08"
  61. fi
  62. ################################################################################
  63. # Ports
  64. ################################################################################
  65. export SURFINGKEYS_SETTINGS_SERVER_PORT="21212"
  66. ################################################################################
  67. # Aliases
  68. ################################################################################
  69. # python _is_ python3
  70. alias python="python3"
  71. alias py="python3"
  72. ################################################################################
  73. # nvm
  74. # Lazy-loaded, using logic from https://github.com/undg/zsh-nvm-lazy-load
  75. ################################################################################
  76. export NVM_DIR="$HOME/.nvm"
  77. load-nvm() {
  78. [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
  79. [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
  80. }
  81. nvm() { unset -f nvm; load-nvm; nvm "$@" }
  82. node() { unset -f node; load-nvm; node "$@"; }
  83. npm() { unset -f npm; load-nvm; npm "$@"; }
  84. pnpm() { unset -f pnpm; load-nvm; pnpm "$@"; }
  85. yarn() { unset -f yarn; load-nvm; yarn "$@"; }
  86. ################################################################################
  87. # On macOS, set relevant environment variables to newly-launched programs
  88. ################################################################################
  89. lctl_env_label="LAUNCHCTL_CHECK_INSTANTIATED_$HOST_$USER"
  90. if (command -v launchctl &> /dev/null) && \
  91. [[ ! "$(launchctl getenv $lctl_env_label)" == "TRUE" ]]; then
  92. launchctl setenv XDG_CACHE_HOME $XDG_CACHE_HOME
  93. launchctl setenv XDG_DATA_HOME $XDG_DATA_HOME
  94. launchctl setenv XDG_STATE_HOME $XDG_STATE_HOME
  95. launchctl setenv XDG_RUNTIME_DIR $XDG_RUNTIME_DIR
  96. launchctl setenv XDG_DATA_DIRS $XDG_DATA_DIRS
  97. launchctl setenv XDG_CONFIG_DIRS $XDG_CONFIG_DIRS
  98. launchctl setenv DOTFILES_DIR $DOTFILES_DIR
  99. launchctl setenv XDG_CONFIG_HOME $XDG_CONFIG_HOME
  100. launchctl setenv ZDOTDIR $ZDOTDIR
  101. if [[ -o login ]]; then
  102. lctl_service_label="local.$HOST.$USER.launchctlenvsetter"
  103. launchd_file="/etc/launchd.conf"
  104. if [[ ! $(
  105. cat $launchd_file | grep "$lctl_service_label" > /dev/null 2>&1
  106. ) ]]; then
  107. >&2 echo "No \`launchctl\` service \`$lctl_service_label\` found;"
  108. >&2 echo "- Environment variables may not be set correctly"
  109. >&2 echo "- Run \`add_launchctl_item\` to create the service."
  110. function add_launchctl_item {
  111. printf "submit -l $lctl_service_label -- zsh"| sudo tee -a $file
  112. printf "-c \"source $ZDOTDIR/.zshenv\" \n"| sudo tee -a $file
  113. }
  114. fi;
  115. fi
  116. launchctl setenv $lctl_env_label TRUE
  117. fi
  118. ################################################################################
  119. # Activate Python virtual environments
  120. ################################################################################
  121. if [[ -n $VIRTUAL_ENV && \
  122. $VIRTUAL_ENV = "$HOME"* && \
  123. -e "${VIRTUAL_ENV}/bin/activate" ]]; then
  124. source "${VIRTUAL_ENV}/bin/activate"
  125. fi
  126. ################################################################################
  127. # Private or system-specific environment variables
  128. ################################################################################
  129. if [ -f $ZDOTDIR/.zshenv.private ]; then
  130. source $ZDOTDIR/.zshenv.private
  131. fi