atxtechbro / atxtechbro/dotfiles

Claude Code settings not applied globally despite symlink

Open
#794 1 comment 0 reactions 0 assignees View on GitHub
bug claude-code configuration
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.