aboutsummaryrefslogtreecommitdiffstats
path: root/zuwu.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'zuwu.zsh')
-rwxr-xr-xzuwu.zsh157
1 files changed, 157 insertions, 0 deletions
diff --git a/zuwu.zsh b/zuwu.zsh
new file mode 100755
index 0000000..85e2855
--- /dev/null
+++ b/zuwu.zsh
@@ -0,0 +1,157 @@
+# zuwu: cute lil zsh microframework thingy
+# ~ memdmp
+
+export _ZUWU_INSTALLED=1;
+
+if ! grep '# The following lines were added by compinstall' ~/.zshrc >/dev/null 2>/dev/null && ! grep 'compinit' ~/.zshrc; then
+ <<EOF >> ~/.zshrc
+# Note: Do not remove the 'The following lines were...' comment!
+# The following lines were added by compinstall
+zstyle ':completion:*' completer _complete _ignored _approximate
+zstyle ':completion:*' format 'Completing %d'
+zstyle ':completion:*' group-name ''
+zstyle ':completion:*' list-colors ''
+zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
+zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]} r:|[._-]=** r:|=** l:|=*' '' '' ''
+zstyle ':compinstall' filename "\$HOME/.zshrc"
+
+autoload -Uz compinit
+compinit
+# End of lines added by compinstall
+EOF
+fi
+if ! grep 'HISTSIZE' ~/.zshrc >/dev/null 2>/dev/null; then
+ <<EOF >>~/.zshrc
+# Lines configured by zsh-newuser-install
+: "\${HISTFILE:="~/.histfile"}"
+: "\${HISTSIZE:="10000"}"
+: "\${SAVEHIST:="10000"}"
+# End of lines configured by zsh-newuser-install
+EOF
+fi
+
+noop() {}
+
+autoload -U up-line-or-beginning-search
+autoload -U down-line-or-beginning-search
+
+reloadopt() {
+ if [[ -f "$HOME/.zshconf" ]]; then
+ if ! [[ -d "$HOME/.config" ]]; then
+ mkdir "$HOME/.config"
+ fi
+ mv "$HOME/.zshconf" "$HOME/.config/zuwu.conf"
+ fi
+ if [[ -f "$HOME/.config/zuwu.conf" ]]; then
+ source "$HOME/.config/zuwu.conf"
+ fi
+
+ __bindkey() {
+ if [[ "$1" != "" ]]; then
+ bindkey "$1" "$2"
+ fi
+ }
+
+ noop "${WILL_SHARE_HISTORY:=false}"
+ noop "${KEYBIND_FORWARD_WORD:="^[[1;5C"}"
+ noop "${KEYBIND_BACKWARD_WORD:="^[[1;5D"}"
+ noop "${DO_AUTOCD:=true}"
+ noop "${DO_ERR_BEEP:=false}"
+ noop "${DO_EXTENDED_BLOB:=true}"
+ noop "${LINE_OR_BEGIN_SEARCH_KEY:=false}"
+ noop "${BINDKEY_KIND:=e}"
+
+ __opt() {
+ if "$1"; then
+ setopt "$2"
+ else
+ unsetopt "$2"
+ fi
+ }
+
+ __opt "$WILL_SHARE_HISTORY" SHARE_HISTORY
+ __bindkey "$KEYBIND_FORWARD_WORD" forward-word
+ __bindkey "$KEYBIND_BACKWARD_WORD" backward-word
+ __opt "$DO_AUTOCD" autocd
+ __opt "$DO_ERR_BEEP" beep
+ __opt "$DO_EXTENDED_BLOB" extendedglob
+ if "$LINE_OR_BEGIN_SEARCH_KEY"; then
+ _bkey() {
+ zle -N "$1"
+ bindkey "$2" "$1"
+ }
+ _bkey "up-line-or-beginning-search" "^[[A" # Up
+ _bkey "down-line-or-beginning-search" "^[[B" # Down
+ else
+ bindkey -r "^[[A"
+ bindkey -r "^[[B"
+ fi
+ bindkey -"$BINDKEY_KIND"
+}
+reloadopt
+
+if grep "\"$HOME" "$HOME/.zshrc"; then
+ sed -i "s|\"$HOME|\"\$HOME|g" "$HOME/.zshrc"
+ # # # # # # # # # # # # # # # # # # # # BUFFER
+ zstyle :compinstall filename "$HOME/.zshrc"
+fi
+
+# Load zgen
+if [[ -d "$HOME/.zgen" ]]; then
+ source "$HOME/.zgen/zgen.zsh"
+ ZGEN=true
+fi
+
+# Utilities
+_each_share_dir() {
+ for sdir in /usr/share /usr/local/share "$HOME/.local/share"; do
+ for arg in "$@"; do
+ echo "$sdir/$arg"
+ done
+ done
+}
+
+# Plugins
+# > ZSH Autosuggestions
+for f in "$(_each_share_dir zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh zsh-autosuggestions/zsh-autosuggestions.zsh)"; do
+ if [[ -f "$f" ]]; then
+ source "$f"
+ break
+ fi
+done
+# > ZSH Syntax Highlighting
+for f in "$(_each_share_dir zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh)"; do
+ if [[ -f "$f" ]]; then
+ source "$f"
+ break
+ fi
+done
+
+# Cute Prompting
+if [[ -f ~/.config/starship.toml ]]; then
+ eval "$(starship init zsh)"
+else
+ _SYS_USER_COLOUR="%F{22}"
+ _SYS_SYSTEM_COLOUR="%B%F{green}"
+ PROMPT="$(echo -n "${_SYS_USER_COLOUR}%n%f%F{7}@%f${_SYS_SYSTEM_COLOUR}%m%f%b%F{7} in %f%B%F{27}%~%f%b\n%B%F{magenta}%(?..%F{red})❯ %f%b")"
+ RPROMPT="%B%F{magenta}%(?..%F{red})%?%f%b"
+fi
+
+# Custom History Handling
+__sethist() {
+ HISTDIR="${HISTDIR:-"$HOME/.zsh_history"}"
+ HISTID="${HISTID:-"default"}"
+ if [[ -f "$HISTDIR" ]]; then
+ mv "$HISTDIR" /tmp/history
+ mkdir "$HISTDIR"
+ mv /tmp/history "$HISTDIR/$HISTID"
+ fi
+ HISTFILE="$HISTDIR/$HISTID"
+ if [[ "$HISTFILE" == "$HISTDIR/" ]]; then
+ HISTID="default"
+ HISTFILE="$HISTDIR/default"
+ fi;
+}
+
+__sethist
+