.zshenv 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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. alias n="nvim"
  68. alias lg="lazygit"
  69. alias ld="lazydocker"
  70. # git
  71. alias g="git"
  72. alias gs="git s"
  73. alias gl="git l"
  74. # ls
  75. alias ls="lsd -a"
  76. alias la="lsd -la"
  77. # clear
  78. alias c="clear && NEW_LINE_BEFORE_PROMPT=0"
  79. alias clear="clear && NEW_LINE_BEFORE_PROMPT=0"
  80. #python
  81. alias python="python3"
  82. alias py="python3"
  83. #granted
  84. alias assume=". assume"
  85. #brew
  86. alias brewdump="(cd $XDG_CONFIG_HOME/brew/ && brew bundle dump --force --describe)"
  87. ################################################################################
  88. # nvm
  89. # Lazy-loaded, using logic from https://github.com/undg/zsh-nvm-lazy-load
  90. ################################################################################
  91. export NVM_DIR="$HOME/.nvm"
  92. load-nvm() {
  93. [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
  94. [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
  95. }
  96. nvm() { unset -f nvm; load-nvm; nvm "$@" }
  97. node() { unset -f node; load-nvm; node "$@"; }
  98. npm() { unset -f npm; load-nvm; npm "$@"; }
  99. pnpm() { unset -f pnpm; load-nvm; pnpm "$@"; }
  100. yarn() { unset -f yarn; load-nvm; yarn "$@"; }
  101. ################################################################################
  102. # On macOS, set relevant environment variables to newly-launched programs
  103. ################################################################################
  104. lctl_env_label="LAUNCHCTL_CHECK_INSTANTIATED_$HOST_$USER"
  105. if [[ ! "$(launchctl getenv $lctl_env_label)" == "TRUE" ]]; then
  106. launchctl setenv XDG_CACHE_HOME $XDG_CACHE_HOME
  107. launchctl setenv XDG_DATA_HOME $XDG_DATA_HOME
  108. launchctl setenv XDG_STATE_HOME $XDG_STATE_HOME
  109. launchctl setenv XDG_RUNTIME_DIR $XDG_RUNTIME_DIR
  110. launchctl setenv XDG_DATA_DIRS $XDG_DATA_DIRS
  111. launchctl setenv XDG_CONFIG_DIRS $XDG_CONFIG_DIRS
  112. launchctl setenv DOTFILES_DIR $DOTFILES_DIR
  113. launchctl setenv XDG_CONFIG_HOME $XDG_CONFIG_HOME
  114. launchctl setenv ZDOTDIR $ZDOTDIR
  115. if [[ -o login ]]; then
  116. lctl_service_label="local.$HOST.$USER.launchctlenvsetter"
  117. launchd_file="/etc/launchd.conf"
  118. if [[ ! $(
  119. cat $launchd_file | grep "$lctl_service_label" > /dev/null 2>&1
  120. ) ]]; then
  121. >&2 echo "No \`launchctl\` service \`$lctl_service_label\` found;"
  122. >&2 echo "- Environment variables may not be set correctly"
  123. >&2 echo "- Run \`add_launchctl_item\` to create the service."
  124. function add_launchctl_item {
  125. printf "submit -l $lctl_service_label -- zsh"| sudo tee -a $file
  126. printf "-c \"source $ZDOTDIR/.zshenv\" \n"| sudo tee -a $file
  127. }
  128. fi;
  129. fi
  130. launchctl setenv $lctl_env_label TRUE
  131. fi
  132. ################################################################################
  133. # Private or system-specific environment variables
  134. ################################################################################
  135. if [ -f $ZDOTDIR/.zshenv.private ]; then
  136. source $ZDOTDIR/.zshenv.private
  137. fi