94 lines
2.7 KiB
Bash
94 lines
2.7 KiB
Bash
# Enable colors and change prompt:
|
|
case $(tty) in /dev/tty[0-9]*)
|
|
source .cache/wal/colors-tty.sh
|
|
esac
|
|
|
|
autoload -U colors && colors # Load colors
|
|
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[yellow]%}%M %{$fg[yellow]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
|
|
|
|
# OSC-7 escape sequence
|
|
autoload -Uz add-zsh-hook
|
|
function osc7-pwd() {
|
|
emulate -L zsh # also sets localoptions for us
|
|
setopt extendedglob
|
|
local LC_ALL=C
|
|
printf '\e]7;file://%s%s\e\' $HOST ${PWD//(#m)([^@-Za-z&-;_~])/%${(l:2::0:)$(([##16]#MATCH))}}
|
|
}
|
|
|
|
function chpwd-osc7-pwd() {
|
|
(( ZSH_SUBSHELL )) || osc7-pwd
|
|
}
|
|
add-zsh-hook -Uz chpwd chpwd-osc7-pwd
|
|
|
|
setopt autocd # Automatically cd into typed directory.
|
|
stty stop undef # Disable ctrl-s to freeze terminal.
|
|
setopt interactive_comments
|
|
|
|
# Useful options
|
|
setopt correct
|
|
setopt noclobber
|
|
setopt histignoredups
|
|
|
|
# History in cache directory:
|
|
HISTSIZE=10000000
|
|
SAVEHIST=10000000
|
|
HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history"
|
|
|
|
# Basic auto/tab complete:
|
|
setopt auto_list
|
|
autoload -U compinit
|
|
zstyle ':completion:*' menu select
|
|
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
|
zmodload zsh/complist
|
|
compinit
|
|
_comp_options+=(globdots) # Include hidden files.
|
|
|
|
# Completion files: Use XDG dirs
|
|
[ -d "$XDG_CACHE_HOME"/zsh ] || mkdir -p "$XDG_CACHE_HOME"/zsh
|
|
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME"/zsh/zcompcache
|
|
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-$ZSH_VERSION
|
|
|
|
# vi mode
|
|
bindkey -v
|
|
export KEYTIMEOUT=1
|
|
|
|
# Use vim keys in tab complete menu:
|
|
bindkey -M menuselect 'h' vi-backward-char
|
|
bindkey -M menuselect 'k' vi-up-line-or-history
|
|
bindkey -M menuselect 'l' vi-forward-char
|
|
bindkey -M menuselect 'j' vi-down-line-or-history
|
|
bindkey -v '^?' backward-delete-char
|
|
|
|
# Change cursor shape for different vi modes.
|
|
function zle-keymap-select () {
|
|
case $KEYMAP in
|
|
vicmd) echo -ne '\e[1 q';; # block
|
|
viins|main) echo -ne '\e[5 q';; # beam
|
|
esac
|
|
}
|
|
zle -N zle-keymap-select
|
|
zle-line-init() {
|
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
|
echo -ne "\e[5 q"
|
|
}
|
|
zle -N zle-line-init
|
|
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
|
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
|
|
|
|
# Aliases
|
|
alias sudo='doas'
|
|
alias neofetch='fastfetch'
|
|
alias yay='paru'
|
|
alias docker='podman'
|
|
alias ls='ls -lah'
|
|
alias codium='codium --ozone-platform=wayland'
|
|
alias cmatrix='cmatrix -bcm -u 7'
|
|
alias stmps='stmps -mpris'
|
|
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
|
|
alias vi='busybox vi'
|
|
|
|
# Commands
|
|
fastfetch
|
|
|
|
# Load syntax highlighting; should be last.
|
|
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
|