about summary refs log tree commit diff
path: root/.config/zsh/zshrc
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2024-02-06 11:14:41 -0600
committerStarfall <us@starfall.systems>2024-02-06 11:14:41 -0600
commit8be270894c945ab3747b98619019bbabf2ec9429 (patch)
treeeda09f0047b3542b8de491b958b9f6394c73fd2a /.config/zsh/zshrc
parentf1fb961e87c0e37f84e6bdb3ae0ccdee606c93b5 (diff)
zsh: move hidden config to un-hidden files as much as possible
Diffstat (limited to '.config/zsh/zshrc')
-rw-r--r--.config/zsh/zshrc70
1 files changed, 70 insertions, 0 deletions
diff --git a/.config/zsh/zshrc b/.config/zsh/zshrc
new file mode 100644
index 0000000..84afcbf
--- /dev/null
+++ b/.config/zsh/zshrc
@@ -0,0 +1,70 @@
+# set ZPROF to measure startup time
+[[ -v ZPROF ]] && zmodload zsh/zprof
+
+# colors in virtual console
+# Tomorrow's Stars theme, lightly adapted from Tomorrow <https://github.com/chriskempson/tomorrow-theme>
+if [ "$TERM" = 'linux' ]; then
+	echo -ne "\e]P01d1f21"
+	echo -ne "\e]P1d54e53"
+	echo -ne "\e]P2b9ca4a"
+	echo -ne "\e]P3e7ba47"
+	echo -ne "\e]P47aa6da"
+	echo -ne "\e]P5c397d8"
+	echo -ne "\e]P670c0b1"
+	echo -ne "\e]P7969896"
+	echo -ne "\e]P8373b41"
+	echo -ne "\e]P9cc6666"
+	echo -ne "\e]PAb5bd68"
+	echo -ne "\e]PBf0c674"
+	echo -ne "\e]PC81a2be"
+	echo -ne "\e]PDb294bb"
+	echo -ne "\e]PE8abeb7"
+	echo -ne "\e]PFc5c8c6"
+	clear
+fi
+
+# plugin - fzf
+# arch puts these here
+if [[ -a /usr/share/fzf/key-bindings.zsh ]] && [[ -a /usr/share/fzf/completion.zsh ]]; then
+	export FZF_DEFAULT_OPTS='--no-height --no-reverse'
+	source /usr/share/fzf/key-bindings.zsh
+	source /usr/share/fzf/completion.zsh
+fi
+
+# plugins - url quote magic
+autoload -Uz url-quote-magic
+zle -N self-insert url-quote-magic
+
+# plugins - magic dots (must come after url-quote-magic)
+fpath=($ZDOTDIR/plugins $fpath)
+autoload -Uz manydots-magic
+manydots-magic
+
+# magic navigation
+setopt autocd
+cdpath=(. $HOME $HOME/devil $HOME/src)
+
+# a bit nicer life when copy/pasting commands from docs
+setopt interactive_comments
+
+# aliases
+alias cls=clear
+alias config='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
+
+# collapse spaces into tabs in-place
+# spacetotab <FILE> [WIDTH=4]
+function spacetotab () {
+	unexpand --tabs=${2:-4} --first-only "$1" > "$1.tmp"
+	mv "$1.tmp" "$1"
+}
+
+# display a fortune when opening an interactive terminal
+tty -s && fortune $HOME/fortunes 2>/dev/null ||:
+
+# set ZPROF to profile startup time
+[[ -v ZPROF ]] && zprof
+
+# startx if not already running an x server (e.g. via display manager) and only on tty1
+if (command -v startx &>/dev/null) && [ -z "${DISPLAY}" ] && [ "$(tty)" = "/dev/tty1" ]; then
+	exec startx
+fi