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
package/ssh/config ADDED
@@ -0,0 +1,46 @@
1
+ Host mikmac.bleak-cliff.ts.net
2
+ HostName mikmac.bleak-cliff.ts.net
3
+ User mikl
4
+
5
+ # Work Mac - Tailscale
6
+ Host duplo
7
+ HostName 100.83.140.62
8
+ User mikl
9
+
10
+ # Windows PC - local network
11
+ Host mikpc-local
12
+ HostName 192.168.0.5
13
+ User wolfe
14
+
15
+ # Windows PC - Tailscale
16
+ Host mikpc
17
+ HostName 100.89.204.71
18
+ User wolfe
19
+
20
+ # Home Server - Tailscale
21
+ Host wolfe
22
+ HostName 100.125.250.33
23
+ User wolfe
24
+
25
+ # Gaming PC (1TB isolated drive) - Tailscale
26
+ Host games
27
+ HostName 100.84.16.17
28
+ User relax
29
+
30
+ # GitHub (personal via 1Password) - non-duplo machines
31
+ Host github.com
32
+ HostName github.com
33
+ User git
34
+ IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
35
+ IdentitiesOnly yes
36
+ IdentityFile ~/.ssh/personal_signing.pub
37
+
38
+ # GitHub (chiefmikey via 1Password)
39
+ # Only used for repos in dev/chiefmikey directory (via URL rewrite in git config)
40
+ Host github-chiefmikey
41
+ HostName github.com
42
+ User git
43
+ IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
44
+
45
+ Host *
46
+ AddKeysToAgent no
@@ -0,0 +1,21 @@
1
+ Host mikmac.bleak-cliff.ts.net
2
+ HostName mikmac.bleak-cliff.ts.net
3
+ User mikl
4
+
5
+ Host *
6
+ AddKeysToAgent no
7
+
8
+ # GitHub (miklwolfe via 1Password) - duplo only
9
+ Host github.com
10
+ HostName github.com
11
+ User git
12
+ IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
13
+
14
+ # GitHub (chiefmikey via 1Password)
15
+ # Use in remotes: git@github-chiefmikey:chiefmikey/<repo>.git
16
+ Host github-chiefmikey
17
+ HostName github.com
18
+ User git
19
+ IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
20
+ IdentitiesOnly yes
21
+ IdentityFile ~/.ssh/chiefmikey_signing.pub
@@ -0,0 +1,35 @@
1
+ Host mikmac.bleak-cliff.ts.net
2
+ HostName mikmac.bleak-cliff.ts.net
3
+ User mikl
4
+
5
+ # Work Mac - Tailscale
6
+ Host duplo
7
+ HostName 100.83.140.62
8
+ User mikl
9
+
10
+ # Windows PC - local network
11
+ Host mikpc-local
12
+ HostName 192.168.0.5
13
+ User wolfe
14
+
15
+ # Windows PC - Tailscale
16
+ Host mikpc
17
+ HostName 100.89.204.71
18
+ User wolfe
19
+
20
+ # GitHub SSH (WSL - uses local key)
21
+ Host github.com
22
+ HostName github.com
23
+ User git
24
+ IdentityFile ~/.ssh/id_ed25519
25
+ IdentitiesOnly yes
26
+
27
+ # GitHub (chiefmikey - uses local key)
28
+ Host github-chiefmikey
29
+ HostName github.com
30
+ User git
31
+ IdentityFile ~/.ssh/id_ed25519
32
+ IdentitiesOnly yes
33
+
34
+ Host *
35
+ AddKeysToAgent no
@@ -0,0 +1 @@
1
+ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGEDLKukaKrIbAJTyyVNMfHsEzn5AHBxlAiA5wqI9k75
@@ -0,0 +1,34 @@
1
+ # Per-Repository Environment Configuration
2
+ # Copy this file to your repository root as `.envrc` and customize it
3
+ # Run `direnv allow` after creating/modifying this file
4
+
5
+ # AWS Configuration for this repository
6
+ # Priority: AWS_PROFILE is used first (for Duplo JIT or standard profiles)
7
+ # Fallback: Direct AWS credentials (AWS_ACCESS_KEY_ID, etc.) if no profile set
8
+ #
9
+ # For Duplo JIT credentials: Set to Duplo environment name (e.g., "prod", "test10")
10
+ # The profile name corresponds to the Duplo environment where JIT creds are pulled from
11
+ # For standard AWS: Set to AWS profile name from ~/.aws/credentials
12
+ export AWS_PROFILE="your-profile-name"
13
+ export AWS_REGION="us-east-2" # Optional: override default region
14
+
15
+ # Kubernetes Configuration for this repository
16
+ # Set the kubeconfig file path for MCP Kubernetes server
17
+ # You can use an absolute path or relative to the repo
18
+ export KUBECONFIG="${PWD}/.kube/config"
19
+ # Or use an absolute path:
20
+ # export KUBECONFIG="${HOME}/.kube/configs/my-cluster-config"
21
+
22
+ # Example: Different configs for different environments
23
+ # if [[ "${PWD}" == *"production"* ]]; then
24
+ # export AWS_PROFILE="prod"
25
+ # export KUBECONFIG="${HOME}/.kube/prod-config"
26
+ # elif [[ "${PWD}" == *"staging"* ]]; then
27
+ # export AWS_PROFILE="staging"
28
+ # export KUBECONFIG="${HOME}/.kube/staging-config"
29
+ # fi
30
+
31
+ # Load any repository-specific secrets
32
+ if [[ -f "${PWD}/.secrets" ]]; then
33
+ source "${PWD}/.secrets"
34
+ fi
@@ -0,0 +1,17 @@
1
+ # Quick Start: Per-Repo MCP Configuration
2
+ #
3
+ # 1. Copy this file to your repository root:
4
+ # cp ~/Dropbox/dev/configs/templates/.envrc.quickstart /path/to/repo/.envrc
5
+ #
6
+ # 2. Edit .envrc with your repo-specific values
7
+ # 3. Run: direnv allow
8
+ # 4. Restart Cursor - MCP will now use these settings for this repo
9
+
10
+ # AWS Profile for this repository
11
+ # For Duplo JIT: Set to Duplo environment name (e.g., "prod", "test10")
12
+ # For standard AWS: Set to AWS profile name from ~/.aws/credentials
13
+ # Priority: AWS_PROFILE is used first, direct AWS credentials as fallback
14
+ export AWS_PROFILE="your-aws-profile-name"
15
+
16
+ # Kubernetes config for this repository
17
+ export KUBECONFIG="${PWD}/.kube/config"
@@ -0,0 +1,249 @@
1
+ -- WezTerm Configuration
2
+ -- Mikey Pro theme (ported from iTerm2) + MesloLGS NF for powerlevel10k
3
+ local wezterm = require("wezterm")
4
+ local config = wezterm.config_builder()
5
+ local act = wezterm.action
6
+
7
+ -- Platform detection
8
+ local is_windows = wezterm.target_triple:find("windows") ~= nil
9
+
10
+ -- Shell: launch WSL zsh on Windows native, zsh directly on Linux/Mac
11
+ if is_windows then
12
+ config.default_domain = "WSL:Ubuntu"
13
+ end
14
+ config.default_prog = { "zsh", "-l" }
15
+
16
+ -- Font — MesloLGS NF (powerlevel10k recommended)
17
+ config.font = wezterm.font("MesloLGS NF")
18
+ config.font_size = is_windows and 13.0 or 16.0
19
+ config.line_height = 1.15
20
+ config.freetype_load_flags = "DEFAULT"
21
+ config.harfbuzz_features = { "calt=1", "clig=1", "liga=1" } -- ligatures
22
+
23
+ -- On Windows, user-installed fonts may not be in WezTerm's search path
24
+ if is_windows then
25
+ config.font_dirs = {
26
+ wezterm.home_dir .. "\\AppData\\Local\\Microsoft\\Windows\\Fonts",
27
+ wezterm.home_dir .. "\\.local\\share\\fonts",
28
+ }
29
+ end
30
+
31
+ -- Terminal
32
+ config.term = "xterm-256color"
33
+ config.scrollback_lines = 100000
34
+ config.enable_scroll_bar = false
35
+ config.audible_bell = "Disabled"
36
+
37
+ -- Window
38
+ config.initial_cols = 160
39
+ config.initial_rows = 60
40
+ config.window_padding = { left = 8, right = 8, top = 8, bottom = 8 }
41
+ config.window_decorations = "RESIZE"
42
+ config.window_close_confirmation = "NeverPrompt"
43
+ config.skip_close_confirmation_for_processes_named = {
44
+ "bash", "sh", "zsh", "fish", "tmux", "nu", "cmd.exe", "pwsh.exe",
45
+ "powershell.exe", "wsl.exe", "wslhost.exe", "conhost.exe",
46
+ }
47
+ config.adjust_window_size_when_changing_font_size = false
48
+ config.window_background_opacity = 0.95
49
+ config.macos_window_background_blur = 20
50
+ config.win32_system_backdrop = "Acrylic" -- Windows 11 blur effect
51
+
52
+ -- Tabs
53
+ config.hide_tab_bar_if_only_one_tab = false
54
+ config.use_fancy_tab_bar = true
55
+ config.tab_max_width = 32
56
+ config.show_new_tab_button_in_tab_bar = false
57
+ config.switch_to_last_active_tab_when_closing_tab = true
58
+
59
+ -- Tab title: show working directory name
60
+ wezterm.on("format-tab-title", function(tab)
61
+ local pane = tab.active_pane
62
+ local title = pane.current_working_dir
63
+ if title then
64
+ title = title.file_path
65
+ -- Show just the last directory component
66
+ title = title:gsub("/$", ""):match("([^/]+)$") or title
67
+ else
68
+ title = pane.title
69
+ end
70
+ if tab.is_active then
71
+ return { { Text = " " .. title .. " " } }
72
+ end
73
+ return { { Text = " " .. title .. " " } }
74
+ end)
75
+
76
+ -- GPU rendering
77
+ config.front_end = "WebGpu"
78
+ config.webgpu_power_preference = "HighPerformance"
79
+ config.animation_fps = 60
80
+ config.max_fps = 120
81
+
82
+ -- Cursor
83
+ config.default_cursor_style = "SteadyBlock"
84
+ config.cursor_blink_rate = 0
85
+
86
+ -- URL / hyperlink detection (clickable links like iTerm2)
87
+ config.hyperlink_rules = wezterm.default_hyperlink_rules()
88
+ -- Add file:// links for paths
89
+ table.insert(config.hyperlink_rules, {
90
+ regex = [[[^/\s]+/[^/\s]+\.[a-zA-Z]+(?::\d+)?]],
91
+ format = "$0",
92
+ })
93
+
94
+ -- Mouse bindings
95
+ config.mouse_bindings = {
96
+ -- Ctrl+Click opens hyperlinks (like iTerm2)
97
+ {
98
+ event = { Up = { streak = 1, button = "Left" } },
99
+ mods = "CTRL",
100
+ action = act.OpenLinkAtMouseCursor,
101
+ },
102
+ -- Right click pastes
103
+ {
104
+ event = { Down = { streak = 1, button = "Right" } },
105
+ mods = "NONE",
106
+ action = act.PasteFrom("Clipboard"),
107
+ },
108
+ }
109
+
110
+ -- Quick select mode (like iTerm2's smart selection)
111
+ config.quick_select_patterns = {
112
+ -- Git hashes
113
+ "[0-9a-f]{7,40}",
114
+ -- IPs
115
+ "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",
116
+ -- File paths
117
+ "[\\w\\-./]+\\.[a-zA-Z]{1,6}(?::\\d+)?",
118
+ }
119
+
120
+ -- Mikey Pro color scheme (ported from iTerm2 profile)
121
+ config.colors = {
122
+ foreground = "#fcfcfa",
123
+ background = "#1d1b1d",
124
+ cursor_fg = "#fcfcfa",
125
+ cursor_bg = "#7e6fb2",
126
+ cursor_border = "#7e6fb2",
127
+ selection_fg = "#1d1b1d",
128
+ selection_bg = "#7e6fb2",
129
+ split = "#4f4e4f",
130
+
131
+ ansi = {
132
+ "#4f4e4f", -- black
133
+ "#9e475e", -- red
134
+ "#96c766", -- green
135
+ "#ddbd53", -- yellow
136
+ "#4f4e4f", -- blue (muted in Mikey Pro)
137
+ "#7e6fb2", -- magenta
138
+ "#5dacb7", -- cyan
139
+ "#727072", -- white
140
+ },
141
+ brights = {
142
+ "#727072", -- bright black
143
+ "#ff6188", -- bright red
144
+ "#a9dc76", -- bright green
145
+ "#ffd866", -- bright yellow
146
+ "#727072", -- bright blue (muted in Mikey Pro)
147
+ "#ab9df2", -- bright magenta
148
+ "#78dce8", -- bright cyan
149
+ "#727072", -- bright white
150
+ },
151
+
152
+ tab_bar = {
153
+ background = "#1d1b1d",
154
+ active_tab = {
155
+ bg_color = "#1d1b1d",
156
+ fg_color = "#fcfcfa",
157
+ intensity = "Bold",
158
+ },
159
+ inactive_tab = {
160
+ bg_color = "#1d1b1d",
161
+ fg_color = "#727072",
162
+ },
163
+ inactive_tab_hover = {
164
+ bg_color = "#4f4e4f",
165
+ fg_color = "#fcfcfa",
166
+ },
167
+ new_tab = {
168
+ bg_color = "#1d1b1d",
169
+ fg_color = "#727072",
170
+ },
171
+ new_tab_hover = {
172
+ bg_color = "#4f4e4f",
173
+ fg_color = "#fcfcfa",
174
+ },
175
+ },
176
+ }
177
+
178
+ -- Keybindings
179
+ -- On Windows native, SUPER = Win key. Use ALT as the modifier instead.
180
+ local mod = is_windows and "ALT" or "SUPER"
181
+
182
+ config.keys = {
183
+ -- Tabs
184
+ { key = "t", mods = mod, action = is_windows
185
+ and act.SpawnTab({ DomainName = "WSL:Ubuntu" })
186
+ or act.SpawnTab("CurrentPaneDomain") },
187
+ { key = "w", mods = mod, action = act.CloseCurrentTab({ confirm = false }) },
188
+ { key = "Tab", mods = "CTRL", action = act.ActivateTabRelative(1) },
189
+ { key = "Tab", mods = "CTRL|SHIFT", action = act.ActivateTabRelative(-1) },
190
+ -- Direct tab access (Alt+1 through Alt+9)
191
+ { key = "1", mods = mod, action = act.ActivateTab(0) },
192
+ { key = "2", mods = mod, action = act.ActivateTab(1) },
193
+ { key = "3", mods = mod, action = act.ActivateTab(2) },
194
+ { key = "4", mods = mod, action = act.ActivateTab(3) },
195
+ { key = "5", mods = mod, action = act.ActivateTab(4) },
196
+ { key = "6", mods = mod, action = act.ActivateTab(5) },
197
+ { key = "7", mods = mod, action = act.ActivateTab(6) },
198
+ { key = "8", mods = mod, action = act.ActivateTab(7) },
199
+ { key = "9", mods = mod, action = act.ActivateTab(-1) }, -- last tab
200
+
201
+ -- Panes
202
+ { key = "d", mods = mod, action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
203
+ { key = "d", mods = mod .. "|SHIFT", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) },
204
+ { key = "w", mods = mod .. "|SHIFT", action = act.CloseCurrentPane({ confirm = false }) },
205
+ { key = "[", mods = mod, action = act.ActivatePaneDirection("Prev") },
206
+ { key = "]", mods = mod, action = act.ActivatePaneDirection("Next") },
207
+ -- Resize panes (Alt+Arrow with Shift)
208
+ { key = "LeftArrow", mods = mod .. "|SHIFT", action = act.AdjustPaneSize({ "Left", 3 }) },
209
+ { key = "RightArrow", mods = mod .. "|SHIFT", action = act.AdjustPaneSize({ "Right", 3 }) },
210
+ { key = "UpArrow", mods = mod .. "|SHIFT", action = act.AdjustPaneSize({ "Up", 3 }) },
211
+ { key = "DownArrow", mods = mod .. "|SHIFT", action = act.AdjustPaneSize({ "Down", 3 }) },
212
+ -- Zoom pane toggle (like iTerm2 maximize pane)
213
+ { key = "z", mods = mod, action = act.TogglePaneZoomState },
214
+
215
+ -- Search (like iTerm2 Cmd+F / Ghostty Cmd+F)
216
+ { key = "f", mods = mod, action = act.Search({ CaseInSensitiveString = "" }) },
217
+
218
+ -- Quick select mode (like iTerm2 smart selection — highlights and copies matches)
219
+ { key = "Space", mods = mod, action = act.QuickSelect },
220
+
221
+ -- Copy mode (like tmux copy mode — vi-style scrollback navigation)
222
+ { key = "x", mods = mod .. "|SHIFT", action = act.ActivateCopyMode },
223
+
224
+ -- Clear scrollback
225
+ { key = "k", mods = mod, action = act.ClearScrollback("ScrollbackAndViewport") },
226
+
227
+ -- Font size
228
+ { key = "=", mods = mod, action = act.IncreaseFontSize },
229
+ { key = "-", mods = mod, action = act.DecreaseFontSize },
230
+ { key = "0", mods = mod, action = act.ResetFontSize },
231
+
232
+ -- Toggle fullscreen
233
+ { key = "Enter", mods = mod, action = act.ToggleFullScreen },
234
+
235
+ -- Clipboard (Ctrl+C/V on Windows — intercept before terminal so apps don't steal them)
236
+ { key = "c", mods = "CTRL|SHIFT", action = act.CopyTo("Clipboard") },
237
+ { key = "v", mods = is_windows and "CTRL" or "SUPER", action = act.PasteFrom("Clipboard") },
238
+
239
+ -- Command palette (like Ghostty/VS Code Ctrl+Shift+P)
240
+ { key = "p", mods = "CTRL|SHIFT", action = act.ActivateCommandPalette },
241
+
242
+ -- Open PowerShell tab (Alt+Shift+T on Windows) for native Windows work
243
+ { key = "t", mods = mod .. "|SHIFT", action = act.SpawnCommandInNewTab({
244
+ domain = { DomainName = "local" },
245
+ args = is_windows and { "powershell.exe" } or { "zsh", "-l" },
246
+ }) },
247
+ }
248
+
249
+ return config
package/wsl/.wslconfig ADDED
@@ -0,0 +1,3 @@
1
+ [wsl2]
2
+ # T: drive causes mount errors — exclude it
3
+ # To suppress: wsl --manage Ubuntu --set-sparse true (or remove T: from fstab)
package/wsl/wsl.conf ADDED
@@ -0,0 +1,18 @@
1
+ [boot]
2
+ systemd=true
3
+
4
+ [interop]
5
+ enabled=true
6
+ appendWindowsPath=true
7
+
8
+ [user]
9
+ default=wolfe
10
+
11
+ [network]
12
+ generateHosts=true
13
+ generateResolvConf=true
14
+
15
+ [automount]
16
+ enabled=true
17
+ mountFsTab=true
18
+ options=metadata,uid=1001,gid=1001,umask=22,fmask=11