Adds title, description, type, domain, and tags frontmatter to every doc for improved KB semantic search. The description field is prepended to every search chunk, and domain/type/tags enable filtered queries. Type values: context, guide, runbook, reference, troubleshooting Domain values match directory structure (networking, docker, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.2 KiB
| title | description | type | domain | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Workstation Configuration | Workstation dotfiles management via symlinks, fish shell setup with custom functions and tmux helpers, systemd user timers, and Claude Code integration overview. | context | workstation |
|
Workstation Configuration
Dotfiles Repository
- Repo:
cal/dotfiles(private) ongit.manticorum.com - Local path:
~/dotfiles/ - Strategy: Symlink — configs live in the repo, symlinked to their expected system paths
What's tracked
| Category | Repo path | System path |
|---|---|---|
| Fish shell | fish/config.fish |
~/.config/fish/config.fish |
| Starship prompt | starship.toml |
~/.config/starship.toml |
| Git config | git/.gitconfig |
~/.gitconfig |
| Git global ignore | git/ignore |
~/.config/git/ignore |
| SSH config | ssh/config |
~/.ssh/config |
| Bash | shell/.bashrc, shell/.bash_profile |
~/.bashrc, ~/.bash_profile |
| Zsh | shell/.zshrc, shell/.zshenv |
~/.zshrc, ~/.zshenv |
| MangoHud | mangohud/MangoHud.conf |
~/.config/MangoHud/MangoHud.conf |
| Zed editor | zed/settings.json |
~/.config/zed/settings.json |
| Restic excludes | restic/excludes.txt |
~/.config/restic/excludes.txt |
| VS Code | vscode/settings.json, vscode/keybindings.json |
~/.config/Code/User/ |
| Tmux | tmux/.tmux.conf |
~/.tmux.conf |
Secrets handling
API keys and tokens are never committed. Shell configs source secrets from separate untracked files:
- Bash:
~/.bash_secrets(chmod 600) - Zsh:
~/.zsh_secrets
Install / Uninstall
cd ~/dotfiles
./install.sh # Backs up originals to ~/.dotfiles-backup/, creates symlinks
./uninstall.sh # Replaces symlinks with standalone copies
Both scripts are idempotent.
Adding a new config
- Copy the file into the appropriate directory in
~/dotfiles/ - Add the mapping to the
LINKSassociative array in bothinstall.shanduninstall.sh - Run
./install.shto replace the original with a symlink - Commit and push
Shell setup
Cal migrated from zsh to fish + starship (Feb 2026). Bash and zsh configs are retained for compatibility but fish is the primary interactive shell.
Fish Functions & Aliases
Custom fish functions live in ~/dotfiles/fish/functions/ and are symlinked into ~/.config/fish/functions/. Completions in ~/dotfiles/fish/completions/ → ~/.config/fish/completions/.
Config file (~/.config/fish/config.fish)
Abbreviations defined in config.fish (loaded interactively):
yolo→claude --dangerously-skip-permissionscddev→cd /mnt/NV2/Development
Tmux helpers
| Function | Usage | What it does |
|---|---|---|
tls |
tls |
List tmux sessions (friendly "no sessions" message if none) |
tma |
tma [name] |
Smart attach — auto-attaches if 1 session, lists if multiple, attaches to named session. Has tab completions for session names. |
tmn |
tmn [name] |
Create new named session (defaults to current directory name) |
cc |
cc [name] |
Launch Claude Code in a tmux session (named after directory). If already in tmux, creates/switches to a detached session. |
Adding a new fish function
- Create the function file in
~/dotfiles/fish/functions/ - Symlink it:
ln -s ~/dotfiles/fish/functions/myfunc.fish ~/.config/fish/functions/myfunc.fish - Optionally add completions in
~/dotfiles/fish/completions/ - Commit and push the dotfiles repo
Systemd User Timers
Timers running under systemctl --user on the workstation. Not tracked in dotfiles — managed by their respective projects.
Cognitive Memory Maintenance
Source: /mnt/NV2/Development/cognitive-memory/systemd/
| Timer | Schedule | Purpose |
|---|---|---|
cognitive-memory-embed.timer |
Hourly | Refresh embeddings (skips if unchanged) |
cognitive-memory-daily.timer |
Daily midnight | Decay scores + regenerate CORE.md + git sync |
cognitive-memory-weekly.timer |
Sun 02:00 | Reflect on recent memories |
Claude Scheduled Tasks
Config: ~/.config/claude-scheduled/ | Skill: ~/.claude/skills/create-scheduled-task/SKILL.md
| Timer | Schedule | Purpose |
|---|---|---|
claude-scheduled@backlog-triage.timer |
Weekdays 09:15 | Triage open Gitea issues, prioritize, suggest focus |
Uses claude-scheduled@.service template unit. Add new tasks by creating a directory under ~/.config/claude-scheduled/tasks/ and a corresponding timer. See the skill for full instructions.
Claude Code
See claude-code-config.md for full details on config file locations, MCP server setup, hooks, and permissions.
Key files:
~/.claude.json— MCP servers (cognitive-memory, n8n-mcp, gitea-mcp, tui-driver, kb-search)~/.claude/settings.json— permissions, hooks, env vars, plugins~/.claude/skills/— custom skill definitions~/.claude/hooks/— hook scripts (format-code.sh, notify-subagent-done.sh)
Backups
Original files are backed up by install.sh to ~/.dotfiles-backup/<timestamp>/ before being replaced with symlinks. Multiple runs create separate timestamped backup dirs. Old backups can be cleaned up manually.