summaryrefslogtreecommitdiff
path: root/ar/.config
diff options
context:
space:
mode:
Diffstat (limited to 'ar/.config')
-rw-r--r--ar/.config/zsh/packages.zsh19
1 files 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: "<subcmd> [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
}