From c8f65d17053062f711999ba72eb7d701cc8b24c0 Mon Sep 17 00:00:00 2001 From: tiyn Date: Sat, 28 Feb 2026 13:30:16 +0100 Subject: [PATCH] zsh: added keifu fix --- .config/zsh/.zshrc | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 296a74b..7ea937c 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -85,28 +85,43 @@ function +vi-git-stash() { # CUSTOM WIDGETS # ################## -_git_fix_main_master() { +_git_intercept() { + + # keifu instead of git log --graph + if [[ "$BUFFER" =~ ^git[[:space:]]+log.*--graph ]]; then + BUFFER="keifu" + fi + + if [[ "$BUFFER" =~ ^config[[:space:]]+log.*--graph ]]; then + BUFFER="(cd $HOME/.dotfiles && keifu)" + fi + + # keifu instead of config log --graph + if [[ "$BUFFER" =~ ^config[[:space:]]+log.*--graph ]]; then + local gitdir="$HOME/.dotfiles" + local worktree="$HOME" + BUFFER="GIT_DIR=$gitdir GIT_WORK_TREE=$worktree keifu" + fi + + # swap main and master Fix if [[ $BUFFER == git\ * ]]; then local has_main=0 local has_master=0 git rev-parse --verify main >/dev/null 2>&1 && has_main=1 git rev-parse --verify master >/dev/null 2>&1 && has_master=1 if [[ $has_main -eq 1 && $has_master -eq 0 ]]; then - if [[ $BUFFER == *" master"* ]]; then - BUFFER=${BUFFER//" master"/" main"} - fi + BUFFER=${BUFFER//" master"/" main"} fi if [[ $has_master -eq 1 && $has_main -eq 0 ]]; then - if [[ $BUFFER == *" main"* ]]; then - BUFFER=${BUFFER//" main"/" master"} - fi + BUFFER=${BUFFER//" main"/" master"} fi fi + zle accept-line } -zle -N _git_fix_main_master -bindkey "^M" _git_fix_main_master +zle -N _git_intercept +bindkey "^M" _git_intercept ######### # STYLE #