112 lines
3.4 KiB
Bash
112 lines
3.4 KiB
Bash
# Oh My Posh
|
|
#########################################################
|
|
export PATH=$PATH:"$HOME/.local/bin"
|
|
OMP_EXECUTABLE="${XDG_DATA_HOME:-${HOME}/.local}/bin/oh-my-posh"
|
|
[ ! -f $OMP_EXECUTABLE ] && curl -s https://ohmyposh.dev/install.sh | bash -s
|
|
eval "$(oh-my-posh init zsh --config ~/.config/omp.toml)"
|
|
|
|
# Zinit
|
|
#########################################################
|
|
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
|
|
[ ! -d $ZINIT_HOME ] && mkdir -p "$(dirname $ZINIT_HOME)"
|
|
[ ! -d $ZINIT_HOME/.git ] && git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
|
|
source "${ZINIT_HOME}/zinit.zsh"
|
|
|
|
# Core Plugins
|
|
zinit snippet OMZP::command-not-found
|
|
zinit snippet OMZP::colored-man-pages
|
|
zinit light zsh-users/zsh-autosuggestions
|
|
zinit light zdharma-continuum/fast-syntax-highlighting
|
|
|
|
autoload -Uz compinit
|
|
compinit
|
|
|
|
# Basic ZSH
|
|
#########################################################
|
|
|
|
# History
|
|
HISTFILE=~/.histfile
|
|
HISTSIZE=10000
|
|
SAVEHIST=1000
|
|
|
|
# Disable Bell
|
|
unsetopt beep
|
|
|
|
# Keybinding
|
|
bindkey '\e[1;5C' forward-word
|
|
bindkey '\e[1;5D' backward-word
|
|
WORDCHARS="_-" # Define These Characters as Part of "Words"
|
|
|
|
# Application Envs
|
|
#########################################################
|
|
export EDITOR=nvim
|
|
|
|
# GPG
|
|
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
|
|
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
|
fi
|
|
export GPG_TTY=$(tty)
|
|
gpg-connect-agent updatestartuptty /bye >/dev/null
|
|
|
|
zinit snippet OMZP::git
|
|
zinit snippet OMZP::docker-compose
|
|
zinit snippet OMZP::podman
|
|
zinit snippet OMZP::toolbox
|
|
zinit snippet OMZP::rust
|
|
zinit snippet OMZP::composer
|
|
zinit snippet OMZP::symfony6
|
|
|
|
source $HOME/.profile
|
|
|
|
# Install Dependencies
|
|
[ ! -d $VOLTA_HOME ] && curl https://get.volta.sh | bash -s -- --skip-setup && volta install node@lts
|
|
command -v go &>/dev/null || sudo dnf install go
|
|
[ ! -d $RUSTUP_HOME ] && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path -y
|
|
command -v composer &>/dev/null || sudo dnf install composer
|
|
|
|
# Install Scripts
|
|
$HOME/.config/install.sh
|
|
|
|
# Aliases
|
|
#########################################################
|
|
alias edit-nvim-conf="nvim ~/.config/nvim"
|
|
alias edit-zsh-conf="nvim ~/.zshrc"
|
|
alias hist="eval \$(cat $HISTFILE | fzf)"
|
|
alias nano="nvim"
|
|
alias neofetch="fastfetch"
|
|
alias notes="glow $HOME/Dokumente/Notes --all"
|
|
ws() {
|
|
local -A path_icons=(
|
|
["$HOME/Workspace/Learning"]='3, '
|
|
["$HOME/Workspace/School"]='3, '
|
|
["$HOME/Workspace/AdventOfCode"]='3, '
|
|
["$HOME/Workspace/Userscripts"]='3,'
|
|
["$HOME/Workspace/Forgejo"]='3,'
|
|
["$HOME/Workspace"]='2, '
|
|
["$HOME/Downloads"]='2,'
|
|
["$HOME"]='1, '
|
|
)
|
|
|
|
typeset -A display_to_path
|
|
find "$HOME/Workspace" -type d \( -name ".git" -o -name "go.mod" -o -name "Cargo.toml" -o -name "compose.yaml" -o -name "package.json" \) -exec dirname {} \; | sort -u | \
|
|
while IFS= read -r line; do
|
|
display_line="$line"
|
|
best_prio=0
|
|
for path_target entry in "${(@kv)path_icons}"; do
|
|
if [[ $line == $path_target* ]]; then
|
|
IFS=, read -r prio icon <<< "$entry"
|
|
if [[ $prio -gt $best_prio ]]; then
|
|
display_line="$icon${line//$path_target/}"
|
|
best_prio=$prio
|
|
fi
|
|
fi
|
|
done
|
|
display_to_path[$display_line]=$line
|
|
done
|
|
|
|
selected=$display_to_path[$(printf "%s\n" "${(@k)display_to_path}" | fzf)]
|
|
if [[ -n $selected ]]; then
|
|
cd $selected
|
|
fi
|
|
}
|
|
|