Files
dotfiles/.serena/memories/project_structure.md
2025-10-13 14:14:45 +03:00

3.8 KiB

Project Structure

Root Directory

.dotfiles/
├── install                 # Main installation script (Dotbot runner)
├── install.conf.yaml      # Dotbot configuration
├── package.json           # Node.js dependencies for linting/testing (Yarn managed)
├── AGENTS.md              # Project documentation and guidelines
├── test-all.sh            # Bats test runner
├── add-submodules.sh      # Git submodule management
└── .serena/               # Claude Code/Serena analysis cache (new)

Main Directories

config/ (74+ subdirectories)

Configuration files for development tools and applications:

  • git/ - Git configuration with delta integration and everforest theme
  • nvim/ - Neovim configuration with Lua plugins
  • tmux/ - Tmux configuration with multiple plugins (dark-notify, window-name, etc.)
  • fish/ - Fish shell configuration with completions and functions
  • zsh/ - Zsh configuration with antidote plugin manager
  • fzf/ - Fuzzy finder configuration with everforest theme
  • wezterm/ - WezTerm terminal configuration
  • homebrew/ - Homebrew environment configuration
  • starship.toml - Starship prompt configuration
  • shared.sh - Cross-shell compatibility functions
  • aerospace/, amethyst/, yabai/, skhd/ - Window managers
  • direnv/, asdf/, aqua/ - Development environment tools
  • gpg-tui/, op/, gh/ - Security and CLI tools
  • Theme configurations: everforest color schemes across multiple tools

base/

Dotfiles that get symlinked to home directory with . prefix:

  • Contains traditional dotfiles like .bashrc, .zshrc, etc.
  • plan - Planning/note-taking configuration
  • shellcheckrc - ShellCheck rules

local/

  • bin/ - 100+ custom scripts with comprehensive documentation
    • Homegrown utilities (dfm, git tools, backup scripts, etc.)
    • Sourced utilities (from skx/sysadmin-util, mvdan/dotfiles)
    • Each script has corresponding .md documentation
    • Recent additions: x-pr-comments for GitHub PR analysis
  • share/fonts/ - JetBrains Mono font files
  • man/ - Manual pages

ssh/

SSH configuration files (mode 0600/0700)

  • shared.d/ - Shared SSH configurations for specific hosts

tools/ (Git submodules)

External tools and Dotbot plugins:

  • dotbot/ - Dotbot installation framework
  • dotbot-* - Dotbot plugins (asdf, brew, include, pip)
  • antidote/ - Zsh plugin manager
  • Various tmux plugins (continuum, resurrect, yank, etc.)

hosts/

Host-specific configurations:

  • air/, s/, v/ - Individual host configurations
  • Applied after main configuration

secrets/

Secret and credential management configuration

scripts/

Installation and setup automation scripts

.github/

  • GitHub Actions workflows
  • Renovate configuration
  • Issue templates and documentation

Development Configuration Files

  • .editorconfig - Editor configuration rules
  • .prettierrc.js - Prettier formatting rules
  • .eslintrc.json - ESLint linting rules
  • .commitlintrc.json - Commit message linting
  • .shellcheckrc - ShellCheck configuration
  • .mega-linter.yml - MegaLinter configuration
  • .luarc.json - Lua language server configuration
  • .nvmrc, .go-version, .python-version - Version management
  • Various ignore files (.gitignore, .prettierignore, .yamlignore, etc.)

Testing Infrastructure

  • tests/ - Bats test files
  • test-all.sh - Main test runner
  • Pre-commit hooks for automated testing
  • GitHub Actions for CI/CD

Recent Structural Changes

  • Husky configuration moved from base/huskyrc to config/husky/init.sh
  • Addition of everforest theme configurations across multiple tools
  • New .serena directory for AI analysis caching
  • Multiple temporary fish configuration files (everforest themes)
  • Enhanced git configuration with delta and everforest theming