feat(config): integrate iris and streamline keybindings

This commit is contained in:
Prad Nukala committed 2026-10-05 09:15:20 -04:00
1 parent 43dfe48848
commit 0692ae332b
15 files changed
+268 -137

No files matched your search

+32 -7
View File
@@ -4,7 +4,9 @@
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=10000
setopt SHARE_HISTORY HIST_IGNORE_DUPS
# HIST_IGNORE_SPACE: a leading space keeps a line out of history, as in fish
# (the ctrl-z binding's hidden ` __jobs_bind_fg` relies on it).
setopt SHARE_HISTORY HIST_IGNORE_DUPS HIST_IGNORE_SPACE
# Completion
autoload -Uz compinit && compinit
@@ -20,6 +22,10 @@ export GOPATH="$HOME/.local/share/go"
export GOBIN="$GOPATH/bin"
case ":$PATH:" in *":$GOBIN:"*) ;; *) PATH="$GOBIN:$PATH" ;; esac
# mise: tool shims and env (GOROOT above comes from it), as fish's
# conf.d/40-tools.fish does for every fish.
command -v mise >/dev/null 2>&1 && eval "$(mise activate zsh)"
# Repo roots (ghq) — same as fish's conf.d/10-env.fish; the ghq-repos tv
# cable (ctrl-o) lists this root.
export GHQ_ROOT="$HOME/Code"
@@ -65,10 +71,33 @@ command -v suv >/dev/null 2>&1 && eval "$(suv init zsh)"
# Prompt — starship, consistent with fish
command -v starship >/dev/null 2>&1 && eval "$(starship init zsh)"
# television: ctrl-t smart autocomplete (its ctrl-r is taken over by atuin
# below, as in fish)
# Material You terminal colors generated from the wallpaper (quickshell),
# replayed like fish's conf.d/40-tools.fish.
_qs_seq="$HOME/.local/state/quickshell/user/generated/terminal/sequences.txt"
[ -f "$_qs_seq" ] && cat "$_qs_seq"
unset _qs_seq
# zoxide: `z` / `zi`, plus the cd wrapper's fallback (functions/cd.zsh).
command -v zoxide >/dev/null 2>&1 && eval "$(zoxide init zsh)"
# television: ctrl-t smart autocomplete (its ctrl-r is shadowed by iris's
# mode toggle, as in fish)
command -v tv >/dev/null 2>&1 && eval "$(tv init zsh)"
# iris (~/.config/iris/config.toml): inline completion menu, same as fish.
# The init's first half `exec`s iris from an interactive zsh on a tty; iris
# starts a second zsh in its pty, which runs this file again, and there the
# second half installs the line/cwd/command hooks. `IRIS_RESCUE=1 zsh` skips
# it. Placed before syntax highlighting, which must stay last.
if command -v iris >/dev/null 2>&1; then
eval "$(iris init zsh)"
# Inside iris: PROMPT_SP pads the line with spaces + CR before each prompt
# (the inverse `%` partial-line marker). iris reads that echo as a typed
# space, so every prompt opened with a stale query and a stray first
# suggestion (`4channels`) got inserted on the next key.
[[ -n $IRIS_PID ]] && unsetopt PROMPT_SP
fi
# Fish-style syntax highlighting (zsh-users/zsh-syntax-highlighting).
# MUST stay last in .zshrc: it wraps every zle widget defined above
# (keybinds, compinit, suv/starship hooks).
@@ -80,10 +109,6 @@ for _zsh_hl in \
done
unset _zsh_hl
. "$HOME/.atuin/bin/env"
eval "$(atuin init zsh)"
# >>> termium >>>
case ":$PATH:" in *:'/home/prad/.local/bin':*) ;; *) export PATH='/home/prad/.local/bin':"$PATH" ;; esac
# <<< termium <<<