configs-all 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/.claude/settings.local.json +3 -0
  2. package/CLAUDE.md +94 -0
  3. package/README.md +424 -0
  4. package/TERMINAL_SHORTCUTS.md +96 -0
  5. package/WINDOWS_COMPATIBILITY.md +85 -0
  6. package/WINDOWS_MCP_SETUP.md +133 -0
  7. package/apps/RectangleConfig.plist +0 -0
  8. package/apps/Synergy +84 -0
  9. package/apps/iStat Menus Settings.ismp7 +0 -0
  10. package/claude/CLAUDE.md +228 -0
  11. package/claude/commands/changelog.md +36 -0
  12. package/claude/commands/commit.md +29 -0
  13. package/claude/commands/context.md +112 -0
  14. package/claude/commands/dash.md +37 -0
  15. package/claude/commands/deploy-check.md +37 -0
  16. package/claude/commands/deps.md +26 -0
  17. package/claude/commands/duplo.md +56 -0
  18. package/claude/commands/explain.md +43 -0
  19. package/claude/commands/fix-and-test.md +46 -0
  20. package/claude/commands/game-debug.md +66 -0
  21. package/claude/commands/games.md +53 -0
  22. package/claude/commands/go.md +147 -0
  23. package/claude/commands/guard.md +102 -0
  24. package/claude/commands/handoff.md +66 -0
  25. package/claude/commands/incident.md +144 -0
  26. package/claude/commands/init.md +78 -0
  27. package/claude/commands/k8s-debug.md +31 -0
  28. package/claude/commands/lint.md +27 -0
  29. package/claude/commands/merge-all.md +115 -0
  30. package/claude/commands/merge.md +129 -0
  31. package/claude/commands/mikpc.md +54 -0
  32. package/claude/commands/morning.md +72 -0
  33. package/claude/commands/partymode.md +105 -0
  34. package/claude/commands/plans.md +88 -0
  35. package/claude/commands/pr.md +41 -0
  36. package/claude/commands/prep.md +132 -0
  37. package/claude/commands/push-sync.md +82 -0
  38. package/claude/commands/push.md +34 -0
  39. package/claude/commands/research.md +73 -0
  40. package/claude/commands/retro.md +95 -0
  41. package/claude/commands/review-pr.md +96 -0
  42. package/claude/commands/review.md +41 -0
  43. package/claude/commands/scaffold-agent.md +45 -0
  44. package/claude/commands/setup.md +92 -0
  45. package/claude/commands/ship-prod.md +97 -0
  46. package/claude/commands/ship.md +82 -0
  47. package/claude/commands/simplify.md +42 -0
  48. package/claude/commands/spike.md +110 -0
  49. package/claude/commands/status.md +37 -0
  50. package/claude/commands/sync.md +72 -0
  51. package/claude/commands/test.md +29 -0
  52. package/claude/commands/triage.md +72 -0
  53. package/claude/desktop/claude_desktop_config.json +9 -0
  54. package/claude/hooks.json +15 -0
  55. package/claude/mcp-servers.duplo.json +8 -0
  56. package/claude/mcp-servers.json +62 -0
  57. package/claude/scripts/psdebug.ps1 +7 -0
  58. package/claude/settings.json +38 -0
  59. package/claude/settings.local.json +4 -0
  60. package/claude/statusline-command.sh +94 -0
  61. package/claude/templates/CLAUDE-k8s-devops.md +58 -0
  62. package/claude/templates/CLAUDE-python-agent.md +47 -0
  63. package/claude/templates/CLAUDE-typescript-frontend.md +50 -0
  64. package/docker/ai-stack/docker-compose.yml +76 -0
  65. package/docker/ai-stack/searxng/limiter.toml +3 -0
  66. package/docker/ai-stack/searxng/settings.yml +39 -0
  67. package/docker/cli/config.json.template +15 -0
  68. package/docker/cli/daemon.json +9 -0
  69. package/docker/cli/features.json +3 -0
  70. package/docker/mcp/catalog.json +9 -0
  71. package/docker/mcp/catalogs/docker-mcp.yaml +15107 -0
  72. package/docker/mcp/config.yaml +0 -0
  73. package/docker/mcp/registry.yaml +37 -0
  74. package/docker/mcp/tools.yaml +0 -0
  75. package/docs/context/.gitkeep +0 -0
  76. package/docs/context/2026-03-02-configs.md +142 -0
  77. package/docs/handoff/.gitkeep +0 -0
  78. package/docs/incidents/.gitkeep +0 -0
  79. package/docs/plans/2026-02-28-autonomous-command-suite-design.md +250 -0
  80. package/docs/plans/2026-02-28-autonomous-command-suite.md +682 -0
  81. package/docs/plans/2026-03-01-ai-stack-split-architecture.md +72 -0
  82. package/docs/plans/2026-03-02-ai-stack-expansion.md +33 -0
  83. package/docs/plans/2026-03-02-merge-commands-design.md +58 -0
  84. package/docs/plans/2026-03-02-merge-commands.md +354 -0
  85. package/docs/research/.gitkeep +0 -0
  86. package/docs/research/2026-03-02-configs-repo-architecture.md +152 -0
  87. package/docs/retros/.gitkeep +0 -0
  88. package/docs/retros/2026-03-01-ai-stack-split-architecture.md +38 -0
  89. package/docs/spikes/.gitkeep +0 -0
  90. package/gh/config.yml +16 -0
  91. package/gh/hosts.yml +5 -0
  92. package/gh/main.json +103 -0
  93. package/ghostty/config +90 -0
  94. package/git/config/base.gitconfig +46 -0
  95. package/git/config/chiefmikey.gitconfig +11 -0
  96. package/git/config/personal.gitconfig +10 -0
  97. package/git/config/work.gitconfig +14 -0
  98. package/ide/cursor/extensions.txt +111 -0
  99. package/ide/cursor/keybindings.json +307 -0
  100. package/ide/cursor/mcp.json +92 -0
  101. package/ide/cursor/settings.json +544 -0
  102. package/ide/vscode/extensions.txt +120 -0
  103. package/ide/vscode/insiders/extensions.txt +119 -0
  104. package/ide/vscode/insiders/keybindings.json +294 -0
  105. package/ide/vscode/insiders/settings.json +518 -0
  106. package/ide/vscode/keybindings.json +294 -0
  107. package/ide/vscode/settings.json +526 -0
  108. package/ide/vscode/vscode/extensions.txt +43 -0
  109. package/iterm/Mikey Pro.json +951 -0
  110. package/iterm/com.googlecode.iterm2.plist +5549 -0
  111. package/iterm/font/MesloLGS NF Bold Italic.ttf +0 -0
  112. package/iterm/font/MesloLGS NF Bold.ttf +0 -0
  113. package/iterm/font/MesloLGS NF Italic.ttf +0 -0
  114. package/iterm/font/MesloLGS NF Regular.ttf +0 -0
  115. package/package.json +15 -0
  116. package/scripts/ai/deploy-ai-stack.sh +119 -0
  117. package/scripts/ai/fix-ai-proxy.service +12 -0
  118. package/scripts/ai/fix-ai-proxy.sh +25 -0
  119. package/scripts/brew/search/brew-search-results.sh +19 -0
  120. package/scripts/brew/search/brew-search.sh +34 -0
  121. package/scripts/brew/upgrade/brew-upgrade-autoupdate.sh +5 -0
  122. package/scripts/brew/upgrade/brew-upgrade-full-auto.sh +89 -0
  123. package/scripts/brew/upgrade/brew-upgrade-full.sh +159 -0
  124. package/scripts/docker/cleanup/docker-cleanup-manage.sh +163 -0
  125. package/scripts/docker/cleanup/docker-cleanup.cron +12 -0
  126. package/scripts/docker/cleanup/docker-cleanup.sh +280 -0
  127. package/scripts/docker/install/README.md +23 -0
  128. package/scripts/docker/install/docker-al2.sh +7 -0
  129. package/scripts/docker/install/docker-compose-al2.sh +15 -0
  130. package/scripts/gh/auth/auth.sh +12 -0
  131. package/scripts/gh/config/gh-config.sh +3 -0
  132. package/scripts/gh/gist/gh-gist-create.sh +29 -0
  133. package/scripts/gh/gist/gh-gist-delete.sh +1 -0
  134. package/scripts/gh/gist/gh-gist-edit.sh +8 -0
  135. package/scripts/gh/gpg-key/gh-gpg-key-add.sh +3 -0
  136. package/scripts/gh/install/install.sh +7 -0
  137. package/scripts/gh/label/gh-label-clone.sh +0 -0
  138. package/scripts/gh/label/gh-label-create.sh +0 -0
  139. package/scripts/gh/label/gh-label-delete.sh +0 -0
  140. package/scripts/gh/label/gh-label-edit.sh +0 -0
  141. package/scripts/gh/label/gh-label-list.sh +0 -0
  142. package/scripts/gh/secret/gh-secret-delete.sh +24 -0
  143. package/scripts/gh/secret/gh-secret-set.sh +70 -0
  144. package/scripts/gh/ssh-key/gh-ssh-key-add.sh +8 -0
  145. package/scripts/git/add/git-add.sh +3 -0
  146. package/scripts/git/auth/README.md +11 -0
  147. package/scripts/git/auth/https.sh +20 -0
  148. package/scripts/git/auth/ssh-mac.sh +41 -0
  149. package/scripts/git/branch-delete/git-branch-delete.sh +16 -0
  150. package/scripts/git/checkout/git-checkout-stash.sh +32 -0
  151. package/scripts/git/temp/git-temp-pull.sh +6 -0
  152. package/scripts/git/temp/git-temp-push.sh +5 -0
  153. package/scripts/install/fresh.zsh +34 -0
  154. package/scripts/install/full-install.zsh +193 -0
  155. package/scripts/linux/codedeploy/README.md +19 -0
  156. package/scripts/linux/codedeploy/linux-codedeploy-al2.sh +13 -0
  157. package/scripts/linux/codedeploy/linux-codedeploy-index.sh +16 -0
  158. package/scripts/linux/codedeploy/linux-codedeploy-ubuntu.sh +14 -0
  159. package/scripts/linux/coredns/README.md +17 -0
  160. package/scripts/linux/coredns/linux-coredns-al2.sh +29 -0
  161. package/scripts/linux/wifi/01-netconf.yaml +21 -0
  162. package/scripts/linux/wifi/wifi-ubuntu.sh +17 -0
  163. package/scripts/mac/dock-sort/mac-dock-sort.sh +87 -0
  164. package/scripts/mac/dropbox-ignore/mac-dropbox-ignore.sh +12 -0
  165. package/scripts/mac/sudo-askpass/mac-sudo-askpass.sh +50 -0
  166. package/scripts/mac/sudo-askpass/setup-sudo-password.sh +49 -0
  167. package/scripts/mac/upgrade/mac-upgrade.sh +21 -0
  168. package/scripts/mac/vpn/mac-vpn.sh +4 -0
  169. package/scripts/mcp/aws-mcp-wrapper.ps1 +97 -0
  170. package/scripts/mcp/aws-mcp-wrapper.sh +53 -0
  171. package/scripts/mcp/duplo-mcp-wrapper.sh +31 -0
  172. package/scripts/mcp/filesystem-mcp-wrapper.ps1 +43 -0
  173. package/scripts/mcp/filesystem-mcp-wrapper.sh +34 -0
  174. package/scripts/mcp/git-mcp-wrapper.ps1 +42 -0
  175. package/scripts/mcp/git-mcp-wrapper.sh +33 -0
  176. package/scripts/mcp/github-mcp-wrapper.ps1 +43 -0
  177. package/scripts/mcp/github-mcp-wrapper.sh +19 -0
  178. package/scripts/mcp/kubernetes-mcp-wrapper.ps1 +22 -0
  179. package/scripts/mcp/kubernetes-mcp-wrapper.sh +16 -0
  180. package/scripts/mcp/mcp-launcher.ps1 +56 -0
  181. package/scripts/mcp/mcp-launcher.sh +71 -0
  182. package/scripts/mcp/mongodb-mcp-wrapper.ps1 +26 -0
  183. package/scripts/mcp/mongodb-mcp-wrapper.sh +17 -0
  184. package/scripts/mcp/notion-mcp-wrapper.ps1 +23 -0
  185. package/scripts/mcp/notion-mcp-wrapper.sh +14 -0
  186. package/scripts/mcp/postgres-mcp-wrapper.ps1 +23 -0
  187. package/scripts/mcp/postgres-mcp-wrapper.sh +16 -0
  188. package/scripts/npm/ncu/npm-ncu.sh +24 -0
  189. package/scripts/npm/upgrade/npm-upgrade.sh +51 -0
  190. package/scripts/qmk/build_reviung41.sh +28 -0
  191. package/scripts/qmk/sync_unicorne.sh +44 -0
  192. package/scripts/sync/README.md +64 -0
  193. package/scripts/sync/config-common.zsh +882 -0
  194. package/scripts/sync/pull-configs.ps1 +33 -0
  195. package/scripts/sync/pull-configs.zsh +278 -0
  196. package/scripts/sync/push-configs.ps1 +91 -0
  197. package/scripts/sync/push-configs.zsh +384 -0
  198. package/shell/alias/alias-d.zsh +333 -0
  199. package/shell/alias/alias.zsh +36 -0
  200. package/shell/alias/categories/development.zsh +157 -0
  201. package/shell/alias/categories/environment.zsh +13 -0
  202. package/shell/alias/categories/git.zsh +40 -0
  203. package/shell/alias/categories/github-functions.zsh +459 -0
  204. package/shell/alias/categories/network.zsh +46 -0
  205. package/shell/alias/categories/path.zsh +46 -0
  206. package/shell/alias/categories/system.zsh +78 -0
  207. package/shell/alias/categories/wolfe-server.zsh +11 -0
  208. package/shell/powershell/Microsoft.PowerShell_profile.ps1 +208 -0
  209. package/shell/zsh/.p10k.zsh +1832 -0
  210. package/shell/zsh/.zshrc +87 -0
  211. package/shell/zsh/config/completion.zsh +31 -0
  212. package/shell/zsh/config/functions.zsh +31 -0
  213. package/shell/zsh/config/keybindings.zsh +13 -0
  214. package/shell/zsh/config/options.zsh +56 -0
  215. package/shell/zsh/config/plugins.zsh +83 -0
  216. package/shell/zsh/config/variables.zsh +191 -0
  217. package/shell/zsh/powerlevel10k.zsh-theme +83 -0
  218. package/shell/zsh/zsh-autosuggestions.zsh +871 -0
  219. package/ssh/config +46 -0
  220. package/ssh/config.duplo +21 -0
  221. package/ssh/config.mikpc +35 -0
  222. package/ssh/personal_signing.pub +1 -0
  223. package/templates/.envrc.example +34 -0
  224. package/templates/.envrc.quickstart +17 -0
  225. package/wezterm/wezterm.lua +249 -0
  226. package/wsl/.wslconfig +3 -0
  227. package/wsl/wsl.conf +18 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ "outputStyle": "default"
