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,16 @@
1
+ #!/bin/zsh
2
+
3
+ # Postgres MCP Server Wrapper
4
+ # Sources ~/.secrets to get POSTGRES_CONNECTION_STRING if available
5
+ # Falls back to default if not set
6
+
7
+ # Source secrets if available
8
+ if [[ -f "${HOME}/.secrets" ]]; then
9
+ source "${HOME}/.secrets"
10
+ fi
11
+
12
+ # Use POSTGRES_CONNECTION_STRING from .secrets, or default
13
+ export POSTGRES_CONNECTION_STRING="${POSTGRES_CONNECTION_STRING:-postgresql://localhost:5432/postgres}"
14
+
15
+ # Run Postgres MCP server
16
+ exec npx -y @modelcontextprotocol/server-postgres
@@ -0,0 +1,24 @@
1
+ #!/bin/bash -v
2
+
3
+ set -x
4
+ brew update && brew upgrade && brew cleanup
5
+ export PATH1=package.json
6
+ export PATH2=package-lock.json
7
+ export MESSAGE='update dependencies'
8
+ cd ~/dropbox/dev/apps/auth-server && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
9
+ cd ~/dropbox/dev/apps/chalet-le-jar && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
10
+ cd ~/dropbox/dev/apps/chiefmikey && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
11
+ cd ~/dropbox/dev/apps/cloudy-nights && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
12
+ cd ~/dropbox/dev/apps/docker-images && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
13
+ cd ~/dropbox/dev/apps/eslint-plugin-disable-autofix && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
14
+ cd ~/dropbox/dev/apps/extra && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
15
+ cd ~/dropbox/dev/apps/gitlang && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
16
+ cd ~/dropbox/dev/apps/name-generator && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
17
+ cd ~/dropbox/dev/apps/secret-souls && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
18
+ cd ~/dropbox/dev/apps/stats && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
19
+ cd ~/dropbox/dev/apps/template-cemetery && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
20
+ cd ~/dropbox/dev/apps/the-myspace && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
21
+ cd ~/dropbox/dev/apps/tomorrow-night-darkly && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
22
+ cd ~/dropbox/dev/apps/view-master-3000 && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
23
+ cd ~/dropbox/dev/apps/you-got-this && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
24
+ cd ~/dropbox/dev/apps/zourdough && git pull --no-edit && ncu -u && npm i && git commit ${PATH1} ${PATH2} -m "${MESSAGE}" && git push
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # Check for required commands
5
+ command -v npm >/dev/null 2>&1 || { echo "npm is required but not installed"; exit 1; }
6
+ command -v jq >/dev/null 2>&1 || { echo "jq is required but not installed"; exit 1; }
7
+
8
+ echo "+ npm global upgrade"
9
+ cd "${HOME}" || exit 1
10
+
11
+ export STATUS=0
12
+ export NODE_NO_WARNINGS=1
13
+
14
+ # Get global packages, handle potential npm ls errors
15
+ PACKAGES=$(npm ls -g --json 2>/dev/null | jq -r '.dependencies | keys[]' 2>/dev/null) || {
16
+ echo "Error: Failed to list global packages"
17
+ exit 1
18
+ }
19
+
20
+ for package in ${PACKAGES}; do
21
+ # handle scoped packages
22
+ subPackage="${package}"
23
+ if [ -n "${subPackage##*/*}" ]; then
24
+ subPackage="${package##*/}"
25
+ fi
26
+
27
+ # Get current version from npm list
28
+ v1=$(npm list -g "${package}" --json 2>/dev/null | jq -r ".dependencies[\"${package}\"].version") || {
29
+ echo "Warning: Could not get current version of ${package}"
30
+ continue
31
+ }
32
+
33
+ # Get latest version, handle potential npm view errors
34
+ latest_version=$(npm view "${package}" version 2>/dev/null) || {
35
+ echo "Warning: Could not get latest version for ${package}"
36
+ continue
37
+ }
38
+
39
+ if [ "${latest_version}" != "${v1}" ]; then
40
+ if npm i -gs "${package}"; then
41
+ v2=$(npm list -g "${package}" --json 2>/dev/null | jq -r ".dependencies[\"${package}\"].version")
42
+ echo "${package} (${v1} -> ${v2})"
43
+ STATUS=1
44
+ else
45
+ echo "Error: Failed to upgrade ${package}"
46
+ fi
47
+ fi
48
+ done
49
+
50
+ [ ${STATUS} -eq 0 ] && echo "Already up-to-date."
51
+ exit ${STATUS}
@@ -0,0 +1,28 @@
1
+ #!/bin/bash
2
+ # Build Reviung41 ZMK firmware
3
+ # This script builds the ZMK firmware for the Reviung41 keyboard
4
+
5
+ set -e # Exit on any error
6
+
7
+ PROJECT_DIR="${DEV}/reviung41/zmk"
8
+ BUILD_DIR="${PROJECT_DIR}/build/reviung41"
9
+ CONFIG_DIR="${PROJECT_DIR}/config"
10
+ BOARD="nice_nano_v2"
11
+ SHIELD="reviung41"
12
+
13
+ echo "🔨 Building Reviung41 ZMK firmware..."
14
+
15
+ cd "$PROJECT_DIR"
16
+
17
+ # Build the firmware
18
+ west build -p -d "$BUILD_DIR" -b "$BOARD" -- -DSHIELD="$SHIELD" -DZMK_CONFIG="$CONFIG_DIR"
19
+
20
+ echo "✅ Build complete!"
21
+ echo ""
22
+ echo "📦 Firmware location:"
23
+ echo " $BUILD_DIR/zephyr/zmk.uf2"
24
+ echo ""
25
+ echo "🚀 To flash:"
26
+ echo " 1. Put keyboard in bootloader mode"
27
+ echo " 2. Copy $BUILD_DIR/zephyr/zmk.uf2 to the keyboard"
28
+
@@ -0,0 +1,44 @@
1
+ #!/bin/bash
2
+ # Sync Unicorne configs to QMK firmware directory
3
+ # This script copies our tracked keymap files to the global QMK directory for compilation
4
+
5
+ set -e # Exit on any error
6
+
7
+ QMK_DIR="$HOME/qmk_firmware/keyboards/boardsource/unicorne"
8
+ PROJECT_DIR="${DEV}/unicorne"
9
+
10
+ echo "🔄 Syncing Unicorne configs to QMK..."
11
+
12
+ # Create directory if it doesn't exist
13
+ mkdir -p "$QMK_DIR/keymaps"
14
+
15
+ # Copy keyboard config files
16
+ echo " 📋 Copying keyboard.json..."
17
+ cp "$PROJECT_DIR/keyboard.json" "$QMK_DIR/"
18
+
19
+ echo " ⚙️ Copying config.h..."
20
+ cp "$PROJECT_DIR/config.h" "$QMK_DIR/"
21
+
22
+ echo " 📝 Copying rules.mk..."
23
+ cp "$PROJECT_DIR/rules.mk" "$QMK_DIR/"
24
+
25
+ echo " 🔧 Copying unicorne.c..."
26
+ cp "$PROJECT_DIR/unicorne.c" "$QMK_DIR/"
27
+
28
+ echo " 🎛️ Copying halconf.h..."
29
+ cp "$PROJECT_DIR/halconf.h" "$QMK_DIR/"
30
+
31
+ echo " 🖥️ Copying mcuconf.h..."
32
+ cp "$PROJECT_DIR/mcuconf.h" "$QMK_DIR/"
33
+
34
+ # Copy keymaps
35
+ echo " ⌨️ Copying keymap files..."
36
+ cp -r "$PROJECT_DIR/keymaps/chiefmikey" "$QMK_DIR/keymaps/"
37
+
38
+ echo "✅ Unicorne configs synced to QMK directory"
39
+ echo ""
40
+ echo "🚀 Ready to compile:"
41
+ echo " qmk compile -kb boardsource/unicorne -km chiefmikey"
42
+ echo ""
43
+ echo "🚀 Ready to flash:"
44
+ echo " qmk flash -kb boardsource/unicorne -km chiefmikey"
@@ -0,0 +1,64 @@
1
+ # Configuration Management Scripts
2
+
3
+ This directory contains unified configuration management scripts that ensure push and pull operations handle the same files consistently with proper validation.
4
+
5
+ ## Scripts
6
+
7
+ - **`config-common.zsh`** - Shared functions and configuration mappings
8
+ - **`push-configs.zsh`** - Pushes configurations from repo to system locations
9
+ - **`pull-configs.zsh`** - Pulls configurations from system locations to repo
10
+
11
+ ## Features
12
+
13
+ ### Unified File Handling
14
+ Both scripts now handle the exact same set of configuration files:
15
+
16
+ - **Shell configurations**: `.zshrc`, powerlevel10k theme
17
+ - **Git configurations**: `base.gitconfig`, host-specific git configs
18
+ - **VS Code configurations**: settings, keybindings for Code, Insiders, and Cursor
19
+ - **GitHub CLI**: `config.yml`, `hosts.yml`
20
+ - **SSH configuration**: `~/.ssh/config`
21
+ - **iTerm configuration**: `com.googlecode.iterm2.plist`
22
+ - **Rectangle configuration**: `com.knollsoft.Rectangle.plist`
23
+
24
+ ### Validation
25
+ All configuration files are validated before being copied:
26
+
27
+ - **JSON files**: Validated with `jq` (if available)
28
+ - **YAML files**: Validated with `yq` (if available)
29
+ - **XML files**: Validated with `xmllint` (if available)
30
+ - **Shell scripts**: Validated with zsh (`zsh -n`)
31
+
32
+ ### Safety Features
33
+ - **Centralized backups**: Existing files are backed up to `backups/` directory with timestamps before being overwritten
34
+ - **Backup rotation**: Automatically keeps only the 5 most recent backups per file to prevent disk bloat
35
+ - **Error handling**: Scripts exit on first error with detailed error messages
36
+ - **Validation**: Files are validated before copying to prevent malformed configurations
37
+ - **Directory creation**: All necessary directories are created automatically
38
+
39
+ ## Usage
40
+
41
+ ```zsh
42
+ # Push configurations from repo to system
43
+ ./scripts/sync/push-configs.zsh
44
+
45
+ # Pull configurations from system to repo
46
+ ./scripts/sync/pull-configs.zsh
47
+ ```
48
+
49
+ ## Host-Specific Behavior
50
+
51
+ The scripts automatically detect the hostname and apply appropriate configurations:
52
+
53
+ - **mikbook**: Uses `personal.gitconfig`
54
+ - **duplo**: Uses `work.gitconfig`
55
+ - **Other hosts**: Defaults to `personal.gitconfig`
56
+
57
+ ## Dependencies
58
+
59
+ Optional validation tools (warnings shown if not available):
60
+ - `jq` - JSON validation
61
+ - `yq` - YAML validation
62
+ - `xmllint` - XML validation
63
+ - `brew` - For powerlevel10k theme management
64
+ - `code`, `code-insiders` - For VS Code extension management