Skip to content

Commit f1f5b10

Browse files
2 parents 04aa71f + d958dae commit f1f5b10

15 files changed

Lines changed: 148 additions & 17 deletions

File tree

.gitmodules

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
[submodule "home/.hammerspoon/ControlEscape.spoon"]
2-
path = home/.hammerspoon/Spoons/ControlEscape.spoon
3-
url = https://github.com/jasonrudolph/ControlEscape.spoon.git
4-
51
[submodule "vendor/vim-pathogen"]
62
path = vendor/vim-pathogen
73
url = git://github.com/tpope/vim-pathogen.git

Brewfile.work

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
cask 'granola'
22
cask 'wispr-flow'
3+
brew 'ical-buddy'

agents/.skill-lock.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"version": 3,
3+
"skills": {
4+
"dg": {
5+
"source": "v1r3n/dinesh-gilfoyle",
6+
"sourceType": "github",
7+
"sourceUrl": "https://github.com/v1r3n/dinesh-gilfoyle.git",
8+
"skillPath": "dg/SKILL.md",
9+
"skillFolderHash": "fcbfa793d2e40c0a84fef9cb97b84919f1c51442",
10+
"installedAt": "2026-04-03T13:22:15.516Z",
11+
"updatedAt": "2026-04-03T13:22:15.516Z"
12+
}
13+
},
14+
"dismissed": {
15+
"findSkillsPrompt": true
16+
},
17+
"lastSelectedAgents": [
18+
"amp",
19+
"antigravity",
20+
"cline",
21+
"codex",
22+
"cursor",
23+
"deepagents",
24+
"firebender",
25+
"gemini-cli",
26+
"github-copilot",
27+
"kimi-cli",
28+
"opencode",
29+
"warp",
30+
"claude-code"
31+
]
32+
}

claude/CLAUDE.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
## Thinking Discipline
2-
3-
- **Observe before speculating.** State what you see. Frame guesses as questions to investigate, not assumptions to act on.
4-
- **Reflect after repeated failures.** If the same approach fails twice, pause to state observations and critically reassess before continuing. Don't just try more variants.
5-
- **Use what's available.** Don't reverse-engineer tools that are already configured. Read their schemas.
6-
- **Understand before executing.** When the user proposes an approach, first understand what they're trying to accomplish and why. Surface better alternatives early if they exist. Once the motivation is clear, proceed with the best approach. Don't silently substitute a different one mid-task.
7-
81
## Communication Style
92

103
Talk to me like a friend, not a professional service. Casual, direct, humor welcome. Skip corporate polish. I'd rather hear "yeah that's busted" than "I've identified a potential issue." Match my energy: enthusiastic when something's cool, honest when something sucks, brief when there's not much to say. Swear if it fits. Don't over-explain things I already know.

claude/roles/base.jsonc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
"Bash(rm -rf target)",
3939
"Bash(rm -rf temp)",
4040
"Bash(rm -rf tmp)",
41-
"Bash(rm -rf vendor)",
4241
"Bash(sudo docker:*)",
4342
"Bash(sudo journalctl:*)",
4443
"Bash(sudo systemctl disable:*)",
@@ -100,6 +99,16 @@
10099
// Permits git commit signing, git fsmonitor, Docker socket, etc.
101100
"allowAllUnixSockets": true,
102101
"allowedHosts": ["api.anthropic.com", "code.claude.com"],
102+
// local dev servers, and other things that are weird and listen (clippy
103+
// --fix for some reason??)
104+
"allowLocalBinding": true
103105
},
106+
"filesystem": {
107+
"allowWrite": [
108+
// interactive terminals for things like lefthook interactive
109+
"/dev/ptmx",
110+
"/dev/ttys*"
111+
]
112+
}
104113
},
105114
}

claude/stacks/buildkite.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
},
1010
"filesystem": {
1111
"allowWrite": [
12-
"~/.local/state/bktide"
12+
"~/.local/state/bktide",
13+
"~/.cache/bktide"
1314
]
1415
}
1516
}

