From 7bab6f2679c40340afa3839f25b32ce3acb3014f Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Thu, 14 May 2026 15:39:14 +0900 Subject: modified zsh/packages.zsh --- ar/.config/zsh/packages.zsh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ar/.config/zsh/packages.zsh b/ar/.config/zsh/packages.zsh index b3931f5..2210ed2 100644 --- a/ar/.config/zsh/packages.zsh +++ b/ar/.config/zsh/packages.zsh @@ -1,20 +1,27 @@ #!/bin/zsh ### --- Packages --- ### +# Value format: " [args...]" +# Most tools use `init` (zoxide/atuin/batman/...); some use `hook` (direnv), +# `activate` (mise), `env` (fnm), etc. — encode it per-package. typeset -A packages packages=( - atuin "--disable-up-arrow" - batman "--export-env" - zoxide "--cmd cd --hook prompt" - tmuxdbussync "" + atuin "init --disable-up-arrow" + batman "init --export-env" + direnv "hook" + zoxide "init --cmd cd --hook prompt" + tmuxdbussync "init" ) ### --- Eval Function --- ### eval_packages() { for package in ${(k)packages}; do if command -v "$package" >/dev/null; then - local args=(${(s: :)packages[$package]}) - [[ ${#args[@]} -gt 0 ]] && eval "$($package init zsh ${args[@]})" || eval "$($package init zsh)" + local parts=(${(s: :)packages[$package]}) + (( ${#parts[@]} > 0 )) || continue + local subcmd=${parts[1]} + local args=(${parts[2,-1]}) + eval "$($package $subcmd zsh ${args[@]})" fi done } -- cgit v1.2.3