feat: fold in the portable Claude Code, zsh and git config; add a drift check
Added (all now linked from their live locations): - home_root/.claude/settings.json. The statusLine command now uses $HOME instead of a Linux-only absolute path. - home_root/.claude/bin/ratecheck and home_root/.claude/skills/australis-design. - home_config/zsh/claude-config-dir.zsh and home_root/.local/bin/claude-config-dir-init, the per-repo Claude Code login helper and its seeding script. - home_root/.gitconfig and home_config/git/ignore. - home_root/.zshenv, with the cargo env line guarded so boxes without rust start clean. link-dotfiles --check reports drift without changing anything: tracked files whose live copy is no longer a link (stow dry-run conflicts) and links into this repo that dangle. Exits 1 on drift. Verified against a clean baseline and two planted drifts, a detached .nanorc and a dangling link. .mailmap maps every earlier identity to Vuong Hoang: the repo-local 'Your Name' placeholder config (now removed), host-generated emails, and aider suffixes. CLAUDE.md: the symlink warning now lists every linked file and points at --check. README: documents what is and isn't tracked under .claude, the edit rule, and --check.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// StatusBar — bottom rail. Mono, dense, 24px tall.
|
||||
|
||||
const StatusBar = ({ branch, problems, position, syntax }) => (
|
||||
<div style={sbStyles.root}>
|
||||
<div style={sbStyles.left}>
|
||||
<span style={sbStyles.cell}>
|
||||
<Icon name="git-branch" size={12}/> {branch}
|
||||
</span>
|
||||
<span style={{ ...sbStyles.cell, color: problems.errors ? '#ff854f' : 'var(--fg-2)' }}>
|
||||
<Icon name="x" size={12}/> {problems.errors}
|
||||
</span>
|
||||
<span style={{ ...sbStyles.cell, color: problems.warnings ? '#ffe14e' : 'var(--fg-2)' }}>
|
||||
<Icon name="alert" size={12}/> {problems.warnings}
|
||||
</span>
|
||||
</div>
|
||||
<div style={sbStyles.right}>
|
||||
<span style={sbStyles.cell}>{syntax}</span>
|
||||
<span style={sbStyles.cell}>UTF-8</span>
|
||||
<span style={sbStyles.cell}>LF</span>
|
||||
<span style={sbStyles.cell}>{position}</span>
|
||||
<span style={{ ...sbStyles.cell, color: '#51e08a' }}>
|
||||
<Icon name="circle" size={8}/> live
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
const sbStyles = {
|
||||
root: {
|
||||
height: 26, flex: '0 0 26px',
|
||||
display: 'flex', justifyContent: 'space-between',
|
||||
padding: '0 14px',
|
||||
background: '#222531',
|
||||
borderTop: '1px solid #373b46',
|
||||
fontFamily: 'var(--font-mono)', fontSize: 11,
|
||||
color: 'var(--fg-2)',
|
||||
letterSpacing: '0.03em',
|
||||
},
|
||||
left: { display:'flex', alignItems:'center', gap: 14 },
|
||||
right: { display:'flex', alignItems:'center', gap: 14 },
|
||||
cell: { display:'flex', alignItems:'center', gap: 5 },
|
||||
};
|
||||
|
||||
window.StatusBar = StatusBar;
|
||||
Reference in New Issue
Block a user