claude/stacks/rust.jsonc

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Rust ecosystem
33
"permissions": {
44
"allow": [
5+
"Read(~/.cargo/registry/)",
56
"Bash(cargo bench:*)",
67
"Bash(cargo build:*)",
78
"Bash(cargo check:*)",
@@ -29,8 +30,17 @@
2930
]
3031
},
3132

32-
// source: agent-safehouse
3333
"sandbox": {
34+
"network": {
35+
"allowedHosts": [
36+
"crates.io",
37+
"index.crates.io",
38+
"static.crates.io",
39+
"docs.rs"
40+
]
41+
},
42+
43+
// source: agent-safehouse
3444
"filesystem": {
3545
"allowWrite": [
3646
"~/.cargo",

config/mise/conf.d/path.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ _.path = [
33
"~/bin",
44
"~/.local/bin",
55
"~/.cargo/bin",
6-
"~/.bun/bin", # bun global packages (qmd, etc.)
6+
"~/.bun/bin", # bun global packages (qmd, etc.)
7+
"~/.pickles/bin", # pickletown scripts (bk wrapper, etc.)
78
]
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# 29. tmux local config overrides
2+
3+
Date: 2026-04-03
4+
5+
## Status
6+
7+
Accepted
8+
9+
## Context
10+
11+
The same dotfiles get deployed to multiple machines (personal laptop, work machines, remote servers), and sometimes tmux needs to look or behave differently depending on where it's running. The motivating case: using a different catppuccin flavor on a remote server so SSH tabs are visually distinct from local ones at a glance.
12+
13+
Git config already solves this with `.gitconfig.local` (generated per-machine, never committed). SSH config uses `config.d/` fragments. tmux had no equivalent, so any per-machine customization meant either maintaining forks of `.tmux.conf` or just not doing it.
14+
15+
## Decision
16+
17+
Source `~/.tmux.local.conf` at the very end of `.tmux.conf`, guarded by an existence check:
18+
19+
```tmux
20+
if-shell '[ -f ~/.tmux.local.conf ]' 'source-file ~/.tmux.local.conf'
21+
```
22+
23+
It loads last so it can override anything: theme flavor, status bar layout, keybindings, plugin options.
24+
25+
The file is not committed to the dotfiles repo. Each machine creates its own (or doesn't, and gets the defaults).
26+
27+
### Why at the end?
28+
29+
Catppuccin's tmux plugin reads `@catppuccin_flavor` at plugin init time, but `source-file` after TPM init can still override computed styles and status bar config. For theme flavor changes to take full effect, a `tmux source ~/.tmux.conf` reload is needed (same as any config change).
30+
31+
### Alternatives Considered
32+
33+
1. **Conditional logic in .tmux.conf based on hostname**
34+
- `if-shell '[ "$(hostname)" = "myserver" ]' 'set ...'`
35+
- Rejected: puts machine-specific knowledge in the committed config. Grows into a mess.
36+
37+
2. **Separate .tmux.conf per machine**
38+
- Rejected: duplication. The configs are 95% identical.
39+
40+
3. **Environment variable toggles**
41+
- `if-shell '[ "$TMUX_THEME" = "frappe" ]' 'set ...'`
42+
- Not bad, but requires setting env vars in shell config, which is another layer of indirection. The local file is more self-contained.
43+
44+
## Consequences
45+
46+
### Positive
47+
48+
- Per-machine tmux customization without forking or branching the config
49+
- Follows the same `.local` pattern as gitconfig, so it's a familiar convention
50+
- Zero impact on machines that don't create the file
51+
52+
### Negative
53+
54+
- The local file isn't tracked anywhere, so it's on you to remember what you set. (But that's true of `.gitconfig.local` too, and it's been fine.)
55+
- Theme flavor overrides after TPM init may not apply 100% cleanly without a reload. In practice this is fine since you reload after editing config anyway.

doc/adr/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@
2828
- [26. versioned-ssh-config-with-config-d](0026-versioned-ssh-config-with-config-d.md)
2929
- [27. tmux-command-palette](0027-tmux-command-palette.md)
3030
- [28. safe-symlink-function](0028-safe-symlink-function.md)
31+
- [29. tmux-local-config-overrides](0029-tmux-local-config-overrides.md)

0 commit comments

Comments
 (0)