atxtechbro / atxtechbro/dotfiles
Claude Code settings not applied globally despite symlink
- Dominant language
- Shell
- Stars
- 27
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
## Problem
Claude Code sessions opened anywhere in the filesystem don't have the same settings configured in dotfiles, even though we have a proper symlink from `~/.claude/settings.json` → `dotfiles/.claude/settings.json`.
## Current State
- ✅ Symlink exists: `~/.claude/settings.json` → `/home/linuxmint-lp/ppv/pillars/dotfiles/.claude/settings.json`
- ❌ Settings not applied: Claude Code doesn't read from `~/.claude/settings.json`
- ❌ Claude Code uses: `~/.claude.json` (52MB file) for all configuration
- ❌ Environment variables in dotfiles not active globally
- ❌ Permissions in dotfiles not active globally
## Expected Behavior (Definition of Done)
When I run `claude` from ANY directory on my system:
1. All environment variables defined in `dotfiles/.claude/settings.json` should be active
2. All permissions defined in `dotfiles/.claude/settings.json` should be active
3. Any other settings in that file should apply globally
4. Changes to `dotfiles/.claude/settings.json` should affect all future Claude sessions
## Root Cause
Claude Code is in the middle of migrating from `~/.claude.json` to `~/.claude/settings.json` but hasn't completed this migration. Our symlink is correct but Claude Code doesn't use it yet.
## Workarounds to Investigate
1. **Force config location**: Can we use an undocumented flag or environment variable to make Claude read from our symlinked location?
2. **Symlink the actual file**: Instead of symlinking to `settings.json`, can we symlink `~/.claude.json` to a dotfiles-managed version?
3. **Hook-based solution**: Use bash aliases or wrapper scripts to inject settings
4. **Monitor upstream**: Track when Claude Code completes the migration
## Success Criteria
- Run `claude` from `~/` and have all dotfiles settings active
- Run `claude` from `/tmp` and have all dotfiles settings active
- Run `claude` from any project directory and have all dotfiles settings active
- No manual copying of settings files required
## Related
- #577 tracks the migration plan but not the actual problem
- #791 solved this for MCP configuration using aliases
- #793 establishes the principle that dotfiles should be global-first
This issue specifically tracks making Claude Code respect our global settings file.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by inspecting dotfiles/.claude/settings.json, the symlink at ~/.claude/settings.json, and ~/.claude.json to confirm which configuration Claude Code reads. Review the approaches in the issue, including aliases or wrapper scripts, alongside issues #577, #791, and #793. Done means Claude sessions from ~/, /tmp, and project directories consistently use the dotfiles settings without manual copying.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bash, shell
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100