mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
214 lines
6.2 KiB
Bash
214 lines
6.2 KiB
Bash
# Clear terminal
|
||
# clear
|
||
# cd ~
|
||
|
||
# Flex on ubuntu users
|
||
fastfetch
|
||
# pfetch
|
||
|
||
# Options
|
||
# setopt correct # Auto correct mistakes
|
||
setopt extendedglob # Extended globaling. Allows using regular expressions with *
|
||
setopt nocaseglob # Case insensative globbing
|
||
setopt numericglobsort # Sort filenames numeracally when it makse sense
|
||
setopt nobeep # No beep
|
||
setopt appendhistory # Immediately append history instead of overwriting
|
||
setopt histignorealldups # If a new command is a duplicate, remove older one
|
||
setopt autocd # If only directory path is entered, cd there
|
||
setopt inc_append_history # Save commands are addded to the history immediately
|
||
setopt histignorespace # Don't save commands that start with space
|
||
|
||
autoload -U select-word-style
|
||
|
||
|
||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case sensetive TAB completions
|
||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors fr dirs/files/etc)
|
||
zstyle ':completion:*' rehash true # Automaticly find new executables in path
|
||
# Speed up completions
|
||
zstyle ':completion:*' accept-exact '*(N)'
|
||
zstyle ':completion:*' use-cache on
|
||
zstyle ':completion:*' cache-path ~/.config/zsh/cache
|
||
zstyle ':completion:*' menu select
|
||
|
||
HISTFILE=~/.config/zsh/.zshistory
|
||
HISTSIZE=10000
|
||
SAVEHIST=10000
|
||
WORDCHARS=${WORDCHARS//\/[&.;]} # Don't consider certain part of the word
|
||
|
||
|
||
# theme/plugins
|
||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||
source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh
|
||
zmodload zsh/terminfo
|
||
|
||
|
||
# Keybindings
|
||
bindkey -e
|
||
bindkey -v
|
||
export KEYTIMEOUT=1
|
||
|
||
# Navigate words with CTRL+ARROW keys
|
||
bindkey '^[Oc' forward-word #
|
||
bindkey '^[Od' backward-word #
|
||
bindkey '^[[1;5C' forward-word #
|
||
bindkey '^[[1;5D' backward-word #
|
||
bindkey '^H' backward-kill-word # delete previous word with CTRL+BACKSPACE
|
||
bindkey '^[[Z' undo # SHIFT+TAB undo last action
|
||
bindkey "^[[3~" delete-char
|
||
|
||
bindkey '^[[A' history-substring-search-up
|
||
bindkey '^[[B' history-substring-search-down
|
||
|
||
# Change cursor shape for different vi modes.
|
||
function zle-keymap-select {
|
||
if [[ ${KEYMAP} == vicmd ]] ||
|
||
[[ $1 = 'block' ]]; then
|
||
echo -ne '\e[1 q'
|
||
elif [[ ${KEYMAP} == main ]] ||
|
||
[[ ${KEYMAP} == viins ]] ||
|
||
[[ ${KEYMAP} = '' ]] ||
|
||
[[ $1 = 'beam' ]]; then
|
||
echo -ne '\e[5 q'
|
||
fi
|
||
}
|
||
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.
|
||
|
||
|
||
function cd() {
|
||
new_directory="$*";
|
||
if [ $# -eq 0 ]; then
|
||
new_directory=${HOME};
|
||
fi;
|
||
builtin cd "${new_directory}" && exa -a --icons --group-directories-first
|
||
}
|
||
|
||
# Use lf to switch directories and bind it to ctrl-o
|
||
lfcd () {
|
||
tmp="$(mktemp)"
|
||
lfrun -last-dir-path="$tmp" "$@"
|
||
if [ -f "$tmp" ]; then
|
||
dir="$(cat "$tmp")"
|
||
rm -f "$tmp" >/dev/null
|
||
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
|
||
fi
|
||
}
|
||
|
||
bindkey -s '^o' 'lfcd\n'
|
||
|
||
# Aliases
|
||
alias cp='cp -iv' # Confirm before overwriting something
|
||
alias mv="mv -iv"
|
||
alias rm="rm -vI"
|
||
alias mkdir="mkdir -pv"
|
||
alias df='df -h' # Human-readable sizes
|
||
alias free='free -m' # Show sizes in MB
|
||
alias gitu='git add . && git commit && git push'
|
||
alias ls='exa -a --icons --group-directories-first'
|
||
alias lf='lfrun'
|
||
alias v='nvim'
|
||
alias dv='doas nvim'
|
||
alias matrix='unimatrix -s 95'
|
||
alias p='sudo pacman'
|
||
alias battery='acpi'
|
||
alias airpods='bluetoothctl connect C8:B1:CD:E0:14:4F'
|
||
alias weather='curl wttr.in/'
|
||
alias ww="nvim ~/vimwiki/index.wiki"
|
||
alias py="python"
|
||
alias grep="grep --color=auto"
|
||
alias diff="diff --color=auto"
|
||
alias ip="ip -color=auto"
|
||
alias grep="rg"
|
||
alias code="vscodium"
|
||
|
||
# Themeing
|
||
autoload -U compinit colors zcalc
|
||
compinit -d
|
||
colors
|
||
|
||
|
||
autoload -U promptinit; promptinit
|
||
prompt spaceship
|
||
|
||
# PROMPT
|
||
SPACESHIP_PROMPT_ADD_NEWLINE=false
|
||
SPACESHIP_PROMPT_SEPARATE_LINE=false
|
||
SPACESHIP_CHAR_SYMBOL="❯"
|
||
SPACESHIP_CHAR_SUFFIX=" "
|
||
# TIME
|
||
SPACESHIP_TIME_SHOW=false
|
||
SPACESHIP_EXEC_TIME_SHOW=false
|
||
# USER
|
||
SPACESHIP_USER_SHOW=false
|
||
# HOST
|
||
SPACESHIP_HOST_SHOW=false
|
||
SPACESHIP_HOST_PREFIX="at "
|
||
SPACESHIP_HOST_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"
|
||
SPACESHIP_HOST_COLOR="green"
|
||
# DIR
|
||
SPACESHIP_DIR_SHOW=true
|
||
SPACESHIP_DIR_PREFIX="in "
|
||
SPACESHIP_DIR_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"
|
||
SPACESHIP_DIR_TRUNC=3
|
||
SPACESHIP_DIR_COLOR="cyan"
|
||
# GIT
|
||
SPACESHIP_GIT_SHOW=true
|
||
SPACESHIP_GIT_PREFIX="on "
|
||
SPACESHIP_GIT_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"
|
||
SPACESHIP_GIT_SYMBOL=" "
|
||
# GIT BRANCH
|
||
SPACESHIP_GIT_BRANCH_SHOW=true
|
||
SPACESHIP_GIT_BRANCH_PREFIX="$SPACESHIP_GIT_SYMBOL"
|
||
SPACESHIP_GIT_BRANCH_SUFFIX=""
|
||
SPACESHIP_GIT_BRANCH_COLOR="magenta"
|
||
# GIT STATUS
|
||
SPACESHIP_GIT_STATUS_SHOW=true
|
||
SPACESHIP_GIT_STATUS_PREFIX=" ["
|
||
SPACESHIP_GIT_STATUS_SUFFIX="]"
|
||
SPACESHIP_GIT_STATUS_COLOR="red"
|
||
SPACESHIP_GIT_STATUS_UNTRACKED="?"
|
||
SPACESHIP_GIT_STATUS_ADDED="+"
|
||
SPACESHIP_GIT_STATUS_MODIFIED="!"
|
||
SPACESHIP_GIT_STATUS_RENAMED="»"
|
||
SPACESHIP_GIT_STATUS_DELETED="✘"
|
||
SPACESHIP_GIT_STATUS_STASHED="$"
|
||
SPACESHIP_GIT_STATUS_UNMERGED="="
|
||
SPACESHIP_GIT_STATUS_AHEAD="⇡"
|
||
SPACESHIP_GIT_STATUS_BEHIND="⇣"
|
||
SPACESHIP_GIT_STATUS_DIVERGED="⇕"
|
||
|
||
SPACESHIP_NODE_SHOW=false
|
||
SPACESHIP_ELM_SHOW=false
|
||
SPACESHIP_ELIXIR_SHOW=false
|
||
SPACESHIP_RUBY_SHOW=false
|
||
SPACESHIP_XCODE_SHOW_LOCAL=false
|
||
SPACESHIP_SWIFT_SHOW_LOCAL=false
|
||
SPACESHIP_GOLANG_SHOW=false
|
||
SPACESHIP_PHP_SHOW=false
|
||
SPACESHIP_RUST_SHOW=true
|
||
SPACESHIP_HASKELL_SHOW=false
|
||
SPACESHIP_JULIA_SHOW=false
|
||
SPACESHIP_DOTNET_SHOW=false
|
||
SPACESHIP_EMBER_SHOW=false
|
||
SPACESHIP_KUBECTL_VERSION_SHOW=false
|
||
SPACESHIP_KUBECONTEXT_SHOW=false
|
||
SPACESHIP_GRADLE_SHOW=false
|
||
SPACESHIP_MAVEN_SHOW=false
|
||
SPACESHIP_TERRAFORM_SHOW=false
|
||
SPACESHIP_JOBS_SHOW=false
|
||
SPACESHIP_AWS_SHOW=false
|
||
SPACESHIP_GCLOUD_SHOW=false
|
||
SPACESHIP_DOCKER_SHOW=true
|
||
SPACESHIP_VENV_SHOW=true
|
||
SPACESHIP_CONDA_SHOW=false
|
||
SPACESHIP_PYENV_SHOW=true
|
||
SPACESHIP_VI_MODE_SHOW=false
|
||
|