From 9168cbfbcc98e59414f6efb9aa04a2c64176a81b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Apr 2026 13:06:36 +0000 Subject: [PATCH 1/5] refactor(zsh): reorganize config into core/, tools/, functions/ directories - core/path.zsh: PATH management (consolidated from path.zsh + dev-tools.zsh) - core/env.zsh: environment variables (EDITOR, NI_*, LG_CONFIG_FILE) - tools/proto.zsh, docker.zsh, fzf.zsh, vite-plus.zsh: per-tool activation - functions/git.zsh, notify.zsh: utility functions split by domain https://claude.ai/code/session_01GkwneqBX3TWvXCVmAsAU33 --- home/dot_zsh.d/core/env.zsh | 10 +++++++++ home/dot_zsh.d/{ => core}/path.zsh | 0 home/dot_zsh.d/dev-tools.zsh | 22 ------------------- .../{utils.zsh => functions/git.zsh} | 12 ---------- home/dot_zsh.d/functions/notify.zsh | 11 ++++++++++ home/dot_zsh.d/tools/docker.zsh | 2 ++ home/dot_zsh.d/{ => tools}/fzf.zsh | 0 home/dot_zsh.d/tools/proto.zsh | 2 ++ home/dot_zsh.d/tools/vite-plus.zsh | 2 ++ home/dot_zshrc | 21 +++++++++++++----- 10 files changed, 42 insertions(+), 40 deletions(-) create mode 100644 home/dot_zsh.d/core/env.zsh rename home/dot_zsh.d/{ => core}/path.zsh (100%) delete mode 100644 home/dot_zsh.d/dev-tools.zsh rename home/dot_zsh.d/{utils.zsh => functions/git.zsh} (68%) create mode 100644 home/dot_zsh.d/functions/notify.zsh create mode 100644 home/dot_zsh.d/tools/docker.zsh rename home/dot_zsh.d/{ => tools}/fzf.zsh (100%) create mode 100644 home/dot_zsh.d/tools/proto.zsh create mode 100644 home/dot_zsh.d/tools/vite-plus.zsh diff --git a/home/dot_zsh.d/core/env.zsh b/home/dot_zsh.d/core/env.zsh new file mode 100644 index 0000000..85fe457 --- /dev/null +++ b/home/dot_zsh.d/core/env.zsh @@ -0,0 +1,10 @@ +# Code editor +export VISUAL="cursor" +export EDITOR="hx" + +# ni - package manager +export NI_DEFAULT_AGENT="pnpm" +export NI_GLOBAL_AGENT="pnpm" + +# Lazygit +export LG_CONFIG_FILE="$HOME/.config/lazygit/config.yml" diff --git a/home/dot_zsh.d/path.zsh b/home/dot_zsh.d/core/path.zsh similarity index 100% rename from home/dot_zsh.d/path.zsh rename to home/dot_zsh.d/core/path.zsh diff --git a/home/dot_zsh.d/dev-tools.zsh b/home/dot_zsh.d/dev-tools.zsh deleted file mode 100644 index 02b0315..0000000 --- a/home/dot_zsh.d/dev-tools.zsh +++ /dev/null @@ -1,22 +0,0 @@ -# proto - version manager activation -eval "$(proto activate zsh --no-shim)" -export PROTO_AUTO_INSTALL=true -# Global npm packages PATH -export PATH="$PROTO_HOME/tools/node/globals/bin:$PATH" - -# Docker Desktop (optional - only present when Docker Desktop is installed) -[[ -f "$HOME/.docker/init-zsh.sh" ]] && source "$HOME/.docker/init-zsh.sh" - -# ni - package manager -export NI_DEFAULT_AGENT="pnpm" -export NI_GLOBAL_AGENT="pnpm" - -# Code editor -export VISUAL="cursor" -export EDITOR="hx" - -# Lazygit -export LG_CONFIG_FILE="$HOME/.config/lazygit/config.yml" - -# Vite+ bin (https://viteplus.dev) -. "$HOME/.vite-plus/env" diff --git a/home/dot_zsh.d/utils.zsh b/home/dot_zsh.d/functions/git.zsh similarity index 68% rename from home/dot_zsh.d/utils.zsh rename to home/dot_zsh.d/functions/git.zsh index 6a76d0e..1582eb0 100644 --- a/home/dot_zsh.d/utils.zsh +++ b/home/dot_zsh.d/functions/git.zsh @@ -14,15 +14,3 @@ gwn() { fi git gtr new "$branch_name" --from "origin/$default_branch" && cd "$(git gtr go "$branch_name")" } - -# 長時間コマンドの完了通知 -notify-after() { - "$@" - local exit_code=$? - if [ $exit_code -eq 0 ]; then - cmux notify --title "✓ Command Complete" --body "$1" - else - cmux notify --title "✗ Command Failed" --body "$1 (exit $exit_code)" - fi - return $exit_code -} diff --git a/home/dot_zsh.d/functions/notify.zsh b/home/dot_zsh.d/functions/notify.zsh new file mode 100644 index 0000000..051a8b5 --- /dev/null +++ b/home/dot_zsh.d/functions/notify.zsh @@ -0,0 +1,11 @@ +# 長時間コマンドの完了通知 +notify-after() { + "$@" + local exit_code=$? + if [ $exit_code -eq 0 ]; then + cmux notify --title "✓ Command Complete" --body "$1" + else + cmux notify --title "✗ Command Failed" --body "$1 (exit $exit_code)" + fi + return $exit_code +} diff --git a/home/dot_zsh.d/tools/docker.zsh b/home/dot_zsh.d/tools/docker.zsh new file mode 100644 index 0000000..dc0cb04 --- /dev/null +++ b/home/dot_zsh.d/tools/docker.zsh @@ -0,0 +1,2 @@ +# Docker Desktop (optional - only present when Docker Desktop is installed) +[[ -f "$HOME/.docker/init-zsh.sh" ]] && source "$HOME/.docker/init-zsh.sh" diff --git a/home/dot_zsh.d/fzf.zsh b/home/dot_zsh.d/tools/fzf.zsh similarity index 100% rename from home/dot_zsh.d/fzf.zsh rename to home/dot_zsh.d/tools/fzf.zsh diff --git a/home/dot_zsh.d/tools/proto.zsh b/home/dot_zsh.d/tools/proto.zsh new file mode 100644 index 0000000..a4c9264 --- /dev/null +++ b/home/dot_zsh.d/tools/proto.zsh @@ -0,0 +1,2 @@ +eval "$(proto activate zsh --no-shim)" +export PROTO_AUTO_INSTALL=true diff --git a/home/dot_zsh.d/tools/vite-plus.zsh b/home/dot_zsh.d/tools/vite-plus.zsh new file mode 100644 index 0000000..6258d07 --- /dev/null +++ b/home/dot_zsh.d/tools/vite-plus.zsh @@ -0,0 +1,2 @@ +# Vite+ bin (https://viteplus.dev) +[[ -f "$HOME/.vite-plus/env" ]] && source "$HOME/.vite-plus/env" diff --git a/home/dot_zshrc b/home/dot_zshrc index 2e8a67d..c86a5b6 100644 --- a/home/dot_zshrc +++ b/home/dot_zshrc @@ -2,16 +2,25 @@ ZSH_CONFIG_DIR="${HOME}/.zsh.d" -# 各設定ファイルを読み込み -source "${ZSH_CONFIG_DIR}/path.zsh" +# Core +source "${ZSH_CONFIG_DIR}/core/path.zsh" +source "${ZSH_CONFIG_DIR}/core/env.zsh" fpath+=(${ZSH_CONFIG_DIR}/completions) -source "${ZSH_CONFIG_DIR}/dev-tools.zsh" -source "${ZSH_CONFIG_DIR}/fzf.zsh" +# Tools +source "${ZSH_CONFIG_DIR}/tools/proto.zsh" +source "${ZSH_CONFIG_DIR}/tools/docker.zsh" +source "${ZSH_CONFIG_DIR}/tools/fzf.zsh" +source "${ZSH_CONFIG_DIR}/tools/vite-plus.zsh" + +# Machine-local overrides [ -f "${ZSH_CONFIG_DIR}/.local.zsh" ] && source "${ZSH_CONFIG_DIR}/.local.zsh" -# Sheldon +# Plugins (Sheldon) eval "$(sheldon source)" -source "${ZSH_CONFIG_DIR}/utils.zsh" +# Functions +for f in "${ZSH_CONFIG_DIR}/functions/"*.zsh; do + source "$f" +done From de4235e06f4fa03ea72ecccedad7eea42b8bdfbf Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Apr 2026 13:13:30 +0000 Subject: [PATCH 2/5] simplify(zsh): remove redundant comments, fix glob null safety and bracket style - Remove self-documenting comments from env.zsh, docker.zsh, vite-plus.zsh - Use (N) glob qualifier in functions loop to handle empty directory safely - Standardize to [[ ]] throughout (was mixing [ ] for .local.zsh) https://claude.ai/code/session_01GkwneqBX3TWvXCVmAsAU33 --- home/dot_zsh.d/core/env.zsh | 3 --- home/dot_zsh.d/tools/docker.zsh | 1 - home/dot_zsh.d/tools/vite-plus.zsh | 1 - home/dot_zshrc | 4 ++-- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/home/dot_zsh.d/core/env.zsh b/home/dot_zsh.d/core/env.zsh index 85fe457..b4cc76a 100644 --- a/home/dot_zsh.d/core/env.zsh +++ b/home/dot_zsh.d/core/env.zsh @@ -1,10 +1,7 @@ -# Code editor export VISUAL="cursor" export EDITOR="hx" -# ni - package manager export NI_DEFAULT_AGENT="pnpm" export NI_GLOBAL_AGENT="pnpm" -# Lazygit export LG_CONFIG_FILE="$HOME/.config/lazygit/config.yml" diff --git a/home/dot_zsh.d/tools/docker.zsh b/home/dot_zsh.d/tools/docker.zsh index dc0cb04..98bcdf8 100644 --- a/home/dot_zsh.d/tools/docker.zsh +++ b/home/dot_zsh.d/tools/docker.zsh @@ -1,2 +1 @@ -# Docker Desktop (optional - only present when Docker Desktop is installed) [[ -f "$HOME/.docker/init-zsh.sh" ]] && source "$HOME/.docker/init-zsh.sh" diff --git a/home/dot_zsh.d/tools/vite-plus.zsh b/home/dot_zsh.d/tools/vite-plus.zsh index 6258d07..f375c63 100644 --- a/home/dot_zsh.d/tools/vite-plus.zsh +++ b/home/dot_zsh.d/tools/vite-plus.zsh @@ -1,2 +1 @@ -# Vite+ bin (https://viteplus.dev) [[ -f "$HOME/.vite-plus/env" ]] && source "$HOME/.vite-plus/env" diff --git a/home/dot_zshrc b/home/dot_zshrc index c86a5b6..a727b43 100644 --- a/home/dot_zshrc +++ b/home/dot_zshrc @@ -15,12 +15,12 @@ source "${ZSH_CONFIG_DIR}/tools/fzf.zsh" source "${ZSH_CONFIG_DIR}/tools/vite-plus.zsh" # Machine-local overrides -[ -f "${ZSH_CONFIG_DIR}/.local.zsh" ] && source "${ZSH_CONFIG_DIR}/.local.zsh" +[[ -f "${ZSH_CONFIG_DIR}/.local.zsh" ]] && source "${ZSH_CONFIG_DIR}/.local.zsh" # Plugins (Sheldon) eval "$(sheldon source)" # Functions -for f in "${ZSH_CONFIG_DIR}/functions/"*.zsh; do +for f in "${ZSH_CONFIG_DIR}/functions/"*.zsh(N); do source "$f" done From 0515caf73ed3bbdeb646a68d9f60fb560217fdd1 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Apr 2026 13:22:26 +0000 Subject: [PATCH 3/5] chore(zsh): add chezmoi remove files for deleted flat configs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensures chezmoi apply cleans up old files from ~/.zsh.d/: - remove_path.zsh → deletes ~/.zsh.d/path.zsh - remove_dev-tools.zsh → deletes ~/.zsh.d/dev-tools.zsh - remove_fzf.zsh → deletes ~/.zsh.d/fzf.zsh - remove_utils.zsh → deletes ~/.zsh.d/utils.zsh https://claude.ai/code/session_01GkwneqBX3TWvXCVmAsAU33 --- home/dot_zsh.d/remove_dev-tools.zsh | 0 home/dot_zsh.d/remove_fzf.zsh | 0 home/dot_zsh.d/remove_path.zsh | 0 home/dot_zsh.d/remove_utils.zsh | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 home/dot_zsh.d/remove_dev-tools.zsh create mode 100644 home/dot_zsh.d/remove_fzf.zsh create mode 100644 home/dot_zsh.d/remove_path.zsh create mode 100644 home/dot_zsh.d/remove_utils.zsh diff --git a/home/dot_zsh.d/remove_dev-tools.zsh b/home/dot_zsh.d/remove_dev-tools.zsh new file mode 100644 index 0000000..e69de29 diff --git a/home/dot_zsh.d/remove_fzf.zsh b/home/dot_zsh.d/remove_fzf.zsh new file mode 100644 index 0000000..e69de29 diff --git a/home/dot_zsh.d/remove_path.zsh b/home/dot_zsh.d/remove_path.zsh new file mode 100644 index 0000000..e69de29 diff --git a/home/dot_zsh.d/remove_utils.zsh b/home/dot_zsh.d/remove_utils.zsh new file mode 100644 index 0000000..e69de29 From 5d47534d63ce91329c88c86cd1b8edab1b28d988 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Apr 2026 13:23:21 +0000 Subject: [PATCH 4/5] chore(zsh): replace remove_ files with .chezmoiremove https://claude.ai/code/session_01GkwneqBX3TWvXCVmAsAU33 --- home/dot_zsh.d/.chezmoiremove | 4 ++++ home/dot_zsh.d/remove_dev-tools.zsh | 0 home/dot_zsh.d/remove_fzf.zsh | 0 home/dot_zsh.d/remove_path.zsh | 0 home/dot_zsh.d/remove_utils.zsh | 0 5 files changed, 4 insertions(+) create mode 100644 home/dot_zsh.d/.chezmoiremove delete mode 100644 home/dot_zsh.d/remove_dev-tools.zsh delete mode 100644 home/dot_zsh.d/remove_fzf.zsh delete mode 100644 home/dot_zsh.d/remove_path.zsh delete mode 100644 home/dot_zsh.d/remove_utils.zsh diff --git a/home/dot_zsh.d/.chezmoiremove b/home/dot_zsh.d/.chezmoiremove new file mode 100644 index 0000000..2951f57 --- /dev/null +++ b/home/dot_zsh.d/.chezmoiremove @@ -0,0 +1,4 @@ +path.zsh +dev-tools.zsh +fzf.zsh +utils.zsh diff --git a/home/dot_zsh.d/remove_dev-tools.zsh b/home/dot_zsh.d/remove_dev-tools.zsh deleted file mode 100644 index e69de29..0000000 diff --git a/home/dot_zsh.d/remove_fzf.zsh b/home/dot_zsh.d/remove_fzf.zsh deleted file mode 100644 index e69de29..0000000 diff --git a/home/dot_zsh.d/remove_path.zsh b/home/dot_zsh.d/remove_path.zsh deleted file mode 100644 index e69de29..0000000 diff --git a/home/dot_zsh.d/remove_utils.zsh b/home/dot_zsh.d/remove_utils.zsh deleted file mode 100644 index e69de29..0000000 From f8ec604b776679509ff2ce4adee53dd507e06d3e Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Apr 2026 13:26:10 +0000 Subject: [PATCH 5/5] fix(notify): use (( )) for numeric check and \$* for full command string - (( exit_code == 0 )) is more robust than [ \$exit_code -eq 0 ] in zsh - \$* shows full command (e.g. "sleep 10") instead of just first arg https://claude.ai/code/session_01GkwneqBX3TWvXCVmAsAU33 --- home/dot_zsh.d/functions/notify.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/home/dot_zsh.d/functions/notify.zsh b/home/dot_zsh.d/functions/notify.zsh index 051a8b5..83a0186 100644 --- a/home/dot_zsh.d/functions/notify.zsh +++ b/home/dot_zsh.d/functions/notify.zsh @@ -2,10 +2,10 @@ notify-after() { "$@" local exit_code=$? - if [ $exit_code -eq 0 ]; then - cmux notify --title "✓ Command Complete" --body "$1" + if (( exit_code == 0 )); then + cmux notify --title "✓ Command Complete" --body "$*" else - cmux notify --title "✗ Command Failed" --body "$1 (exit $exit_code)" + cmux notify --title "✗ Command Failed" --body "$* (exit $exit_code)" fi return $exit_code }