shell-independent config (aliases, functions, env vars, options) to .config/shell/shrc, make bashrc and zshrc use the same shrc, add TTY detection for changing caps lock to escape in a TTY, add option for skipping plugin loading, and maybe a few other things If this goes well, I'll be tempted to call this version 1.0. Things have been very stable for the last few months. Although, since it's the first really big change in a while, that might make it version 2.0? Should dotfiles have big version numbers at all? Probably not.
75 lines
2.7 KiB
Bash
75 lines
2.7 KiB
Bash
#!/bin/sh
|
|
# Blake's environment variables
|
|
# This file should be compatible with standard sh
|
|
# shellcheck disable=SC2034
|
|
|
|
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"
|
|
fi
|
|
|
|
# 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"
|
|
|
|
|
|
export PATH="$PATH:${XDG_DATA_HOME:-$HOME/.local}/bin:$SHELL_CONFIG_DIR/bin"
|
|
|
|
|
|
export LSCOLORS="Gxfxcxdxbxegedabagacad"
|
|
|
|
|
|
export ZSH_CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/zsh"
|
|
# Don't add extra space to the right side of the prompt
|
|
export ZLE_RPROMPT_INDENT=0
|
|
|
|
export ZINIT_HOME_DIR="${XDG_DATA_HOME:-$HOME/.local}/share/zinit"
|
|
|
|
|
|
# Set documents directory (auto set to the repo the file ~/todo points to is in)
|
|
# shellcheck disable=SC2155
|
|
[ -h ~/todo ] && export DOCS_DIR="$(git -C "$(dirname "$(realpath ~/todo)" 2>&1)" rev-parse --show-toplevel | head -1)" || DOCS_DIR="$HOME/Documents/docs/"
|
|
|
|
## Working directory save settings (see things at bottom of zshrc)
|
|
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")"
|
|
|
|
# ZSH plugin settings >>>
|
|
# 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"
|
|
|
|
# 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"}"
|
|
# <<<
|
|
|
|
###########################################
|
|
### Directory and file quick access ###
|
|
###########################################
|
|
S="$SHELL_CONFIG_DIR"
|
|
DD="$DOCS_DIR"
|
|
|
|
# vim:fdm=marker:fmr=>>>,<<<:et:ft=sh:sw=3:ts=3
|