3
+ }
package/CLAUDE.md ADDED
@@ -0,0 +1,94 @@
1
+ # Project CLAUDE.md - configs
2
+
3
+ ## Project Overview
4
+ Centralized configuration repository for managing shell, git, IDE, SSH, and app configs across multiple machines (mikmac, mikbook, duplo, mikpc) with cross-platform support for macOS and Windows/WSL.
5
+
6
+ **THIS REPO IS THE SINGLE SOURCE OF TRUTH.** All config changes — no matter how small — MUST be made here in the repo first, then deployed to the system. Never edit deployed files directly (e.g. `~/.zshrc`, `~/.claude/settings.json`, `~/.gitconfig`). Changes made to local/deployed files will be overwritten on the next push and will never reach other machines. Even for a one-off quick fix: edit in repo → copy or run `push-configs.zsh` to deploy.
7
+
8
+ ## Tech Stack
9
+ - **Shell scripts**: Zsh (`.zsh`/`.sh`) — the entire codebase
10
+ - **Linting/Formatting**: `mikey-pro` (Prettier + ESLint + Stylelint configs via `package.json`)
11
+ - **JSON processing**: `jq` for config transformations (Mac ↔ Windows)
12
+ - **Validation**: `plutil` (plist), `yq` (YAML), `jq` (JSON), `zsh -n` (shell syntax)
13
+
14
+ ## Architecture
15
+ ```
16
+ configs/
17
+ ├── shell/ # Zsh config (.zshrc), aliases (modular categories), p10k theme
18
+ │ ├── zsh/ # .zshrc, .p10k.zsh, config/ (completion, functions, variables)
19
+ │ ├── alias/ # alias.zsh loads categories/ (git, system, dev, network, etc.)
20
+ │ └── powershell/ # Windows PowerShell profile
21
+ ├── git/config/ # base.gitconfig + host-specific (personal, work, chiefmikey)
22
+ ├── ide/ # VS Code (stable + insiders) and Cursor settings/keybindings/mcp
23
+ ├── ssh/ # Host-specific SSH configs (config, config.duplo, config.mikpc)
24
+ ├── gh/ # GitHub CLI config.yml + hosts.yml
25
+ ├── claude/ # Claude Code settings, hooks, commands/, templates/, scripts/, desktop/
26
+ ├── docker/ # MCP registry/catalog, CLI daemon/features, ai-stack compose
27
+ ├── ghostty/ # Ghostty terminal config
28
+ ├── wezterm/ # WezTerm terminal config (Lua)
29
+ ├── iterm/ # iTerm2 plist config + font
30
+ ├── wsl/ # WSL config (.wslconfig, wsl.conf)
31
+ ├── apps/ # Rectangle, iStat Menus, Synergy configs
32
+ ├── scripts/
33
+ │ ├── sync/ # push-configs.zsh, pull-configs.zsh, config-common.zsh
34
+ │ ├── ai/ # AI stack deployment (deploy-ai-stack.sh) + WSL port proxy
35
+ │ ├── mcp/ # MCP server wrapper scripts (.sh for Mac, .ps1 for Windows)
36
+ │ ├── install/ # fresh.zsh full machine setup
37
+ │ ├── docker/ # Docker cleanup + cron management
38
+ │ ├── git/ # Git helper scripts (commit, push, pull, remote, etc.)
39
+ │ ├── gh/ # GitHub CLI management scripts
40
+ │ ├── mac/ # Mac-specific scripts (VPN, dock, sudo)
41
+ │ ├── brew/ # Homebrew management
42
+ │ ├── linux/ # Linux-specific scripts (codedeploy, coredns, wifi)
43
+ │ ├── npm/ # NPM upgrade helpers
44
+ │ └── qmk/ # QMK keyboard firmware build/sync
45
+ ├── docs/ # Persistent documentation artifacts (per-project, not synced)
46
+ │ ├── context/ # Repo knowledge snapshots (/context)
47
+ │ ├── research/ # Deep codebase research (/research)
48
+ │ ├── plans/ # Implementation plans with status tracking (/plans)
49
+ │ ├── spikes/ # Technical investigation decision artifacts (/spike)
50
+ │ ├── incidents/ # Incident response with phase tracking (/incident)
51
+ │ ├── handoff/ # Session state for continuity (/handoff)
52
+ │ └── retros/ # Post-task retrospectives (/retro)
53
+ └── templates/ # Claude Code project templates (.envrc examples)
54
+ ```
55
+
56
+ ## Commands
57
+ ```zsh
58
+ # Config sync (the main workflow)
59
+ ./scripts/sync/push-configs.zsh # Deploy configs from repo → system
60
+ ./scripts/sync/pull-configs.zsh # Backup configs from system → repo
61
+
62
+ # Docker cleanup
63
+ ./scripts/docker/cleanup/docker-cleanup.sh --dry-run
64
+ ./scripts/docker/cleanup/docker-cleanup-manage.sh install|status|uninstall
65
+
66
+ # Fresh machine setup
67
+ ./scripts/install/fresh.zsh
68
+ ```
69
+
70
+ ## Conventions
71
+ - **THIS REPO IS THE SOURCE OF TRUTH FOR ALL CONFIGS.** Never edit deployed/local config files directly (e.g. `~/.claude/statusline-command.sh`, `~/.zshrc`, `~/.gitconfig`). Always make changes here in the repo first, then deploy with `push-configs.zsh` or a one-off `cp`/`rsync`. If you edit a local file, the change will be lost on the next push and will never reach other machines. Repo first, deploy second — no exceptions.
72
+ - **Hostname-based routing**: `config-common.zsh` detects hostname (mikmac/mikbook/duplo/mikpc) and selects host-specific configs (git, SSH, paths)
73
+ - **Mac is source of truth**: Cursor settings and MCP configs are never pulled back from Windows — only pushed with transformations
74
+ - **Platform guards**: `IS_MAC`/`IS_WINDOWS` booleans gate platform-specific logic; Mac-only configs return empty `dest_path` on Windows
75
+ - **Graceful failures**: Sync scripts use `set -uo pipefail` (no `set -e`) so individual file failures don't abort the whole run
76
+ - **Backup rotation**: `safe_copy()` creates timestamped backups and keeps only the 5 most recent per file
77
+ - **Validation before copy**: JSON/YAML/plist/shell syntax is validated before any file is deployed
78
+ - **Modular aliases**: `shell/alias/alias.zsh` loads categories from `shell/alias/categories/` via `load_alias_category()`
79
+ - **Claude Code configs live in `claude/`**: `claude/CLAUDE.md` is deployed to `~/CLAUDE.md`; commands and templates sync as directories (stale files auto-removed)
80
+ - **Docs system**: `docs/` directories contain persistent artifacts generated by slash commands. Status-tracked docs (plans, spikes, incidents) use `_Status:_` markers for agent awareness and resumability
81
+
82
+ ## Common Mistakes to Avoid
83
+ - **NEVER edit deployed config files directly** — always edit in this repo, then deploy. This includes `~/.claude/*`, `~/.zshrc`, `~/.gitconfig`, IDE settings, etc. The repo is the single source of truth. Editing local files means changes get overwritten on next push and never propagate to other machines.
84
+ - **Don't use `set -e`** in sync scripts — it was intentionally removed so one bad file doesn't stop all deployments
85
+ - **Don't pull Cursor/MCP configs on Windows** — Mac is source of truth; Windows gets transformed copies on push only
86
+ - **Don't edit `claude/CLAUDE.md` thinking it's project-specific** — it's the global `~/CLAUDE.md` that applies to all repos
87
+ - **Windows backups go to `~/.config/config-backups`** — not `backups/` in the repo (NTFS permission issues with Dropbox path)
88
+ - **`WINDOWS_USER` is hardcoded to `"wolfe"`** in `config-common.zsh` — update it if the Windows username changes
89
+
90
+ ## Testing
91
+ No automated test suite. Verify changes by:
92
+ 1. Running `./scripts/sync/push-configs.zsh` and checking output for errors/warnings
93
+ 2. Running `zsh -n <file>` to syntax-check shell scripts before committing
94
+ 3. Running `jq empty <file>` to validate JSON configs
package/README.md ADDED
@@ -0,0 +1,424 @@
1
+ # Configs
2
+
3
+ A centralized configuration repository for managing development tools, shell configurations, and editor settings across multiple machines.
4
+
5
+ ## Features
6
+
7
+ - **Shell Configuration**: Zsh with Powerlevel10k theme management (Mac and WSL)
8
+ - **Git Configuration**: Host-specific git configurations (personal/work)
9
+ - **IDE Configuration**: Settings, keybindings, and extension management for VS Code, VS Code Insiders, and Cursor
10
+ - **GitHub CLI**: Configuration and host management
11
+ - **Cross-platform**: Smart hostname detection for appropriate configuration selection
12
+ - **Platform Support**: macOS (mikmac, mikbook, duplo) and Windows (mikpc via WSL)
13
+ - **Docker Cleanup**: Automated Docker resource cleanup with cron support
14
+
15
+ ## Setup Instructions
16
+
17
+ ### macOS Setup
18
+
19
+ 1. **Install Homebrew** (if not already installed):
20
+ ```bash
21
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
22
+ ```
23
+
24
+ 2. **Run full install script:**
25
+ ```zsh
26
+ wget -O ~/full-install.zsh https://raw.githubusercontent.com/chiefmikey/configs/main/scripts/install/full-install.zsh
27
+ sudo chmod +x ~/full-install.zsh
28
+ sudo ~/full-install.zsh
29
+ ```
30
+
31
+ This will install:
32
+ - zsh and Powerlevel10k theme
33
+ - Development tools (git, node, gh, etc.)
34
+ - Applications (VS Code, Cursor, browsers, etc.)
35
+ - Mac-specific apps (iTerm2, Rectangle, iStat Menus, etc.)
36
+
37
+ 3. **Apply configurations:**
38
+ ```zsh
39
+ cd ~/Dropbox/dev/configs # or your hostname-specific path
40
+ ./scripts/sync/push-configs.zsh
41
+ ```
42
+
43
+ 4. **Restart your terminal** - zsh should load with all your aliases
44
+
45
+ ### Windows Setup (WSL + zsh)
46
+
47
+ Windows uses **WSL (Windows Subsystem for Linux)** to provide the same zsh experience as macOS.
48
+
49
+ #### Initial Setup
50
+
51
+ 1. **Install WSL:**
52
+ ```powershell
53
+ # Run in PowerShell as Administrator
54
+ wsl --install
55
+ ```
56
+
57
+ This installs Ubuntu by default. Restart your computer when prompted.
58
+
59
+ 2. **Open WSL** (from Start Menu or `wsl` command)
60
+
61
+ 3. **Install zsh in WSL:**
62
+ ```bash
63
+ sudo apt-get update
64
+ sudo apt-get install -y zsh curl wget git
65
+ ```
66
+
67
+ 4. **Set zsh as default:**
68
+ ```bash
69
+ chsh -s $(which zsh)
70
+ ```
71
+
72
+ 5. **Install Powerlevel10k theme:**
73
+ ```bash
74
+ # Install zsh plugins
75
+ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
76
+ echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc
77
+ ```
78
+
79
+ 6. **Sync your configs repo:**
80
+ ```bash
81
+ # Navigate to your Dropbox location in WSL
82
+ cd /mnt/c/Users/wolfe/Dropbox/mikpc/dev/configs # Adjust path as needed
83
+ ```
84
+
85
+ 7. **Run full install (optional - installs dev tools):**
86
+ ```zsh
87
+ wget -O ~/full-install.zsh https://raw.githubusercontent.com/chiefmikey/configs/main/scripts/install/full-install.zsh
88
+ chmod +x ~/full-install.zsh
89
+ ./full-install.zsh
90
+ ```
91
+
92
+ 8. **Apply configurations:**
93
+ ```zsh
94
+ ./scripts/sync/push-configs.zsh
95
+ ```
96
+
97
+ 9. **Restart terminal** - zsh should load with all your aliases
98
+
99
+ #### Terminal Options
100
+
101
+ **Recommended: Windows Terminal**
102
+ - Download from Microsoft Store
103
+ - Or install via Chocolatey: `choco install microsoft-windows-terminal`
104
+ - Supports WSL, PowerShell, CMD all in one window with tabs
105
+ - Best experience for switching between Windows and WSL
106
+
107
+ **Alternative: VS Code / Cursor Integrated Terminal**
108
+ - Open terminal (Ctrl+`)
109
+ - Select "WSL" or "Ubuntu" from the terminal dropdown
110
+ - Your zsh config will load automatically
111
+
112
+ #### What Works on Windows (WSL)
113
+
114
+ ✅ **ALL your zsh aliases work** (`gs`, `push`, `dev`, `configs`, `vsc`, etc.)
115
+ ✅ All your functions work
116
+ ✅ All your scripts work
117
+ ✅ **Same exact experience as Mac** - uses the same zsh scripts!
118
+ ✅ VS Code/Cursor configs automatically mapped to Windows paths
119
+ ✅ Git configs work identically
120
+ ✅ GitHub CLI configs work identically
121
+
122
+ #### Windows Paths in WSL
123
+
124
+ - Windows files: `/mnt/c/Users/wolfe/...`
125
+ - WSL files: `~/` or `/home/youruser/...`
126
+ - Dropbox syncs to both locations automatically
127
+ - VS Code configs are automatically mapped from `/mnt/c/Users/.../AppData/Roaming/`
128
+
129
+ ## Usage
130
+
131
+ ### Backup Current Configuration
132
+
133
+ ```zsh
134
+ ./scripts/sync/pull-configs.zsh
135
+ ```
136
+
137
+ This will backup your current:
138
+ - Shell configurations (.zshrc)
139
+ - VS Code settings and keybindings (stable, Insiders, and Cursor)
140
+ - VS Code extensions (stable, Insiders, and Cursor)
141
+ - Git configuration
142
+ - GitHub CLI configuration
143
+
144
+ ### Restore Configuration
145
+
146
+ ```zsh
147
+ ./scripts/sync/push-configs.zsh
148
+ ```
149
+
150
+ This will restore all configurations. Extension lists are for reference only.
151
+
152
+ ### Extension Management
153
+
154
+ - Extensions are automatically backed up to `ide/vscode/vscode/extensions.txt`, `ide/vscode/insiders/extensions.txt`, and `ide/cursor/extensions.txt`
155
+ - **Extension lists are for reference only** - no automatic installation
156
+ - Each editor (VS Code, VS Code Insiders, Cursor) manages its own extensions naturally
157
+ - **Your extension preferences are preserved** (disabled extensions stay disabled)
158
+ - **Fast backup/restore** - just configuration files, no extension management
159
+
160
+ ## Docker Cleanup
161
+
162
+ ### Scripts
163
+
164
+ - **`scripts/docker/cleanup/docker-cleanup.sh`** - Main cleanup script (system-wide)
165
+ - Smart cleanup that preserves containers from all projects
166
+ - Only removes unused resources
167
+ - Can be run manually, via alias, or via cron
168
+
169
+ - **`scripts/docker/cleanup/docker-cleanup-manage.sh`** - Cron management script
170
+ - Install/uninstall cron job
171
+ - Check status
172
+ - Test cleanup (dry-run)
173
+ - Edit cron schedule
174
+ - Full cron lifecycle management
175
+
176
+ - **`scripts/docker/cleanup/docker-cleanup.cron`** - Cron job template
177
+ - Example cron entry for weekly cleanup
178
+ - Runs every Sunday at 2 AM
179
+ - Reference only (use manage script instead)
180
+
181
+ ### Shell Aliases
182
+
183
+ Docker cleanup aliases are automatically loaded via your shell configuration.
184
+ They're defined in `shell/alias/categories/system.zsh` and loaded automatically
185
+ when your shell starts (no installation needed).
186
+
187
+ ### Usage
188
+
189
+ #### Option 1: Direct Script Execution
190
+
191
+ ```bash
192
+ # Preview what would be removed
193
+ ./scripts/docker/cleanup/docker-cleanup.sh --dry-run
194
+
195
+ # Interactive cleanup
196
+ ./scripts/docker/cleanup/docker-cleanup.sh
197
+
198
+ # Automatic cleanup
199
+ ./scripts/docker/cleanup/docker-cleanup.sh --yes
200
+
201
+ # Only clean build cache
202
+ ./scripts/docker/cleanup/docker-cleanup.sh --build-cache-only --yes
203
+ ```
204
+
205
+ #### Option 2: Shell Aliases (Automatic)
206
+
207
+ **Aliases are automatically loaded** via your shell config (no installation needed).
208
+
209
+ **Use anywhere:**
210
+ ```bash
211
+ docker-cleanup --dry-run
212
+ docker-cleanup --yes
213
+ docker-cleanup-manage install
214
+ docker-cleanup-manage status
215
+ ```
216
+
217
+ #### Option 3: Cron Management
218
+
219
+ **Using the management script:**
220
+ ```bash
221
+ # Install weekly cleanup cron job
222
+ ./scripts/docker/cleanup/docker-cleanup-manage.sh install
223
+
224
+ # Check status
225
+ ./scripts/docker/cleanup/docker-cleanup-manage.sh status
226
+
227
+ # Test cleanup (dry-run)
228
+ ./scripts/docker/cleanup/docker-cleanup-manage.sh test
229
+
230
+ # Uninstall cron job
231
+ ./scripts/docker/cleanup/docker-cleanup-manage.sh uninstall
232
+
233
+ # Edit cron schedule manually
234
+ ./scripts/docker/cleanup/docker-cleanup-manage.sh edit
235
+ ```
236
+
237
+ **Or with aliases (automatically available):**
238
+ ```bash
239
+ docker-cleanup-manage install
240
+ docker-cleanup-manage status
241
+ docker-cleanup-manage uninstall
242
+ ```
243
+
244
+ ### What Gets Cleaned
245
+
246
+ The cleanup script only removes UNUSED resources:
247
+ - ✅ Preserves all running containers (from any project)
248
+ - ✅ Preserves images used by containers
249
+ - ✅ Preserves volumes attached to containers
250
+ - ✅ Only removes:
251
+ - Stopped containers
252
+ - Dangling/untagged images
253
+ - Unused volumes
254
+ - Unused networks
255
+ - Build cache
256
+
257
+ ## Hostname Detection
258
+
259
+ The repository automatically detects your machine hostname and applies appropriate configurations:
260
+
261
+ - **`mikmac`** - Mac Studio (personal)
262
+ - Dropbox path: `~/Dropbox/dev/configs`
263
+ - Git config: `personal.gitconfig`
264
+
265
+ - **`mikbook`** - MacBook Air (personal)
266
+ - Dropbox path: `~/Dropbox/mikbook/dev/configs`
267
+ - Git config: `personal.gitconfig`
268
+
269
+ - **`duplo`** - Work MacBook Pro (work)
270
+ - Dropbox path: `~/Dropbox/duplo/dev/chiefmikey/configs`
271
+ - Git config: `work.gitconfig`
272
+
273
+ - **`mikpc`** - Windows PC (personal, uses WSL)
274
+ - Dropbox path: `~/Dropbox/mikpc/dev/configs` (in WSL) or `/mnt/c/Users/wolfe/Dropbox/mikpc/dev/configs`
275
+ - Git config: `personal.gitconfig`
276
+
277
+ Each hostname has specific Dropbox path mappings and git config selections automatically configured.
278
+
279
+ ## Platform-Specific Notes
280
+
281
+ ### macOS Features
282
+
283
+ The following configurations are macOS-only and automatically skipped on Windows:
284
+
285
+ - **iTerm2** preferences (`iterm/com.googlecode.iterm2.plist`)
286
+ - **Rectangle** window manager config (`apps/RectangleConfig.plist`)
287
+ - **iStat Menus** settings (`apps/iStat Menus Settings.ismp7`)
288
+ - **Homebrew** package management
289
+ - Mac system preferences (`defaults` commands)
290
+
291
+ These are conditionally included based on platform detection.
292
+
293
+ ### Windows (WSL) Features
294
+
295
+ - Uses the **exact same zsh scripts** as macOS - no duplication!
296
+ - WSL automatically detects Windows paths and maps them correctly
297
+ - Config paths are automatically detected (e.g., `%APPDATA%\Code\User\` mapped from WSL)
298
+ - All your Mac aliases, functions, and workflows work identically
299
+
300
+ ### Mac-Only Commands Not Available on Windows
301
+
302
+ These commands won't work on Windows and have no equivalents:
303
+
304
+ - `defaults` (macOS system preferences)
305
+ - `killall coreaudiod` (Mac audio reset)
306
+ - `docks` (Mac Dock sorting) → N/A on Windows
307
+ - Mac-specific scripts in `scripts/mac/` won't run on Windows
308
+
309
+ **Alternatives:**
310
+ - **iTerm2** → Use Windows Terminal or VS Code terminal
311
+ - **Rectangle** → Use Windows 11 Snap Layouts or PowerToys FancyZones
312
+ - **iStat Menus** → Use Task Manager or third-party alternatives
313
+ - **Homebrew** → Use `apt` in WSL or Chocolatey on Windows
314
+
315
+ ## Troubleshooting
316
+
317
+ ### zsh not loading
318
+
319
+ ```bash
320
+ # Check if zsh is your default shell
321
+ echo $SHELL # Should show /usr/bin/zsh
322
+
323
+ # If not, set it as default
324
+ chsh -s $(which zsh)
325
+ ```
326
+
327
+ ### Aliases not working
328
+
329
+ ```bash
330
+ # Make sure CONFIG_DIR is set correctly
331
+ echo $CONFIG_DIR
332
+ # Should point to your configs directory
333
+
334
+ # If not set, source your .zshrc
335
+ source ~/.zshrc
336
+ ```
337
+
338
+ ### Windows paths not working in WSL
339
+
340
+ ```bash
341
+ # Verify WSL can access Windows files
342
+ ls /mnt/c/Users/wolfe/Dropbox
343
+
344
+ # If Dropbox isn't accessible, check Dropbox sync settings
345
+ # Make sure Dropbox is syncing to Windows location
346
+ ```
347
+
348
+ ### VS Code configs not found on Windows
349
+
350
+ The scripts automatically map VS Code paths from WSL to Windows locations. If you see warnings:
351
+
352
+ 1. Make sure VS Code is installed on Windows (not just in WSL)
353
+ 2. Check that the Windows user path matches: `/mnt/c/Users/${WINDOWS_USER}/AppData/Roaming/`
354
+ 3. The scripts will detect your Windows username automatically
355
+
356
+ ### Git config not applying
357
+
358
+ ```bash
359
+ # Check which git config is being used
360
+ git config --list --show-origin | grep -E "(user|email)"
361
+
362
+ # Verify the correct config file is selected
363
+ # Check your hostname
364
+ hostname
365
+ # Should match one of: mikmac, mikbook, duplo, mikpc
366
+ ```
367
+
368
+ ## Quick Reference
369
+
370
+ ### Common Commands
371
+
372
+ ```zsh
373
+ # Navigate to common directories
374
+ dev # Go to DEV directory
375
+ configs # Go to configs directory
376
+ scripts # Go to scripts directory
377
+ dropbox # Go to Dropbox directory
378
+
379
+ # Git shortcuts
380
+ gs # git status
381
+ push # git push -u origin current-branch
382
+ pullr # git pull --rebase=merges --autostash
383
+ pullm # git pull --rebase=false --autostash --no-edit
384
+
385
+ # Editor shortcuts
386
+ vsc # code .
387
+ configs. # code configs directory
388
+ scripts. # code scripts directory
389
+
390
+ # Sync configs
391
+ pull-configs # Backup current configs to repo
392
+ push-configs # Restore configs from repo
393
+ ```
394
+
395
+ ### Configuration Files
396
+
397
+ - **Shell**: `shell/zsh/.zshrc` → `~/.zshrc`
398
+ - **Git**: `git/config/base.gitconfig` + host-specific → `~/.gitconfig`
399
+ - **VS Code**: `ide/vscode/settings.json` → `~/Library/Application Support/Code/User/settings.json` (Mac) or `%APPDATA%\Code\User\settings.json` (Windows)
400
+ - **Cursor**: `ide/cursor/settings.json` → Similar paths
401
+ - **GitHub CLI**: `gh/config.yml` → `~/.config/gh/config.yml`
402
+ - **SSH**: `ssh/config` → `~/.ssh/config`
403
+
404
+ ## Repository Structure
405
+
406
+ ```
407
+ configs/
408
+ ├── shell/
409
+ │ ├── zsh/ # Zsh configuration (Mac & WSL)
410
+ │ └── alias/ # Shell aliases and functions
411
+ ├── git/
412
+ │ └── config/ # Git configurations (base + host-specific)
413
+ ├── ide/ # IDE configs (VS Code, Insiders, Cursor)
414
+ │ ├── vscode/
415
+ │ └── cursor/
416
+ ├── gh/ # GitHub CLI configs
417
+ ├── ssh/ # SSH configs
418
+ ├── scripts/
419
+ │ ├── sync/ # Push/pull config scripts
420
+ │ ├── install/ # Installation scripts
421
+ │ ├── mac/ # Mac-specific scripts
422
+ │ └── git/ # Git helper scripts
423
+ └── apps/ # Application-specific configs
424
+ ```
@@ -0,0 +1,96 @@
1
+ # Terminal Keyboard Shortcuts
2
+
3
+ All three terminals use the **Mikey Pro** color scheme and unified keybindings where possible.
4
+
5
+ | Machine | Terminal | Modifier Key |
6
+ |---------|----------|-------------|
7
+ | mikmac (Mac Studio) | Ghostty / iTerm2 | Cmd |
8
+ | mikpc (Windows PC) | WezTerm | Alt |
9
+
10
+ > On WezTerm/Windows, substitute **Alt** wherever you see **Cmd** below.
11
+
12
+ ## Tabs
13
+
14
+ | Action | Ghostty | iTerm2 | WezTerm |
15
+ |--------|---------|--------|---------|
16
+ | New tab | Cmd+T | Cmd+T | Cmd/Alt+T |
17
+ | Close tab | Cmd+W | Cmd+W | Cmd/Alt+W |
18
+ | Next tab | Ctrl+Tab | Ctrl+Tab | Ctrl+Tab |
19
+ | Previous tab | Ctrl+Shift+Tab | Ctrl+Shift+Tab | Ctrl+Shift+Tab |
20
+ | Go to tab 1-8 | Cmd+1-8 | Cmd+1-8 | Cmd/Alt+1-8 |
21
+ | Go to last tab | Cmd+9 | Cmd+9 | Cmd/Alt+9 |
22
+
23
+ ## Splits (Panes)
24
+
25
+ | Action | Ghostty | iTerm2 | WezTerm |
26
+ |--------|---------|--------|---------|
27
+ | Split side by side | Cmd+D | Cmd+D | Cmd/Alt+D |
28
+ | Split top/bottom | Cmd+Shift+D | Cmd+Shift+D | Cmd/Alt+Shift+D |
29
+ | Close split | Cmd+W | Cmd+W | Cmd/Alt+Shift+W |
30
+ | Switch split (prev) | Cmd+[ | Cmd+[ | Cmd/Alt+[ |
31
+ | Switch split (next) | Cmd+] | Cmd+] | Cmd/Alt+] |
32
+ | Zoom split (toggle) | Cmd+Shift+Enter | - | Cmd/Alt+Z |
33
+ | Resize split | Cmd+Ctrl+Arrows | - | Cmd/Alt+Shift+Arrows |
34
+
35
+ ## Navigation
36
+
37
+ | Action | Ghostty | iTerm2 | WezTerm |
38
+ |--------|---------|--------|---------|
39
+ | Jump to prev prompt | Cmd+Up | Cmd+Up | - |
40
+ | Jump to next prompt | Cmd+Down | Cmd+Down | - |
41
+ | Scroll page up | Cmd+PageUp | Cmd+PageUp | - |
42
+ | Scroll page down | Cmd+PageDown | Cmd+PageDown | - |
43
+ | Scroll to top | Cmd+Home | Cmd+Home | - |
44
+ | Scroll to bottom | Cmd+End | Cmd+End | - |
45
+
46
+ ## Search & Selection
47
+
48
+ | Action | Ghostty | iTerm2 | WezTerm |
49
+ |--------|---------|--------|---------|
50
+ | Find | Cmd+F | Cmd+F | Cmd/Alt+F |
51
+ | Select all | Cmd+A | Cmd+A | - |
52
+ | Quick select (smart) | - | - | Cmd/Alt+Space |
53
+ | Copy mode (vi-style) | - | - | Cmd/Alt+Shift+X |
54
+
55
+ ## Window Management
56
+
57
+ | Action | Ghostty | iTerm2 | WezTerm |
58
+ |--------|---------|--------|---------|
59
+ | New window | Cmd+N | Cmd+N | - |
60
+ | Close window | Cmd+Shift+W | Cmd+Shift+W | - |
61
+ | Toggle fullscreen | Cmd+Enter | Cmd+Enter | Cmd/Alt+Enter |
62
+ | Float on top | Cmd+Shift+F | - | - |
63
+ | Command palette | Cmd+Shift+P | - | Ctrl+Shift+P |
64
+
65
+ ## Terminal
66
+
67
+ | Action | Ghostty | iTerm2 | WezTerm |
68
+ |--------|---------|--------|---------|
69
+ | Clear screen | Cmd+K | Cmd+K | Cmd/Alt+K |
70
+ | Copy | Cmd+C | Cmd+C | Cmd+C |
71
+ | Paste | Cmd+V | Cmd+V | Cmd+V |
72
+ | Increase font | Cmd+= | Cmd+= | Cmd/Alt+= |
73
+ | Decrease font | Cmd+- | Cmd+- | Cmd/Alt+- |
74
+ | Reset font size | Cmd+0 | Cmd+0 | Cmd/Alt+0 |
75
+ | Open config | Cmd+, | Cmd+, | - |
76
+ | Reload config | Cmd+Shift+, | - | - |
77
+
78
+ ## Ghostty Exclusives
79
+
80
+ | Action | Shortcut |
81
+ |--------|----------|
82
+ | Quick terminal (dropdown) | Cmd+` (global) |
83
+ | Float on top | Cmd+Shift+F |
84
+ | Dump scrollback to file | Cmd+Shift+J |
85
+ | Command palette | Cmd+Shift+P |
86
+ | Zoom focused split | Cmd+Shift+Enter |
87
+ | Inspector (debug) | Cmd+Alt+I |
88
+
89
+ ## WezTerm Exclusives (Windows PC)
90
+
91
+ | Action | Shortcut |
92
+ |--------|----------|
93
+ | Quick select (smart highlight) | Alt+Space |
94
+ | Copy mode (vi-style scroll) | Alt+Shift+X |
95
+ | Open PowerShell tab | Alt+Shift+T |
96
+ | Command palette | Ctrl+Shift+P |