# obsidian_kitty_setup Dotfiles for Kitty terminal + Obsidian logging system. Managed with GNU Stow. Works on macOS (Homebrew) and Linux servers (apt). ## What's included | Package | Contents | |---------|----------| | `kitty/` | Kitty config — Kanagawa theme, Hasklug Nerd Font, fish shell | | `fish/` | Fish config — Tide prompt, modern CLI aliases, SSH aliases | | `nvim/` | LazyVim config — Kanagawa theme | | `btop/` | btop system monitor config | | `fastfetch/` | System info display | | `starship/` | Starship prompt config (reference) | | `git/` | Global `.gitconfig` (rendered from template) | | `claude/` | Claude Code `settings.json`, Obsidian hook scripts, memory-compiler | The **Obsidian vault** (Templates, CLAUDE.md, wiki) lives in a separate repo: → [SamoilenkoVadym/obsidian](https://github.com/SamoilenkoVadym/obsidian) ## First-time setup ### 1. Clone ```bash git clone git@github.com:SamoilenkoVadym/obsidian_kitty_setup.git ~/.dotfiles ``` ### 2. Configure machine-specific values ```bash cp ~/.dotfiles/.env.example ~/.dotfiles.env nano ~/.dotfiles.env # or your preferred editor ``` Fill in: - `OBSIDIAN_VAULT` — path to your Obsidian vault (iCloud or Obsidian Sync path) - `PROJECTS_ROOT` — path to Oliver Agency code root - `ANTHROPIC_API_KEY` — your Anthropic API key - `CC_API_KEY` / `CC_SERVER` — CC Dashboard credentials (optional) ### 3. Run installer ```bash cd ~/.dotfiles ./install.sh ``` Specific modules only: ```bash ./install.sh --module fish claude # just shell + Claude hooks ./install.sh --module kitty fish nvim # terminal setup only ./install.sh --no-packages # skip brew/apt, just stow ``` ### 4. Verify ```bash bash scripts/doctor.sh ``` ## After install — Obsidian vault Clone the vault repo to the path you set in `OBSIDIAN_VAULT`: ```bash git clone https://github.com/SamoilenkoVadym/obsidian "$OBSIDIAN_VAULT" ``` Then re-run `./install.sh --module claude` to create the `knowledge/` symlink. ## Updating configs Since all configs are symlinked from `~/.dotfiles/`, editing them directly edits the repo. Commit and push to sync across machines: ```bash cd ~/.dotfiles git add -p git commit -m "update kitty/fish config" git push ``` ## Modules | Module | Stow package | Post-install | |--------|-------------|--------------| | `packages` | none | runs brew/apt | | `kitty` | `kitty/` | — | | `fish` | `fish/` | seeds `fish_variables`, installs fisher + tide | | `nvim` | `nvim/` | — | | `btop` | `btop/` | — | | `fastfetch` | `fastfetch/` | — | | `starship` | `starship/` | — | | `git` | `git/` | renders `.gitconfig` from template | | `claude` | `claude/` | creates `knowledge/` symlink, runs `uv sync` | ## Uninstall ```bash ./uninstall.sh # remove all symlinks ./uninstall.sh kitty # remove specific package ``` Config files remain in `~/.dotfiles/` — nothing is deleted. ## Platform notes | | macOS | Linux server | |-|-------|-------------| | Packages | `brew bundle` | `apt` + manual for lsd/lazygit | | Homebrew path | `/opt/homebrew/bin` | `/home/linuxbrew/.linuxbrew/bin` | | Vault sync | iCloud | Clone `SamoilenkoVadym/obsidian` manually | | GUI apps | Kitty, Obsidian, Ghostty | n/a |