.zshenv 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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=$HOME/
  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. ################################################################################
  50. # Color palette and dark mode
  51. ################################################################################
  52. source $XDG_CONFIG_HOME/jonathandarker/palette.sh
  53. export LIGHTMODE_TOGGLE_FLAG_FILE="$XDG_RUNTIME_DIR/lightmode.toggled.flag"
  54. if [ -f $LIGHTMODE_TOGGLE_FLAG_FILE ]; then
  55. export JONATHANDARKER_COLOR_BG="$JONATHANDARKER_COLOR_15"
  56. export JONATHANDARKER_COLOR_BA="$JONATHANDARKER_COLOR_07"
  57. export JONATHANDARKER_COLOR_FG="$JONATHANDARKER_COLOR_00"
  58. export JONATHANDARKER_COLOR_FA="$JONATHANDARKER_COLOR_08"
  59. fi
  60. ################################################################################
  61. # Ports
  62. ################################################################################
  63. export SURFINGKEYS_SETTINGS_SERVER_PORT="21212"
  64. ################################################################################
  65. # Aliases
  66. ################################################################################
  67. # python _is_ python3
  68. alias python="python3"
  69. alias py="python3"
  70. ################################################################################
  71. # nvm
  72. # Lazy-loaded, using logic from https://github.com/undg/zsh-nvm-lazy-load
  73. ################################################################################
  74. export NVM_DIR="$HOME/.nvm"
  75. load-nvm() {
  76. [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
  77. [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
  78. }
  79. nvm() { unset -f nvm; load-nvm; nvm "$@" }
  80. node() { unset -f node; load-nvm; node "$@"; }
  81. npm() { unset -f npm; load-nvm; npm "$@"; }
  82. pnpm() { unset -f pnpm; load-nvm; pnpm "$@"; }
  83. yarn() { unset -f yarn; load-nvm; yarn "$@"; }
  84. ################################################################################
  85. # On macOS, set relevant environment variables to newly-launched programs
  86. ################################################################################
  87. lctl_env_label="LAUNCHCTL_CHECK_INSTANTIATED_$HOST_$USER"
  88. if (command -v launchctl &> /dev/null) && \
  89. [[ ! "$(launchctl getenv $lctl_env_label)" == "TRUE" ]]; then
  90. launchctl setenv XDG_CACHE_HOME $XDG_CACHE_HOME
  91. launchctl setenv XDG_DATA_HOME $XDG_DATA_HOME
  92. launchctl setenv XDG_STATE_HOME $XDG_STATE_HOME
  93. launchctl setenv XDG_RUNTIME_DIR $XDG_RUNTIME_DIR
  94. launchctl setenv XDG_DATA_DIRS $XDG_DATA_DIRS
  95. launchctl setenv XDG_CONFIG_DIRS $XDG_CONFIG_DIRS
  96. launchctl setenv DOTFILES_DIR $DOTFILES_DIR
  97. launchctl setenv XDG_CONFIG_HOME $XDG_CONFIG_HOME
  98. launchctl setenv ZDOTDIR $ZDOTDIR
  99. if [[ -o login ]]; then
  100. lctl_service_label="local.$HOST.$USER.launchctlenvsetter"
  101. launchd_file="/etc/launchd.conf"
  102. if [[ ! $(
  103. cat $launchd_file | grep "$lctl_service_label" > /dev/null 2>&1
  104. ) ]]; then
  105. >&2 echo "No \`launchctl\` service \`$lctl_service_label\` found;"
  106. >&2 echo "- Environment variables may not be set correctly"
  107. >&2 echo "- Run \`add_launchctl_item\` to create the service."
  108. function add_launchctl_item {
  109. printf "submit -l $lctl_service_label -- zsh"| sudo tee -a $file
  110. printf "-c \"source $ZDOTDIR/.zshenv\" \n"| sudo tee -a $file
  111. }
  112. fi;
  113. fi
  114. launchctl setenv $lctl_env_label TRUE
  115. fi
  116. ################################################################################
  117. # Activate Python virtual environments
  118. ################################################################################
  119. if [[ -n $VIRTUAL_ENV && \
  120. $VIRTUAL_ENV = "$HOME"* && \
  121. -e "${VIRTUAL_ENV}/bin/activate" ]]; then
  122. source "${VIRTUAL_ENV}/bin/activate"
  123. fi
  124. ################################################################################
  125. # Private or system-specific environment variables
  126. ################################################################################
  127. if [ -f $ZDOTDIR/.zshenv.private ]; then
  128. source $ZDOTDIR/.zshenv.private
  129. fi