dotfiles/.config/shell/env

117 lines
3.8 KiB
Text
Raw Normal View History

#!/bin/sh
2022-03-18 17:50:20 -07:00
# Blake's environment variables
# This file should be compatible with standard sh
2022-03-30 11:40:06 -07:00
# shellcheck disable=SC2034
2022-03-18 17:50:20 -07:00
export SHELL_CONFIG_DIR="${SHELL_CONFIG_DIR:-"${XDG_CONFIG_HOME:-"$HOME/.config"}/shell"}"
if ! [ -d "$SHELL_CONFIG_DIR" ]; then
echo "FATAL ERROR: \$SHELL_CONFIG_DIR is not set to a real directory: $SHELL_CONFIG_DIR" >&2
fi
if [ -z "$PROFILE_LOADED" ] && [ -f ~/.profile ]; then
# shellcheck source=/home/blake/.profile
. ~/.profile
fi
2022-03-18 17:50:20 -07:00
# Intelligently set $EDITOR
if command -v nvim > /dev/null;then
export EDITOR=nvim
elif command -v vim > /dev/null;then
export EDITOR=vim
elif command -v vi > /dev/null;then
export EDITOR=vi
fi
export SYSTEMD_EDITOR="$EDITOR"
2022-05-22 08:43:59 -07:00
export VISUAL="$EDITOR"
2022-06-05 11:43:32 -07:00
# Add local bin path and shell bin path to PATH
2022-03-18 17:50:20 -07:00
export PATH="$PATH:${XDG_DATA_HOME:-$HOME/.local}/bin:$SHELL_CONFIG_DIR/bin"
2023-06-28 21:58:40 -07:00
# Add doom emacs bin folder to path if it exists
doom_bin_dir="${XDG_DATA_HOME:-$HOME/.config}/emacs/bin"
if [ -d "$doom_bin_dir" ]; then export PATH="$PATH:$doom_bin_dir"; fi
unset doom_bin_dir
# Shell to use for commands like `nix-shell -p`
export NIX_BUILD_SHELL=zsh
2022-06-05 11:43:32 -07:00
# Basic default LS colors
2022-03-18 17:50:20 -07:00
export LSCOLORS="Gxfxcxdxbxegedabagacad"
# `less` colors
# shellcheck disable=SC2016
export LESS='-R --use-color -Dd+g$Du+b'
export MANPAGER="less -R --use-color -Dd+g -Du+b"
2022-06-05 11:43:32 -07:00
# Theme for zsh and nvim (soon™)
COLOR_SCHEME=tokyonight
2022-06-05 11:43:32 -07:00
# move zsh cache to where it should go
2022-03-18 17:50:20 -07:00
export ZSH_CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/zsh"
2022-06-05 11:43:32 -07:00
2022-03-18 17:50:20 -07:00
# Don't add extra space to the right side of the prompt
export ZLE_RPROMPT_INDENT=0
2022-06-05 11:43:32 -07:00
# Move zinit to where it should go
export ZINIT_HOME_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/zinit"
2022-03-18 17:50:20 -07:00
2022-08-26 21:07:38 -07:00
# Add cargo to PATH if it exists
2022-12-16 22:21:39 -08:00
[ -d "$HOME/.cargo/bin" ] && export PATH="$PATH:$HOME/.cargo/bin"
2022-03-18 17:50:20 -07:00
# Set documents directory (auto set to the repo the file ~/todo points to is in)
2022-05-22 02:25:54 -07:00
if [ -h ~/todo ] && command -v git > /dev/null; then
# shellcheck disable=SC2155
export DOCS_DIR="$(git -C "$(dirname "$(realpath ~/todo)" 2>&1)" rev-parse --show-toplevel | head -1)"
elif [ -d "$HOME/Documents/docs" ]; then
export DOCS_DIR="$HOME/Documents/docs/"
else
2022-05-22 02:25:54 -07:00
echo "Error: couldn't find the documents repo" > /dev/null
fi
2022-03-18 17:50:20 -07:00
2023-01-21 02:57:10 -08:00
if [ -d "/etc/nixos" ]; then
export NIXOS_DIR=/etc/nixos
fi
## Working directory save settings (see things at bottom of zshrc)
2022-03-18 17:50:20 -07:00
WORKING_DIR_SAVE_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/last-working-dir"
# make the dir for the file if needed
test -d "$(dirname "$WORKING_DIR_SAVE_FILE")" || mkdir -p "$(dirname "$WORKING_DIR_SAVE_FILE")"
2022-03-18 17:50:20 -07:00
# ZSH plugin settings >>>
2022-03-18 17:50:20 -07:00
# ZSH Vi Mode
export ZVM_VI_HIGHLIGHT_FOREGROUND=#BBC2CF
export ZVM_VI_HIGHLIGHT_BACKGROUND=#515860
# ZVM_VI_HIGHLIGHT_EXTRASTYLE=bold,underline # bold and underline
# vim-mode cursor
# syntax: "[color] [blinking] [style]" see: https://github.com/softmoth/zsh-vim-mode#mode-in-prompt
export MODE_CURSOR_VIINS="blinking bar"
export MODE_CURSOR_REPLACE="steady bar"
export MODE_CURSOR_VICMD="steady block"
export MODE_CURSOR_SEARCH="blinking underline"
export MODE_CURSOR_VISUAL="steady block"
export MODE_CURSOR_VLINE="steady block"
2022-03-18 17:50:20 -07:00
# OMZ Completion
export COMPLETION_WAITING_DOTS=true
# Powerlevel 10k
export POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD="${POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD:-true}"
export POWERLEVEL9K_INSTANT_PROMPT="${POWERLEVEL9K_INSTANT_PROMPT:-quiet}"
# TODO?: maybe add a bit of code to select a random theme if none is detected (make sure to disable instant prompt if this happens)
export P10K_CONFIG_LOCATION="${P10K_CONFIG_LOCATION:-"$SHELL_CONFIG_DIR/p10k/current"}"
2022-03-18 17:50:20 -07:00
# <<<
2022-03-30 11:40:06 -07:00
###########################################
### Directory and file quick access ###
###########################################
S="$SHELL_CONFIG_DIR"
2023-01-21 02:57:10 -08:00
SS="$S/shrc"
DD="$DOCS_DIR"
2022-04-13 01:37:49 -07:00
C=~/code/spu/ds2/src
2023-01-21 02:57:10 -08:00
N="${NIXOS_DIR:-}"
2022-03-30 11:40:06 -07:00
2023-01-21 02:57:10 -08:00
export S SS # this makes it easier to load the shrc while in posix sh
2022-08-09 18:36:28 -07:00
# vim:fdm=marker:fmr=>>>,<<<:et:ft=sh:sw=3:ts=3